Initial
Open a transaction context. Every acquiring flow begins with an init call followed by an operation page.
Init
Initialize a payment session
initPOST
/v1/purchase/{init}POST
/v1/pre-authorization/{init}POST
/v1/avs/{init}POST
/v1/credit/{init}POST
/v1/oct/{init}POST
/v1/3d/enrollment/{init}POST
/v1/3d/authenticate/{init}POST
/v1/3d/result/{version}/{init}.Request body
| Field | Type | Description | ||||||
|---|---|---|---|---|---|---|---|---|
card_
|
string (0,any) | Card expiry month in MM format (01 = January, 12 = December). Required for new card (PAN) payments. Must not be sent when using saved card token. | ||||||
card_
|
string (0,any) | Card expiry year in YY format. Must be the current or a future year. Must not be expired in combination with card_expiration_month. Required for new card (PAN) payments. Must not be sent when using saved card token. | ||||||
merchant
|
string (0,any) | Merchant identifier. Required unless a configuration object is provided. | ||||||
terminal
|
string (0,any) | Terminal identifier. When not provided, resolved from the merchant default terminal. | ||||||
user
|
string (0,any) | User token in Paynetics. | ||||||
amount
|
number (0,any) required | Transaction amount in major currency units (e.g. 50.00 = fifty euros). Must be a positive number with up to 2 decimal places. | ||||||
currency
|
string (0,any) required | Transaction currency in ISO 4217 format (exactly 3 characters). Must be a supported currency. | ||||||
card
|
string (0,any) | Saved card token for returning customers. Returned from a previous /v1/init, purchase, or POST /v1/cards call. Required for saved card (token) payments. Must not be sent when using new card PAN. | ||||||
card_
|
string (0,any) | Full Primary Account Number (PAN) as printed on the card (12–19 digits, Luhn-validated). Required for new card (PAN) payments. Must not be sent when using saved card token. | ||||||
cardholder_
|
string (0,any) | Name as printed on the card (2–45 characters). Required for new card (PAN) payments. Must not be sent when using saved card token. | ||||||
cvv2
|
string (0,any) | Card security code (CVV2/CVC2/CID). Must be 3–4 digits. Pattern: [0-9]{3,4}. | ||||||
mid
|
string (0,any) | Merchant ID at processor level. When a merchant has more than one MID configured, partners can route the transaction through the corresponding MID by submitting the specific value. | ||||||
card_
|
object | Card acceptor (merchant) details. | ||||||
|
||||||||
Example request
{
"card_expiration_month": "09",
"card_expiration_year": "27",
"merchant": "df1f946a-8b03-4a21-8eb7-dab86a77a027",
"terminal": "df1f946a-8b03-4a21-8eb7-dab86a77a027",
"user": "df1f946a-8b03-4a21-8eb7-dab86a77a027",
"amount": 50,
"currency": "EUR",
"card": "df1f946a-8b03-4a21-8eb7-dab86a77a027",
"card_number": "4111111111111111",
"cardholder_name": "John Smith",
"cvv2": "123",
"mid": "123456789",
"card_acceptor": {
"name": "Partner Shop Ltd"
}
}
Response
| Field | Type | Description | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
code
|
integer (0,any) | ||||||||||
data
|
object required | ||||||||||
|
|||||||||||
Example response
{
"code": "integer",
"data": {
"token": "df1f946a-8b03-4a21-8eb7-dab86a77a027",
"card": "df1f946a-8b03-4a21-8eb7-dab86a77a027"
}
}
Operation
Generate a hosted payment page URL/HTML
init_webPath parameters
| Name | Example | Description |
|---|---|---|
operation
|
payment |
Type of hosted page. payment = standard payment page. |
Request body
| Field | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
amount
|
number (0,any) required | Transaction amount in major currency units. Decimal with 2 decimal places. Must be a positive number. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
currency
|
string (3,3) required | Transaction currency. ISO 4217 alpha code. Must be a supported currency. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
language
|
string (0,any) | Language of the payment page UI. bg = Bulgarian, en = English, ro = Romanian, fr = French, es = Spanish. Defaults to bg. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
transaction_
|
string (0,any) | Transaction type. purchase = immediate payment. preauthorization = reserve funds, partner must call capture later. Defaults to purchase. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
reference
|
string (0,30) required | Partner's transaction reference. Alphanumeric. Returned in next-day reporting. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
reference2
|
string (0,any) | Extended reference. Additional order info. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
card
|
string (10,any) | Saved card token. Must be a valid card token. When provided, the payment page may pre-populate card info. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
user
|
string (0,any) | User token in Paynetics. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
success_
|
string (0,any) | Customer redirect after successful payment. Must be a valid URL. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
error_
|
string (0,any) | Customer redirect after failed payment. Must be a valid URL. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
redirect
|
boolean | If true, the response is a 302 redirect to the payment page. If false, the response is a JSON body containing the payment page URL. Defaults to true. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
balance
|
string (0,any) | Balance token of the client's account in Paynetics. Must be a valid balance token. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
aft
|
object contains required | Visa Account Funding Transaction (AFT) data. Send this object when initiating an AFT (wallet top-up, P2P funding, prepaid reload, A2A transfer) where the cardholder funds an account belonging to themselves. Conditional fields inside this object depend on whether the transaction is domestic or cross-border, and on country-specific rules (Canada, US, Australia). See AftDto schema for field-level rules. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
recurring_
|
string (0,any) | End date for the recurring schedule. ISO 8601 datetime. Must be a valid future datetime. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
recurring_
|
integer (0,any) | Recurring interval. Must be a positive integer. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Example request
- One-time purchase
- Pre-authorization
- Saved card / Purchase
- Saved card / Pre-authorization
- Payment page with AFT — domestic transaction
- Payment page with AFT — cross-border transaction
- Recurring payment
Standard payment page for a one-time purchase. Customer enters card details on the Paynetics-hosted page.
{
"amount": 99.9,
"currency": "EUR",
"language": "en",
"transaction_type": "purchase",
"reference": "ORDER-2026-04-001",
"success_url": "https://partner.com/payment/success",
"error_url": "https://partner.com/payment/error"
}
Payment page that reserves funds on the customer's card. Partner must call capture later to complete the payment.
{
"amount": 200,
"currency": "EUR",
"language": "en",
"transaction_type": "preauthorization",
"reference": "HOTEL-BOOKING-5521",
"success_url": "https://partner.com/booking/confirmed",
"error_url": "https://partner.com/booking/failed"
}
Payment page pre-populated with a saved card token for a repeat purchase.
{
"amount": 50,
"currency": "EUR",
"reference": "REPEAT-PURCHASE-334",
"card": "df1f946a-8b03-4a21-8eb7-dab86a77a027",
"success_url": "https://partner.com/success",
"error_url": "https://partner.com/error"
}
Payment page pre-populated with a saved card token used for pre-authorization (e.g. hotel booking).
{
"amount": 50,
"currency": "EUR",
"transaction_type": "preauthorization",
"reference": "HOTEL-BOOKING-5521",
"card": "df1f946a-8b03-4a21-8eb7-dab86a77a027",
"success_url": "https://partner.com/success",
"error_url": "https://partner.com/error"
}
Partner initiates a payment page with Account Funding Transaction data. Domestic transaction (card issuer, MID, and acquirer are in the same country). Only the three required AFT fields are sent.
{
"amount": 100,
"currency": "EUR",
"reference": "AFT-DOMESTIC-1122",
"balance": "df1f946a-8b03-4a21-8eb7-dab86a77a027",
"user": "df1f946a-8b03-4a21-8eb7-dab86a77a027",
"success_url": "https://partner.com/topup/success",
"error_url": "https://partner.com/topup/error",
"aft": {
"sender_account_number": "BG80BNBG96611020345678",
"recipient_name": "Ivan Petrov",
"bai": "TU"
}
}
Partner initiates a payment page with AFT data for a cross-border transaction destined to Canada. All conditional fields (account owner address/state, sender details, merchant postal code/state) are required.
{
"amount": 250,
"currency": "EUR",
"reference": "AFT-CROSSBORDER-001",
"balance": "df1f946a-8b03-4a21-8eb7-dab86a77a027",
"user": "df1f946a-8b03-4a21-8eb7-dab86a77a027",
"success_url": "https://partner.com/topup/success",
"error_url": "https://partner.com/topup/error",
"aft": {
"account_owner_address1": "123 Main Street",
"account_owner_address2": "Suite 400",
"account_owner_street": "Main Street",
"account_owner_postal_code": "M5V 2T6",
"account_owner_city": "Toronto",
"account_owner_country": "CAN",
"account_owner_subdivision_code": "ON",
"merchant_postal_code": "1407",
"merchant_state": "SOF",
"acceptor_legal_name": "Paynetics AD",
"sender_address": "123 Main Street",
"sender_city": "Toronto",
"sender_state": "ON",
"sender_country": "CAN",
"sender_name": "John Smith",
"sender_account_number": "CA1234567890123456",
"recipient_name": "John Smith",
"bai": "TU"
}
}
Payment page that sets up a recurring schedule. Recurring interval. Must be a positive integer.
{
"amount": 9.99,
"currency": "EUR",
"reference": "SUBSCRIPTION-MONTHLY-001",
"success_url": "https://partner.com/subscription/active",
"error_url": "https://partner.com/subscription/failed",
"recurring_end_date": "2027-04-06T00:00:00Z",
"recurring_frequency": 30
}
Response
| Field | Type | Description | ||||||
|---|---|---|---|---|---|---|---|---|
code
|
integer (0,any) | Result code. 0 = success. | ||||||
data
|
object required | |||||||
|
||||||||
Example response
{
"code": 0,
"data": {
"url": "https://secure.payoo.cloud/payment/page/abc123def456"
}
}
Errors
| Code | Description |
|---|---|
302 | Redirect — direct browser redirect to the hosted payment page URL. Returned when redirect=true (default). The Location header contains the payment page URL (e.g. https://secure.payoo.cloud/payment/page/abc123def456). |