Payment methods
Payment methods list
Choose the payment methods that you want to display on the payment form.
- Use
methodsarray in the Authentication request and specify the values that correspond to the payment methods. - Use the value of the payment method to add specific parameters to the Authentication request for the
parametersobject.
These parameters will be sent to the acquirer to pass the necessary data for successful payment.
Jump to: A · B · C · D · E · F · G · H · I · J · K · M · N · O · P · R · S · T · U · V · W · X · Y · Z ·
Card payments
If the payer chooses the card payment method, fields with card data will be displayed on the Checkout page.
For some connector services, it is necessary to send additional parameters in the Authentication request for the parameters object (for more information, contact your manager).
Additional parameters - Set 1 (BNG)
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
bnrg_installm_def | Numeric justified to 2 digits | Required | Indicates the number of months that will elapse from the purchase until the total or partial charge is made to the cardholder's account (initial deferral). Possible values: 01 - one month 00 - no delay initial |
bnrg_installm_months | Numeric justified to 2 digits | Required | Indicates the number of monthly payments in which the total amount of the transaction will be divided. Example: 03 - 3 months |
bnrg_installm_plan | Numeric justified to 2 digits | Required | Indicates if the promotion It will be ́ with interest or without interest. Possible values: 03 - no interest05 - with interest07 - defer only initial. |
Authentication request example
curl --location -g --request POST '{{CHECKOUT_HOST}}/api/v1/session' \
--header 'Content-Type: application/json' \
--data-raw '{
"merchant_key": "xxxxx-xxxxx-xxxxx",
"operation": "purchase",
"methods": [
"card"
],
"parameters": {
"card": {
"bnrg_installm_def": "03",
"bnrg_installm_months": "03",
"bnrg_installm_plan": "03"
}
},
"order": {
"number": "order-1234",
"amount": "1000.19",
"currency": "MXN",
"description": "Important gift"
},
"cancel_url": "https://example.com/cancel",
"success_url": "https://example.com/success",
"customer": {
"name": "John Doe",
"email": "[email protected]"
},
"billing_address": {
"country": "US",
"state": "CA",
"city": "Los Angeles",
"address": "Moor Building 35274",
"zip": "123456",
"phone": "347771112233"
},
"hash": "{{session_hash}}",
}
'
Additional parameters - Set 2 (FCP)
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
document_type | String | Required | Type of the document number specified above. Possible values: cpf |
document_number | String | Required | Client’s document number |
social_name | String | Required | Client's social name |
fiscal_country | String | Required | An alpha-2 country code of the customer’s tax country |
Authentication request example
curl --location -g --request POST '{{CHECKOUT_HOST}}/api/v1/session' \
--header 'Content-Type: application/json' \
--data-raw '{
"merchant_key": "xxxxx-xxxxx-xxxxx",
"operation": "purchase",
"methods": [
"card"
],
"parameters": {
"card": {
"document_type": "cpf",
"document_number": "231.002.999-00",
"social_name": "Harry Potter",
"fiscal_country": "BR",
"toBankAccountId": "a1a1134a-32c6-442c-90c9-66b587d5be00"
}
},
"order": {
"number": "order-1234",
"amount": "1000.19",
"currency": "BRL",
"description": "Important gift"
},
"cancel_url": "https://example.com/cancel",
"success_url": "https://example.com/success",
"customer": {
"name": "John Doe",
"email": "[email protected]"
},
"billing_address": {
"country": "US",
"state": "CA",
"city": "Los Angeles",
"address": "Moor Building 35274",
"zip": "123456",
"phone": "347771112233"
},
"hash": "{{session_hash}}",
}'
Additional parameters - Set 3 (LBP)
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
descriptor | String (20 characters) | Optional | Transaction descriptor |
Authentication request example
curl --location -g --request POST '{{CHECKOUT_HOST}}/api/v1/session' \
--header 'Content-Type: application/json' \
--data-raw '{
"merchant_key": "xxxxx-xxxxx-xxxxx",
"operation": "purchase",
"methods": [
"card"
],
"parameters": {
"card": {
"descriptor": "Testy International LTD"
}
},
"order": {
"number": "order-1234",
"amount": "1000.19",
"currency": "BRL",
"description": "Important gift"
},
"cancel_url": "https://example.com/cancel",
"success_url": "https://example.com/success",
"customer": {
"name": "John Doe",
"email": "[email protected]"
},
"billing_address": {
"country": "US",
"state": "CA",
"city": "Los Angeles",
"address": "Moor Building 35274",
"zip": "123456",
"phone": "347771112233"
},
"hash": "{{session_hash}}",
}
'
Additional parameters - set 4 TWD
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
customer_phone | String | Optional | Phone number of the customer. |
customer_telnocc | String | Optional | Country phone code of the customer. |
shipping_street1 | String | Optional | Building name, and/or street name of the customer's shipping address. |
shipping_city | String | Optional | City of the customer's shipping address. |
shipping_state | String | Optional | State or region of the customer's shipping address. |
shipping_postcode | String | Optional | Postal code/ Zip code of the customer's shipping address. Max – 9 digits. |
shipping_country | String | Optional | Country of the shipping address. 3-digits code |
Authentication request example
curl --location -g --request POST '{{CHECKOUT_HOST}}/api/v1/session' \
--header 'Content-Type: application/json' \
--data-raw '{
"merchant_key": "xxxxx-xxxxx-xxxxx",
"operation": "purchase",
"methods": [
"card"
],
"parameters": {
"card": {
"customer_phone": "1234567890",
"customer_telnocc": "123",
"shipping_street1": " Moor Building 35274",
"shipping_city": "Los Angeles",
"shipping_state": "CA",
"shipping_postcode": "809654321",
"shipping_country": "US"
}
},
"order": {
"number": "order-1234",
"amount": "1000.19",
"currency": "USD",
"description": "Important gift"
},
"cancel_url": "https://example.com/cancel",
"success_url": "https://example.com/success",
"customer": {
"name": "John Doe",
"email": "[email protected]"
},
"billing_address": {
"country": "US",
"state": "CA",
"city": "Los Angeles",
"address": "Moor Building 35274",
"zip": "123456",
"phone": "347771112233"
},
"hash": "{{session_hash}}"
}
'
Additional parameters - Set 5 (ERS)
This set should be used for debit operation.
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
payer_identity_type | String | Optional | The type of Senders identification document |
payer_identity_id | String | Optional | The number of Senders identification document |
payer_identity_country | String | Optional | The country of issuance of the Senders identification document |
payer_identity_exp_date | String | Optional | The expiration date of the Senders identification document |
payer_nationality | String | Optional | Senders nationality |
payer_country_of_birth | String | Optional | Senders country of birth |
payee_first_name | String | Optional | Receivers first name |
payee_last_name | String | Optional | Receiver's last name |
payee_middle_name | String | Optional | Receivers middle name |
payee_address | String | Optional | Receivers street |
payee_city | String | Optional | Receivers city |
payee_state | String | Optional | Receivers state |
payee_country | String | Optional | Receivers country |
payee_zip | String | Optional | Receivers postal code |
payee_phone | String | Optional | Receivers phone number |
payee_birth_date | String | Optional | Receivers date of birth |
payee_identity_type | String | Optional | The type of Receivers identification document |
payee_identity_id | String | Optional | The number of Receivers identification document |
payee_identity_country | String | Optional | The country of issuance of Receivers identification document |
payee_identity_exp_date | String | Optional | The expiration date of Receivers identification document |
payee_nationality | String | Optional | Receivers nationality |
payee_country_of_birth | String | Optional | Receivers country of birth |
Authentication request example
curl --location -g --request POST '{{CHECKOUT_HOST}}/api/v1/session' \
--header 'Content-Type: application/json' \
--data-raw '{
"merchant_key": "xxxxx-xxxxx-xxxxx",
"operation": "purchase",
"methods": [
"card"
],
"parameters": {
"card": {
"payer_identity_type": "Passport",
"payer_identity_id": "ABC123456",
"payer_identity_country": "KZ",
"payer_identity_exp_date": "2026-05-15",
"payer_nationality": "Kazakhstani",
"payer_country_of_birth": "Kazakhstan",
"payee_first_name": "John",
"payee_last_name": "Doe",
"payee_middle_name": "Smith",
"payee_address": "123 Main Street",
"payee_city": "Almaty",
"payee_state": "Almaty Province",
"payee_country": "Kazakhstan",
"payee_zip": "050000",
"payee_phone": "77123456789",
"payee_birth_date": "1990-01-01",
"payee_identity_type": "National ID",
"payee_identity_id": "XYZ987654",
"payee_identity_country": "Kazakhstan",
"payee_identity_exp_date": "2030-12-31",
"payee_nationality": "Kazakhstani",
"payee_country_of_birth": "Kazakhstan"
}
},
"order": {
"number": "order-1234",
"amount": "1000.19",
"currency": "USD",
"description": "Important gift"
},
"cancel_url": "https://example.com/cancel",
"success_url": "https://example.com/success",
"customer": {
"name": "John Doe",
"email": "[email protected]"
},
"billing_address": {
"country": "US",
"state": "CA",
"city": "Los Angeles",
"address": "Moor Building 35274",
"zip": "123456",
"phone": "347771112233"
},
"hash": "{{session_hash}}"
}
'
Additional parameters - set 6 (APC)
Shipping Parameters
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
parameters[shipping][street1] | AN100 | Conditional | The door number, floor, building number, building name, and/or street name of the shipping address |
parameters[shipping][street2] | AN100 | Conditional | The adjoining road or locality (if required) of the shipping address |
parameters[shipping][houseNumber1] | AN100 | Optional | Primary house number (door number or building number) of the shipping address |
parameters[shipping][houseNumber2] | AN100 | Optional | Secondary house number of the shipping address |
parameters[shipping][city] | AN80 | Conditional | The town, district or city of the shipping address |
parameters[shipping][state] | AN50 | Conditional | The county, state or region of the shipping address |
parameters[shipping][postcode] | AN16 | Conditional | The postal code or zip code of the shipping address |
parameters[shipping][country] | A2 [A-Za-z]{2} | Conditional | The country of the shipping address (ISO 3166-1) |
parameters[shipping][method] | AN30 | Conditional | Method of the shipping |
parameters[shipping][cost] | N13 | Conditional | The total amount of the shipping costs |
parameters[shipping][comment] | AN160 | Conditional | A comment for the shipping |
parameters[shipping][expectedDate] | AN10 | Optional | The expected delivery date |
parameters[shipping][logisticsProvider] | AN255 | Optional | The logistics provider of the shipping |
parameters[shipping][trackingNumber] | AN255 | Optional | The tracking number of the shipping |
parameters[shipping][returnTrackingNumber] | AN255 | Optional | The tracking number issued for returns |
parameters[shipping][normalized] | AN255 | Optional | The normalized shipping address |
parameters[shipping][validationStatus] | AN255 | Optional | Indicates whether an address got validated and normalized address got confirmed by the consumer |
parameters[shipping][warehouse] | AN100 | Optional | The warehouse that fulfilled the order |
parameters[shipping][preference] | AN21 | Optional | Indicates the shipping preference |
parameters[shipping][middleName] | AN | Optional | The middle name for the shipping address |
parameters[shipping][companyName] | AN60 | Optional | The company name for the shipping address |
parameters[shipping][phone] | AN25 | Optional | The phone number for shipping address |
parameters[shipping][workPhone] | AN25 | Optional | The work phone number for shipping address |
parameters[shipping][mobile] | AN25 | Optional | The mobile number for shipping address |
parameters[shipping][email] | AN128 | Optional | The email address for shipping address |
parameters[shipping][type] | AN8 | Optional | Defines type of shipping if return or shipment |
Cart Items Parameters
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
parameters[cart][items][n][name] | AN255 | Conditional | The name of the item in the shopping cart |
parameters[cart][items][n][merchantItemId] | AN255 | Conditional | The unique identifier of the item in the shopping cart |
parameters[cart][items][n][quantity] | N5 | Conditional | The number of items in the shopping cart |
parameters[cart][items][n][type] | AN255 | Conditional | The type of the purchased item in the shopping cart |
parameters[cart][items][n][sku] | AN255 | Optional | The sku cart item |
parameters[cart][items][n][currency] | A3 | Conditional | The currency of the price of the shopping cart |
parameters[cart][items][n][description] | AN2048 | Conditional | The description of the item in the shopping cart |
parameters[cart][items][n][commodityCode] | N8 | Optional | L3 Card data, product commodity code |
parameters[cart][items][n][commodityDescription] | AN50 | Optional | L3 Card data, product commodity description |
parameters[cart][items][n][originalPrice] | AN255 | Optional | The price of the item in the shopping cart (excluding tax and discount) |
parameters[cart][items][n][price] | N13 | Conditional | The price of the item in the shopping cart (including tax and discount) |
parameters[cart][items][n][totalAmount] | N13 | Conditional | The total amount of the cart item including quantity |
parameters[cart][items][n][taxAmount] | N13 | Conditional | The tax amount of the cart item (independent of the quantity) |
parameters[cart][items][n][totalTaxAmount] | N13 | Conditional | The total tax amount of the cart item |
parameters[cart][items][n][tax] | AN6 | Conditional | The tax percentage applied to the price of the item |
parameters[cart][items][n][taxCategory] | AN2 | Conditional | Mandatory L3 Card data tax category |
parameters[cart][items][n][shipping] | N10.N2 | Conditional | The shipping amount applied to the item |
parameters[cart][items][n][discount] | N13 | Conditional | The discount percentage applied to the price |
parameters[cart][items][n][giftMessage] | AN255 | Optional | Gift Message for the specific cart item |
parameters[cart][items][n][shippingMethod] | AN255 | Optional | Shipping method for the cart item |
parameters[cart][items][n][shippingInstructions] | AN255 | Optional | Shipping instructions for the cart item |
parameters[cart][items][n][shippingTrackingNumber] | AN255 | Optional | Shipping tracking number for the cart item |
parameters[cart][items][n][quantityUnit] | M, CM, KG, G, COUNT | Optional | The cart item's unit of quantity |
parameters[cart][items][n][productUrl] | Valid URL | Optional | The cart item's URL |
parameters[cart][items][n][imageUrl] | Valid URL | Optional | The cart item's image URL |
parameters[cart][items][n][totalDiscountAmount] | N10.N2 | Optional | The cart item's total discount amount (related to discount percentage) |
parameters[cart][items][n][productCode] | AN30 | Optional | The cart item's product code given by merchant |
parameters[cart][items][n][partNumber] | AN30 | Optional | The cart item's manufacturer provided part number |
parameters[cart][items][n][itemNumber] | N3 | Optional | The cart item's line number on the invoice |
parameters[cart][items][n][vatReferenceNumber] | AN30 | Optional | Reference number used to identify the VAT invoice or tax receipt |
parameters[cart][items][n][sellerId] | AN255 | Optional | The unique identifier of the marketplace seller for this item |
parameters[cart][items][n][recipient][salutation] | AN5 | Optional | The cart item's recipient title |
parameters[cart][items][n][recipient][firstName] | AN48 | Optional | The cart item's recipient first name |
parameters[cart][items][n][recipient][middleName] | AN50 | Optional | The cart item's recipient middle name |
parameters[cart][items][n][recipient][lastName] | AN48 | Optional | The cart item's recipient last name |
parameters[cart][items][n][recipient][apartment] | AN100 | Optional | The cart item's recipient apartment number |
parameters[cart][items][n][recipient][street] | AN100 | Optional | The cart item's recipient address line 1 |
parameters[cart][items][n][recipient][address] | AN100 | Optional | The cart item's recipient address line 2 |
parameters[cart][items][n][recipient][city] | AN80 | Optional | The cart item's recipient city |
parameters[cart][items][n][recipient][state] | AN50 | Optional | The cart item's recipient state |
parameters[cart][items][n][recipient][postcode] | AN16 | Optional | The cart item's recipient postal code |
parameters[cart][items][n][recipient][country] | A2 [A-Za-z]{2}, N3 [0-9]{3} | Optional | The cart item's recipient country code |
parameters[cart][items][n][recipient][phone] | N25 | Optional | The cart item's recipient phone number |
parameters[cart][items][n][recipient][email] | AN128 | Optional | The cart item's recipient email address |
parameters[cart][items][n][deliveryDate] | AN10 | Optional | The cart item's delivery date |
Cart Payments Parameters
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
parameters[cart][payments][n][name] | AN255 | Optional | The name of the payment method (e.g., promotion giftcard 50) |
parameters[cart][payments][n][type] | AN255 | Optional | The type of the used payment (GIFTCARD, PROMOTION) |
parameters[cart][payments][n][amount] | N10.N2 | Optional | The amount of the associated and already used payment method |
parameters[cart][payments][n][currency] | A3 | Optional | The currency of the already used payment amount |
parameters[cart][payments][n][status] | AN255 | Optional | The status of the already used payment (pending, authorized, captured) |
parameters[cart][payments][n][brand] | AN255 | Optional | The brand of the already used payment method (e.g., SVS) |
parameters[cart][payments][n][primary] | true/false | Optional | Identifies this payment method as primary (true/false) |
Marketplace Sellers Parameters
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
parameters[marketPlace][sellers][n][id] | AN255 | Optional | The unique identifier of the seller |
parameters[marketPlace][sellers][n][amount] | N13 | Optional | The total amount of the items under the seller |
Payload data example
{
"parameters": {
"card": {
"shipping": {
"street1": "123 Main St",
"street2": "Apt 4B",
"houseNumber1": "123",
"houseNumber2": "B",
"city": "New York",
"state": "NY",
"postcode": "10001",
"country": "US",
"method": "UPS",
"cost": "15.00",
"comment": "Leave at front door",
"expectedDate": "2025-06-01",
"logisticsProvider": "UPS",
"trackingNumber": "1Z999AA10123456784",
"returnTrackingNumber": "1Z999AA10123456785",
"normalized": true,
"validationStatus": "VALID",
"warehouse": "WH-001",
"preference": "Evening delivery",
"middleName": "Lee",
"companyName": "Acme Inc",
"phone": "+12125551234",
"workPhone": "+12125554321",
"mobile": "+12125556789",
"email": "[email protected]",
"type": "residential"
},
"cart": {
"items": [
{
"name": "Widget A",
"merchantItemId": "A001",
"quantity": 2,
"type": "product",
"sku": "SKU-A001",
"currency": "USD",
"description": "High-quality widget",
"commodityCode": "123456",
"commodityDescription": "Widgets",
"originalPrice": "25.00",
"price": "20.00",
"totalAmount": "40.00",
"taxAmount": "2.00",
"totalTaxAmount": "4.00",
"tax": "10%",
"taxCategory": "standard",
"shipping": "5.00",
"discount": "5.00",
"giftMessage": "Happy Birthday!",
"shippingMethod": "Express",
"shippingInstructions": "Fragile",
"shippingTrackingNumber": "TRK123456A",
"quantityUnit": "pcs",
"productUrl": "https://example.com/product-a",
"imageUrl": "https://example.com/product-a.jpg",
"totalDiscountAmount": "10.00",
"productCode": "PCA001",
"partNumber": "PART-A",
"itemNumber": "ITEM001",
"vatReferenceNumber": "VAT123456",
"sellerId": "SELLER001",
"recipient": {
"salutation": "Mr.",
"firstName": "John",
"middleName": "A.",
"lastName": "Doe",
"apartment": "Apt 4B",
"street": "123 Main St",
"address": "123 Main St, Apt 4B",
"city": "New York",
"state": "NY",
"postcode": "10001",
"country": "US",
"phone": "+12125556789",
"email": "[email protected]"
},
"deliveryDate": "2025-06-01"
},
{
"name": "Widget B",
"merchantItemId": "B002",
"quantity": 1,
"type": "product",
"sku": "SKU-B002",
"currency": "USD",
"description": "Another great widget",
"commodityCode": "654321",
"commodityDescription": "Gadgets",
"originalPrice": "50.00",
"price": "45.00",
"totalAmount": "45.00",
"taxAmount": "4.50",
"totalTaxAmount": "4.50",
"tax": "10%",
"taxCategory": "standard",
"shipping": "7.00",
"discount": "0.00",
"giftMessage": "",
"shippingMethod": "Standard",
"shippingInstructions": "",
"shippingTrackingNumber": "TRK654321B",
"quantityUnit": "pcs",
"productUrl": "https://example.com/product-b",
"imageUrl": "https://example.com/product-b.jpg",
"totalDiscountAmount": "0.00",
"productCode": "PCB002",
"partNumber": "PART-B",
"itemNumber": "ITEM002",
"vatReferenceNumber": "VAT654321",
"sellerId": "SELLER002",
"recipient": {
"salutation": "Ms.",
"firstName": "Jane",
"middleName": "B.",
"lastName": "Smith",
"apartment": "Suite 5C",
"street": "456 Broadway",
"address": "456 Broadway, Suite 5C",
"city": "Los Angeles",
"state": "CA",
"postcode": "90012",
"country": "US",
"phone": "+13105557890",
"email": "[email protected]"
},
"deliveryDate": "2025-06-03"
}
],
"payments": [
{
"name": "promotion giftcard 50",
"type": "GIFTCARD",
"amount": "50.00",
"currency": "USD",
"status": "captured",
"brand": "SVS",
"primary": false
},
{
"name": "spring promo",
"type": "PROMOTION",
"amount": "10.00",
"currency": "USD",
"status": "authorized",
"brand": "StorePromo",
"primary": true
}
]
},
"marketPlace": {
"sellers": [
{
"id": "SELLER001",
"amount": "450.00"
},
{
"id": "SELLER002",
"amount": "600.00"
}
]
}
}
}
}
A
Apple Pay
To use the applepay payment method, configure the Wallets setting in the admin dashboard. Ensure that the payment provider has confirmed the Apple Pay certificates and verified your domain in the Apple Pay account.
To enable payers to make Apple Pay payments, you can either connect to the Checkout page or work directly via the S2S protocol:
Checkout Page: No additional development is required on your side.
S2S Protocol: You must be able to obtain the Apple Pay payment token and include it in the SALE request.
Regardless of the protocol you have to make settings in the admin panel and set the following configurations:
- Merchant Identifier, Country and Shop Name – according to the merchant’s data from Apple Pay Developer account
- Certificate and Private Key – generated Apple Pay certificate and private key
- Merchant Capabilities and Supported Networks – configurations for Apple Pay payments
- Processing Private Key – private key that uses for payment token decryption (requires if payment provider supports).
We also recommend checking out the demo provided by Apple for Apple Pay: https://applepaydemo.apple.com
Set up Apple Pay
If you are using the Checkout protocol for Apple Pay payments, you will need to configure your Apple Developer account. Follow these steps to set up Apple Pay in your Apple Developer account:
1. Create a Merchant ID in the "Certificates, Identifiers & Profiles" section.
2. Register and verify the domains involved in the interaction with Apple Pay (e.g., the checkout page URL where the Apple Pay button is placed) in the "Merchant Domains" section. Download the verification file and provide it to support to complete the domain verification.
3. Create a Merchant Identity Certificate in the "Merchant Identity Certificate" section:
- Generate a pair of certificates (*.csr and *.key) and upload the *.csr file in the "Merchant Identity Certificate" section.
- Create a Merchant Identity Certificate based on the generated CSR file.
- Download the *.pem file from the portal.
⚠️ Note
The *.csr file can be obtained from the payment provider that processes Apple Pay, and the *.pem file should be uploaded to your payment provider's dashboard, following their instructions.
4. Create a Processing Private Key in the "Apple Pay Payment Processing Certificate" section:
- Generate a pair of certificates (*.csr and *.key) and upload the *.csr file.
- Create a Payment Processing Certificate based on the generated CSR file.
For more detailed instructions on setting up Apple Pay, refer to the following resource: Learn more about setting up Apple Pay
Next, enter the data from your Apple Pay developer account into the platform's admin panel: Go to the "Merchants" section, initiate editing, open the "Wallets" tab, navigate to the Apple Pay settings, and fill in the following fields:
- Merchant Identifier: Enter the Merchant ID.
- Certificate: Upload the *.pem file downloaded from the "Merchant Identity Certificate" section.
- Private Key: Upload the *.key file from the certificate pair generated for the Merchant Identity Certificate.
- Processing Private Key (required for token decryption): Paste the text from the Processing Private Key file. Ensure it is a single line of text (without spaces or breaks) placed between "BEGIN" and "END."
Apple Pay Payment Flow
By default, all Apple Pay payments on the platform are classified as virtual. As a result:
- Card details are not stored for these transactions.
- Functionality is limited for DMS payments and the creation of recurring transactions.
You can maximize the benefits of Apple Pay payments by leveraging card flow for digital wallets:
- Access to post-transaction operations, such as capture in DMS mode
- Support for recurring payments (MIT) – scheduled or on-demand
- Smart routing for optimized payment processing
- Payment cascading for improved success rates
Note! Ensure your provider supports these operations.
To access the card flow for Apple Pay payments, you need to:
- Set up the Processing Private Key in the admin panel settings ("Merchants" section → "Wallets" tab) to enable token decryption.
- Verify that your payment provider supports card flow processing (ask your support if available).
How It Works:
- If both requirements are met, the system will always decrypt the Apple Pay token during payment and store the decrypted card data for future transactions.
- You can view decrypted card details in the Transaction Details section of the admin panel.
- If any requirement is not met, the payment will be processed using the virtual flow instead.
- If your provider supports card flow but does not accept decrypted data, platform can still store the card details for processing. However, some features (e.g., smart routing and cascading) will not be available.
araka
payment_method = araka
astropay
If the payer chooses the astropay payment method, the redirection to another page will happen to finish the payment.
afsbenefit
payment_method = afsbenefit
airtel
payment_method = airtel
aircash-deposit
payment_method = aircash-deposit
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
PartnerId = Configuration in admin panel - MID | string | YES | Unique partner identifier (per currency) provided by Aircash |
Payer ID in the Payment Platform | string | YES | Unique user identifier in the merchant's system. Important Requirement: This parameter is a unique identifier of the user in your system. You need to provide this parameter along with PayerFirstName, PayerLastName, and PayerBirthDate parameters in the Initiate request. When the user presses confirm in the application, Aircash will match the provided data against its records. If the match fails, the user will see a pop-up message that the personal data does not match and will be redirected to the DeclineUrl. After your system receives a notification on the NotificationUrl, it should call the status method and will receive "Transaction does not exist" as a response. |
Public ID | string | YES | Unique transaction id in partner's system |
order.amount | decimal | YES | Transaction amount |
order.currency | int | YES | ISO-4217 currency code |
0 | int | YES | Pay type identifier (0 - Payment) |
2 | int | YES | Pay method identifier (2 - AcPay) |
Callback URL | string | YES | URL to which notification after the authorization has been successfully completed. |
Return URL | string | YES, conditionally | Aircash frame redirects the customer back to this URL if the payment is successful |
DeclineUrl | string | YES, conditionally | Aircash frame redirects the customer back to this URL in case payment failed |
CancelUrl | string | YES, conditionally | URL where the client will be redirected after manual transaction cancellation |
Configuration in admin panel - MID | string | YES, conditionally | Domain where your web application runs |
Configuration in admin panel - MID | string | YES | Language Identifiers (RFC 3066) |
Signature | string | YES | A sequence that has been digitally signed with the provider's private signature, used for authentication |
allpay
Use allpay in its following versions:
allpay-apiallpay-emailallpay-payout
For allpay-payout, the mandatory parameters are:
| Parameter (merchant sends) | Required | Type | Max length | Description |
|---|---|---|---|---|
payer_first_name + payee_last_name | Required | string | 60 | Customer name |
payer_email | Required | string | 2–60 | Recipient’s email |
order_amount | Required | number | — | e.g. 50.00 |
order_currency | Required | — | — | — |
order_description | Required | string | 5–200 | — |
parameters[SecurityQuestion] | Required | string | 10–40 | Security question |
parameters[SecurityQuestionAnswer] | Required | string | 3–40 | Security answer |
account_uuid | Required | string | — | From MID setting (ACCOUNT_UUID) |
fee_calculation_method | Required | — | — | MID option: account_level (default) / transaction_level |
awcc
You can add to the Authentication request a specific list of parameters which are possible for the awcc payment method.
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
network_type | String | Optional | Network Type of cryptoType, if applicable. Currently, only the symbol USDT have different network types. The following network types are available for USDT: eth (default) or tron |
bech32 | Boolean | Optional | Defaults to false. If set to true, it will return bech32 segwit address for BTC address, or BCH cash address for BCH. |
crypto_type | string | Required | Category of a cryptocurrency. |
accountId | string | Optional | Specify the accountId of the account you wish to make the transaction for. |
Authentication request example
curl --location -g --request POST '{{CHECKOUT_HOST}}/api/v1/session' \
--header 'Content-Type: application/json' \
--data-raw '{
"merchant_key": "xxxxx-xxxxx-xxxxx",
"operation": "purchase",
"methods": [
"awcc"
],
"parameters": {
"awcc": {
"network_type": "eth",
"bech32": "false",
"crypto_type": "USDT"
}
},
"order": {
"number": "order-1234",
"amount": "1000.19",
"currency": "BRL",
"description": "Important gift"
},
"cancel_url": "https://example.com/cancel",
"success_url": "https://example.com/success",
"customer": {
"name": "John Doe",
"email": "[email protected]"
},
"billing_address": {
"country": "US",
"state": "CA",
"city": "Los Angeles",
"address": "Moor Building 35274",
"zip": "123456",
"phone": "347771112233"
},
"accountId": "CA1001161C",
"hash": "{{session_hash}}",
}
'
axxi-cash
If the payer chooses the axxi-cash payment method, the ID document field will be additionally displayed on the Checkout page.
After the Pay button is clicked, the payer will be redirected to the page with the PDF payment ticket.
axxi-transfer
If the payer chooses the axxi-transfer payment method, the additional fields will be displayed on the Checkout page. The set of the fields depends on the payer's billing country.
There is a list of possible additional fields on the Checkout page:
- Choose your bank ;
- Person Type ;
- Document Type ;
- ID document .
A list of the fields depends on payer's country.
After the fields are filled, the payer will be redirected to the bank's site to complete the transfer.
However, for some billing countries (for example, Mexico), redirection does not happen. Instead, the payment details will be displayed on the Checkout page. The payer needs to use them in order to complete the transfer directly at the bank.
axxi-pin
If the payer chooses the axxi-pin payment method, the PIN voucher field will be displayed on the Checkout page. The payer should fill in the field to redeem the voucher and see the message with the result of the operation.
a2a_transfer
payment_method = a2a_transfer
B
beeline
If the payer chooses the beeline payment method, it needs to be specified the phone numbers of payer and (optionally) of receiver. The OTP code will be sent to the payer to confirm the payment.
billplz
If the payer chooses the billplz payment method, the customer’s confirmation via app may be necessary to finish the payment.
You can add to the Authentication request a specific list of parameters which are possible for the billplz payment method.
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
bank_code | String | Required | SWIFT Bank Code that represents bank. |
bank_account_number | String | Required | Bank account number. |
Authentication request example
curl --location -g --request POST '{{CHECKOUT_HOST}}/api/v1/session' \
--header 'Content-Type: application/json' \
--data-raw '{
"merchant_key": "xxxxx-xxxxx-xxxxx",
"operation": "purchase",
"methods": [
"billplz"
],
"parameters": {
"billplz": {
"bank_code": "DUMMYBANKVERIFIED",
"bank_account_number": "232673199763"
}
},
"order": {
"number": "order-1234",
"amount": "1000.19",
"currency": "MYR",
"description": "Important gift"
},
"cancel_url": "https://example.com/cancel",
"success_url": "https://example.com/success",
"customer": {
"name": "John Doe",
"email": "[email protected]"
},
"billing_address": {
"country": "US",
"state": "CA",
"city": "Los Angeles",
"address": "Moor Building 35274",
"zip": "123456",
"phone": "347771112233"
},
"hash": "{{session_hash}}"
}
'
bitolo-inr
payment_method = bitolo-inr
bitolo-brl
payment_method = bitolo-brl
bitolo-zar
payment_method = bitolo-zar
blik
payment_method = blik
Checkout request example
{
"merchant_key": "xxxxxxx-xxxxx-xxxxxx-xxxxx",
"operation": "purchase",
"methods": ["blik"],
"order": {
"number": "01K6YFTFTDTS71Z5BT6GAV",
"amount": "100.00",
"currency": "PLN",
"description": "Bitpanda deposit for 01K6YFTFTDTS71Z5BT6GAV"
},
"cancel_url": "https://web.staging.waskurzes.com/fiat-wallet/1f00897e-9c77-6650-84bd-bf4d2f80b5f8/transaction/1f099f00-33fd-6cbe-a1a2-454545455454/fail",
"success_url": "https://web.staging.waskurzes.com/fiat-wallet/1f00897e-9c77-6650-84bd-bf4d2f80b5f8/transaction/1f099f00-33fd-6cbe-a1a2-5454545444/success",
"customer": {
"name": "TEST TEST",
"email": "[email protected]",
"birth_date": "1970-06-05"
},
"billing_address": {
"country": "AT",
"city": "test",
"address": "test",
"zip": "1220",
"phone": "+456601223645"
},
"recurring_init": false,
"hash": "****************************************"
}
bts-ars
payment_method = bts-ars
If you set the value bts-ars for the payment_method you have to specify in your request the next parameter as well:
| Parameter | Description | Values | Required |
|---|---|---|---|
bank_cuil | Unique personal identification number of the customer in Argentina (CUIL). *If the parameter is not sent, its value will be requested from the payer. | String | - |
Checkout request example
{
"merchant_key": "xxxxxxx-d75c-11f0-9d57-xxxxxxxxxx",
"operation": "purchase",
"methods": [
"bts-ars"
],
"session_expiry": 60,
"success_url": "https://goo.gl",
"cancel_url": "https://goo.gl",
"expiry_url": "https://goo.gl",
"error_url": "https://goo.gl",
"url_target": "_parent",
"req_token": false,
"recurring_init": false,
"vat_calc": false,
"hash": "****************************************",
"order": {
"number": "10590",
"amount": "40000.00",
"currency": "ARS",
"description": "Deposit #10590"
},
"customer": {
"name": "Alejandro DG",
"email": "[email protected]",
"birth_date": "2002-12-31"
},
"billing_address": {
"country": "AR",
"city": "Buenos aires",
"address": "Felipe castro",
"zip": "1832",
"phone": "+541212121212"
},
"custom_data": {
"deposit_id": 10590,
"player_id": 18438
}
}
bts-mxn
payment_method = bts-mxn
If you set the value bts-mxn for the payment_method you have to specify in your request the next parameter as well:
| Parameter | Description | Values | Required |
|---|---|---|---|
bank_curp | Unique personal identification code of the customer in Mexico (CURP). *If the parameter is not sent, its value will be requested from the payer. | String | - |
Checkout request example
{
"merchant_key": "xxxxxxx-d75c-11f0-9d57-xxxxxxxxxx",
"operation": "purchase",
"methods": [
"bts-mxn"
],
"session_expiry": 60,
"success_url": "https://goo.gl",
"cancel_url": "https://goo.gl",
"expiry_url": "https://goo.gl",
"error_url": "https://goo.gl",
"url_target": "_parent",
"req_token": false,
"recurring_init": false,
"vat_calc": false,
"hash": "****************************************",
"order": {
"number": "10590",
"amount": "40000.00",
"currency": "MXN",
"description": "Deposit #10590"
},
"customer": {
"name": "Alejandro DG",
"email": "[email protected]",
"birth_date": "2002-12-31"
},
"billing_address": {
"country": "AR",
"city": "Buenos aires",
"address": "Felipe castro",
"zip": "1832",
"phone": "+541212121212"
},
"custom_data": {
"deposit_id": 10590,
"player_id": 18438
}
}
bpwallet
If the payer chooses the bpwallet payment method, the redirection to another page will happen to finish the payment.
C
cardpaymentz
If the payer chooses the cardpaymentz payment method, the redirection to another page will happen to finish the payment.
capitec
payment_method = citizen or flttrwv-capitec
citizen
payment_method = citizen
cnfmo
If the payer chooses the cnfmo payment method, the redirection to another page will happen to finish the payment.
coinspaid
payment_method = coinspaid
cup-on
payment_method = cup-on
crypto-btg
Use the crypto-btg payment method to perform cryptocurrency payments without specifying a fixed amount. If the payer selects the crypto-btg payment method, a crypto wallet address will be generated and displayed at checkout.
cybersource
payment_method = cybersource
D
dcp
If the payer chooses the dcp payment method, the redirection to another page will happen to finish the payment.
dl
If the payer chooses the dl payment method, the redirection to another page will happen to finish the payment.
The following parameter is required:
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
document_number | String | Conditional | Customer's ID. Condition: If the parameter is NOT specified in the request, then it will be collected on the Checkout page |
Authentication request example
curl --location -g --request POST '{{CHECKOUT_HOST}}/api/v1/session' \
--header 'Content-Type: application/json' \
--data-raw '{
"merchant_key": "xxxxx-xxxxx-xxxxx",
"operation": "purchase",
"methods": [
"dl"
],
"parameters": {
"dl": {
"document_number": "document_number"
}
},
"order": {
"number": "order-1234",
"amount": "100",
"currency": "USD",
"description": "Important gift"
},
"cancel_url": "https://example.domain.com/cancel",
"success_url": "https://example.domain.com/success",
"customer": {
"name": "John Doe",
"email": "[email protected]"
},
"billing_address": {
"country": "BR",
"city": "city",
"address": "address",
"house_number": "17/2",
"zip": "123456",
"phone": "347771112233"
},
"hash": "{{session_hash}}"
}'
dlocal
If the payer chooses the dlocal payment method, the redirection to another page will happen to finish the payment.
The following parameter is required:
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
document_number | String | Conditional | Customer's ID. Condition: If the parameter is NOT specified in the request, then it will be collected on the Checkout page |
Authentication request example
curl --location -g --request POST '{{CHECKOUT_HOST}}/api/v1/session' \
--header 'Content-Type: application/json' \
--data-raw '{
"merchant_key": "xxxxx-xxxxx-xxxxx",
"operation": "purchase",
"methods": [
"dlocal"
],
"parameters": {
"dlocal": {
"document_number": "document_number"
}
},
"order": {
"number": "order-1234",
"amount": "100",
"currency": "USD",
"description": "Important gift"
},
"cancel_url": "https://example.domain.com/cancel",
"success_url": "https://example.domain.com/success",
"customer": {
"name": "John Doe",
"email": "[email protected]"
},
"billing_address": {
"country": "BR",
"city": "city",
"address": "address",
"house_number": "17/2",
"zip": "123456",
"phone": "347771112233"
},
"hash": "{{session_hash}}"
}'
doku-hpp
If the payer chooses the doku-hpp payment method, the redirection to another page will happen to finish the payment.
You can add to the Authentication request a specific list of parameters which may be required for the doku-hpp payment method.
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
product_reference_id | String | Conditional | SKU/item ID of the item in this transaction. This parameter is mandatory if you want to use Akulaku, Kredivo and Indodana. Allowed chars: alphabetic, numeric, special chars. Max Length: 64. |
product_name | String | Conditional | Name of the product item. This parameter is mandatory if you want to use Kredivo, Jenius and Indodana. Allowed chars: alphabetic, numeric, special chars. Max Length: 255 |
product_quantity | Number | Conditional | Quantity of the product item. This paramater mandatory if you want to use Kredivo, Akulaku, Indodana and Jenius. Allowed chars: numeric. Max Length: 4 |
product_sku | String | Conditional | SKU of the product item. This paramater mandatory if you want to use Kredivo, Akulaku and Indodana. |
product_category | String | Conditional | Category of the product item. This paramater mandatory if you want to use Kredivo, Akulaku and Indodana. |
product_url | String | Conditional | URL to the product item on merchant site. This paramater mandatory if you want to use Kredivo and Indodana. |
product_image_url | String | Conditional | URL (image) of the product item on merchant site. This paramater mandatory if you want to use Indodana. |
product_type | String | Conditional | Type of the item in this transaction. This paramater mandatory if you want to use Indodana |
Authentication request example
curl --location -g --request POST '{{CHECKOUT_HOST}}/api/v1/session' \
--header 'Content-Type: application/json' \
--data-raw '{
"merchant_key": "xxxxx-xxxxx-xxxxx",
"operation": "purchase",
"methods": [
"doku-hpp"
],
"parameters": {
"doku-hpp": {
"product_reference_id": "1",
"product_name": "Fresh flowers",
"product_quantity": "1",
"product_sku": "FF01",
"product_category": "gift-and-flowers",
"product_url": "http://example.com/",
"product_image_url": "http://example.com/",
"product_type": "ABC"
}
},
"order": {
"number": "order-1234",
"amount": "1000",
"currency": "IDR",
"description": "Important gift"
},
"cancel_url": "https://example.com/cancel",
"success_url": "https://example.com/success",
"customer": {
"name": "John Doe",
"email": "[email protected]"
},
"billing_address": {
"country": "US",
"state": "CA",
"city": "Los Angeles",
"address": "Moor Building 35274",
"zip": "123456",
"phone": "347771112233"
},
"hash": "{{session_hash}}"
}
'
dpbanktransfer
If the payer chooses the dpbanktransfer payment method, the additional information must be provided by the payer on the Checkout page.
The payer should enter the details about the beneficiary and select an account from the list of accounts available for transfer.
The confirmation code can be requested at any stage of the transfer.
E
e-xezine
payment_method = e-xezine
F
fairpay
If the payer chooses the fairpay payment method, the set of the fields on the Checkout page depends on the payer's billing country.
Personal Identification Number is required if payer specifies one of the following countries: Brazil, Chile, and Colombia.
fawry
If the payer chooses the fawry payment method, the customer’s confirmation via app may be necessary to finish the payment.
fxmb-india
payment_method = fxmb-india
fxmb-netbanking
payment_method = fxmb-netbanking
G
gigadat
If the payer chooses the gigadat payment method, the redirection to another page will happen to finish the payment.
Google Pay™
To provide the payers with the possibility of googlepay payment you can connect to the Checkout or work directly via S2S protocol.
If you are using Checkout integration to work with googlepay payment method, it requires no additional code implementation.
If you are using S2S integration to work with googlepay payment method, you must be able to obtain the Google Pay payment token and include it in the SALE request.
To work with Google Pay™ payments through gateway, you need to make settings in the admin panel. You can set the following configurations:
• choose the environment: TEST or PRODUCTION
• specify "Allowed Auth Method" - PAN_ONLY or CRYPTOGRAM_3DS
• determine "Supported Networks" - MASTERCARD, VISA, AMEX, DISCOVER, JCB
These configuration will be applied and used when platform interacts with Google Pay.
⚠️ Pay attention
in the case of PAN_ONLY, the responsibility for passing 3ds is transferred to the acquirer, through which the payment is processed
Set up Google Pay
To set up Google Pay, you first need to determine who acts as the gateway when processing payments: the platform or the payment provider. This depends on which side decrypts the Google Pay payment token.
- If the platform decrypts the token and then sends the decrypted payment data to the payment provider, the platform acts as the gateway.
- If the payment provider decrypts the token (i.e., expects to receive an encrypted payment token in the payment request), the payment provider is the gateway.
The gateway (whether it is the platform or the payment provider processing Google Pay) must provide the following information:
- Gateway: The name of the gateway.
- Gateway Merchant ID: The merchant identifier in the gateway's system.
⚠️ Note
If the payment provider is the gateway, it is important to clarify whether they expect the token to include additional information, such as the payer's address or phone number.
The next step is to enter the data into the admin panel.
Go to the "Merchants" section, initiate editing, open the "Wallets" tab, navigate to the Google Pay settings, and fill in the following fields:
- Merchant Identifier: Enter the identifier from the Google Business Console. If the platform is the gateway, you can duplicate the Gateway Merchant ID here.
- Gateway: The gateway for interaction with Google Pay.
- Gateway Merchant ID: The merchant identifier in the Google gateway.
- Private Key (required for decrypted token): The key for decrypting the payment token. If the platform is the gateway, the key should be provided by the platform. If the payment provider is the gateway, the key is not required.
- Include Additional Parameters to Google Token: Depending on the payment provider's requirements.
Additionally, to work with Google Pay payments, you must verify the checkout domains from which Google Pay is processed in the Google Business Console. For domain verification, you may need to contact support.
⚠️ Mandatory Google Policy Adherence
Before enabling Google Pay, the merchant is required to:
Review and adhere to the Google Pay and Wallet API's Acceptable Use Policy.
Accept the Google Pay API Terms of Service.
Enabling Google Pay in the admin panel constitutes the merchant's acceptance of these terms.
ℹ️ Important: Supported Card Networks and Variables
The list of accepted card networks (e.g., Visa, Mastercard) available to customers using Google Pay through our platform is determined during our technical onboarding and integration with Google.
Important: Merchants must ensure their expected card networks and transaction regions align with the capabilities implemented during our Google integration. For specific questions regarding support for certain card types or geographic requirements, please contact your platform manager or our support team for clarification.
Google Pay Payment Flow
By default, all Google Pay payments on the platform are classified as virtual. As a result:
- Card details are not stored for these transactions.
- Functionality is limited for DMS payments and the creation of recurring transactions.
You can maximize the benefits of Google Pay payments by leveraging card flow for digital wallets:
- Access to post-transaction operations, such as capture in DMS mode
- Support for recurring payments (MIT) – scheduled or on-demand
- Smart routing for optimized payment processing
- Payment cascading for improved success rates
Note! Ensure your provider supports these operations.
To access the card flow for Google Pay payments, you need to:
- Set up the Private Key in the admin panel settings ("Merchants" section → "Wallets" tab) to enable token decryption.
- Verify that your payment provider supports card flow processing (ask your support if available).
How It Works:
- If both requirements are met, the system will always decrypt the Google Pay token during payment and store the decrypted card data for future transactions.
- You can view decrypted card details in the Transaction Details section of the admin panel.
- If any requirement is not met, the payment will be processed using the virtual flow instead.
- If your provider supports card flow but does not accept decrypted data, platform can still store the card details for processing. However, some features (e.g., smart routing and cascading) will not be available.
H
hayvn
If the payer chooses the hayvn payment method, it needs to be specified the crypto currency for payment. After creating a payment, the payer will be shown the data necessary to complete the transaction.
helio
If the payer chooses the helio payment method, the redirection to widget page will happen to finish the payment.
help2pay
payment_method = help2pay
I
ideal_crdz
If the payer chooses the ideal_crdz payment method, the redirection to another page will happen to finish the payment.
inf-br-qr-copy
payment_method = inf-br-qr-copy
Sale flow: BR: Pix QR/Copy
Request Parameters:
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
amount | double | True | Amount to be paid. |
expiryDate | string | True | When the payment link expires |
callbackUrl | string | True | URL for asynchronous callback notifications |
reference | string | True | Reference for the payment |
merchantType | string | True | Industry type of the merchant for which the transaction is being made. |
merchantName | string | True | Name of the merchant for which the transaction is being made. |
accountId | string | True | Collectionaccount ID provided by Infinia |
market | = BR | True | Associated market for the payment |
type | = PIX | True | Type of payment |
currency | string | True | Currency of the payment for the end consumer |
inf-ar-btr-offline
payment_method = inf-ar-btr-offline
AR - Argentina - Bank Transfer (3.0) These typically require manual confirmation or delay in settlement
Request Parameters:
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
amount | double | True | Amount to be paid. |
expiryDate | string | True | When the payment link expires |
callbackUrl | string | True | URL for asynchronous callback notifications |
reference | string | True | Reference for the payment |
merchantType | string | True | Industry type of the merchant for which the transaction is being made. |
merchantName | string | True | Name of the merchant for which the transaction is being made. |
accountId | string | True | Collectionaccount ID provided by Infinia |
market | string | True | Associated market for the payment |
type | OFFLINE | True | Type of payment |
currency | string | True | Currency of the payment for the end consumer |
redirectUrl | string | True | Specifies the URL to which the user will be redirected after the payment is completed (only applicable if using Infinia's Widget) |
clientTaxId | DNI/CUIT | True | Tax ID of the originator of the payment |
inf-py-btr-offline
payment_method = inf-py-btr-offline
PY - Paraguay - Bank Transfer (Paraguay bank transfers often require manual steps.)
Request Parameters:
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
amount | double | True | Amount to be paid. |
expiryDate | string | True | When the payment link expires |
callbackUrl | string | True | URL for asynchronous callback notifications |
reference | string | True | Reference for the payment |
merchantType | string | True | Industry type of the merchant for which the transaction is being made. |
merchantName | string | True | Name of the merchant for which the transaction is being made. |
accountId | string | True | Collectionaccount ID provided by Infinia |
market | string | True | Associated market for the payment |
type | OFFLINE | True | Type of payment |
currency | string | True | Currency of the payment for the end consumer |
redirectUrl | string | True | Specifies the URL to which the user will be redirected after the payment is completed (only applicable if using Infinia's Widget) |
clientname | string | True | Full name of the originator of the payment |
inf-pe-btr-offline
payment_method = inf-pe-btr-offline
PE - Peru - Bank Transfer
Request Parameters:
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
amount | double | True | Amount to be paid. |
expiryDate | string | True | When the payment link expires |
callbackUrl | string | True | URL for asynchronous callback notifications |
reference | string | True | Reference for the payment |
merchantType | string | True | Industry type of the merchant for which the transaction is being made. |
merchantName | string | True | Name of the merchant for which the transaction is being made. |
accountId | string | True | Collectionaccount ID provided by Infinia |
market | string | True | Associated market for the payment |
type | OFFLINE | True | Type of payment |
currency | string | True | Currency of the payment for the end consumer |
redirectUrl | string | True | Specifies the URL to which the user will be redirected after the payment is completed (only applicable if using Infinia's Widget) |
clientname | string | True | Full name of the originator of the payment |
inf-pe-offline-service-payment
payment_method = inf-pe-offline-service-payment
PE - Peru - Service Payments (Generally includes bill pay, often settled offline.)
Request Parameters:
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
amount | double | True | Amount to be paid. |
expiryDate | string | True | When the payment link expires |
callbackUrl | string | True | URL for asynchronous callback notifications |
reference | string | True | Reference for the payment |
merchantType | string | True | Industry type of the merchant for which the transaction is being made. |
merchantName | string | True | Name of the merchant for which the transaction is being made. |
accountId | string | True | Collectionaccount ID provided by Infinia |
market | string | True | Associated market for the payment |
type | OFFLINE_SERVICE_PAYMENT | True | Type of payment |
currency | string | True | Currency of the payment for the end consumer |
redirectUrl | string | True | Specifies the URL to which the user will be redirected after the payment is completed (only applicable if using Infinia's Widget) |
inf-cl-btr-offline
payment_method = inf-cl-btr-offline
CL - Chile - Bank Transfer
Request Parameters:
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
amount | double | True | Amount to be paid. |
expiryDate | string | True | When the payment link expires |
callbackUrl | string | True | URL for asynchronous callback notifications |
reference | string | True | Reference for the payment |
merchantType | string | True | Industry type of the merchant for which the transaction is being made. |
merchantName | string | True | Name of the merchant for which the transaction is being made. |
accountId | string | True | Collectionaccount ID provided by Infinia |
market | string | True | Associated market for the payment |
type | OFFLINE | True | Type of payment |
currency | string | True | Currency of the payment for the end consumer |
redirectUrl | string | True | Specifies the URL to which the user will be redirected after the payment is completed (only applicable if using Infinia's Widget) |
clientTaxId | CI/RUN | True | Tax ID of the originator of the payment |
inf-mx-btr-spei
payment_method = inf-mx-btr-spei
Processed in real-time or near real-time via digital platforms. MX - Mexico - Bank Transfer (SPEI)
Request Parameters:
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
amount | double | True | Amount to be paid. |
expiryDate | string | True | When the payment link expires |
callbackUrl | string | True | URL for asynchronous callback notifications |
reference | string | True | Reference for the payment |
merchantType | string | True | Industry type of the merchant for which the transaction is being made. |
merchantName | string | True | Name of the merchant for which the transaction is being made. |
accountId | string | True | Collectionaccount ID provided by Infinia |
market | string | True | Associated market for the payment |
type | SPEI | True | Type of payment |
currency | string | True | Currency of the payment for the end consumer |
redirectUrl | string | True | Specifies the URL to which the user will be redirected after the payment is completed (only applicable if using Infinia's Widget) |
inf-ar-btr-pull
payment_method = inf-ar-btr-pull
Processed in real-time or near real-time via digital platforms. AR - Argentina - Débito Inmediato (DEBIN)
Request Parameters:
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
amount | double | True | Amount to be paid. |
expiryDate | string | True | When the payment link expires |
callbackUrl | string | True | URL for asynchronous callback notifications |
reference | string | True | Reference for the payment |
merchantType | string | True | Industry type of the merchant for which the transaction is being made. |
merchantName | string | True | Name of the merchant for which the transaction is being made. |
accountId | string | True | Collectionaccount ID provided by Infinia |
market | string | True | Associated market for the payment |
type | PULL | True | Type of payment |
currency | string | True | Currency of the payment for the end consumer |
bankDetails.cbu | string | True | Collect on interaction |
bankDetails.alias | string | True | Collect on interaction |
inf-pe-btr-pull
payment_method = inf-pe-btr-pull
Processed in real-time or near real-time via digital platforms. PE - Peru - YAPE. YAPE is a mobile wallet that uses bank-linked instant transfers.
Request Parameters:
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
amount | double | True | Amount to be paid. |
expiryDate | string | True | When the payment link expires |
callbackUrl | string | True | URL for asynchronous callback notifications |
reference | string | True | Reference for the payment |
merchantType | string | True | Industry type of the merchant for which the transaction is being made. |
merchantName | string | True | Name of the merchant for which the transaction is being made. |
accountId | string | True | Collectionaccount ID provided by Infinia |
market | string | True | Associated market for the payment |
type | PULL | True | Type of payment |
currency | string | True | Currency of the payment for the end consumer |
bankDetails.phoneNumber | string | True | Collect on interaction |
bankDetails.otp | string | True | Collect on interaction |
instant-bills-pay
If the payer chooses the instant-bills-pay payment method, the redirection to another page will happen to finish the payment.
interac
payment_method = interac (previously intc-sdp)
ipasspay
payment_method = ipasspay
ips
payment_method = ips
QR method
-
Brand IPS
-
Engine VA
-
SALE with REDIRECT (QR-code)
-
Currencies:
- EUR
- RSD
- BAM
- MKD
-
The
ipsmethod works on both Checkout and S2S APM. Who produces and displays the QR the payer scans differs by channel:- Checkout: Payment Platform displays the QR code itself, together with the order number, amount, and description.
- S2S APM: the S2S response returns the QR code in
redirect_params.qr_codeas a Base64-encoded value; the merchant generates the QR from it and displays it to the payer.
-
The QR code expires after 1 minute by default.
-
Status via GET_TRANS_STATUS:
- executed → SETTLED
- rejected → DECLINED
- pending → PENDING
-
Final status also arrives via bank callback (ACSC → success, RJCT → decline).
J
jvz
If the payer chooses the jvz payment method, the confirmation necessary to finish the payment via APP.
K
kashahpp
If the payer chooses the kashahpp payment method, the redirection to another page will happen to finish the payment.
katarun
If the payer chooses the katarun payment method, the redirection to another page will happen to finish the payment.
kotani-card
If the payer chooses the kotani-card payment method, the redirection to another page will happen to finish the payment.
kotani-paybybank
If the payer chooses the kotani-paybybank payment method, the redirection to another page will happen to finish the payment.
kora
If the payer chooses the kora payment method, then on the checkout, it is necessary to collect the payer’s phone number from which the payment will be made before sending the request to the connector. The response to the request will include the parameters auth_method (“STK_PROMPT”) and message, indicating that the transaction must be confirmed on the phone.
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
= Public ID | String | True | A unique reference for the payment. The reference must be at least 8 characters long. |
order.description | String | False | Description |
order.amount | Number | True | The amount for the charge |
order.currency | String | True | The currency for the charge |
payer.name | String | False | The name of your customer |
payer.email | String | True | The email of your customer |
Collect the information on the checkout form | String | True | The mobile number of the customer to be charged e.g 254700000000 |
= Callback URL | String | False | The webhook URL to be called when the transaction is complete. |
= Verify URL | String | False | Redirect URL |
Configuration in Admin Panel | String | False | This sets who bear the fees of the transaction. If it is set to true, the merchant will bear the fee. If it is set to false, the customer will bear the fee. By default, it is false. |
Request parameters
| Parameter | Required | Description |
|---|---|---|
| action | + | CREDIT2VIRTUAL |
| client_key | + | Merchant client key |
| brand | + | kora |
| order_id | + | Order ID in the merchant system (unique) |
| order_amount | + | Payout amount (respect the operator min/max below; mind zero-exponent currencies like XOF/XAF) |
| order_currency | + | One of: GHS, KES, XOF, XAF, TZS, EGP |
| order_description | - | Description |
| parameters[mobile_money_operator] | + | Operator slug (see country table), e.g. safaricom-ke |
| parameters[mobile_number] | + | Recipient mobile number, matching the operator country (e.g. 233… for Ghana) |
| parameters[customer_email] | + | Recipient email |
| parameters[customer_name] | - | Recipient name |
| payee_first_name | + | Recipient first name |
| payee_last_name | + | Recipient last name |
| payee_email | + | Recipient email |
| hash | + | Request signature, see Appendix A, Credit2Virtual signature |
Supported countries
| Country | Currency | Operator | Operator slug | Min | Max |
|---|---|---|---|---|---|
| Ghana | GHS | MTN | mtn-gh | 1 | 50000 |
| Ghana | GHS | Airtel | airtel-gh | 1 | 50000 |
| Ghana | GHS | Tigo | tigo-gh | 1 | 50000 |
| Ghana | GHS | Vodafone | vodafone-gh | 1 | 50000 |
| Kenya | KES | Safaricom (M-Pesa) | safaricom-ke | 10 | 150000 |
| Kenya | KES | Airtel | airtel-ke | 10 | 150000 |
| Kenya | KES | Equitel | equitel-ke | 10 | 100000 |
| Kenya | KES | T-Kash | t-kash-ke | 50 | 200000 |
| Kenya | KES | Telcom Kenya | telcom-ke | 50 | 200000 |
| Côte d'Ivoire | XOF | MTN | mtn-ci | 2 | 2000000 |
| Côte d'Ivoire | XOF | Orange | orange-ci | 2 | 2000000 |
| Côte d'Ivoire | XOF | Moov | moov-ci | 2 | 2000000 |
| Côte d'Ivoire | XOF | Wave | wave-ci | 2 | 2000000 |
| Cameroon | XAF | MTN | mtn-cm | 2 | 1000000 |
| Cameroon | XAF | Orange | orange-cm | 2 | 500000 |
| Tanzania | TZS | Vodacom | vodacom-tz | 1000 | 30000 |
| Tanzania | TZS | Airtel | airtel-tz | 1000 | 30000 |
| Tanzania | TZS | Tigo | tigo-tz | 1000 | 30000 |
| Tanzania | TZS | Halopesa | halopesa-tz | 1000 | 30000 |
| Egypt | EGP | Vodafone | vodafone-eg | 1 | 30000 |
| Egypt | EGP | Orange | orange-eg | 1 | 30000 |
| Egypt | EGP | Etisalat | etisalat-eg | 1 | 30000 |
| Egypt | EGP | Aman | aman-eg | 1 | 30000 |
Sample curl request
POST {{S2S_APM_HOST}}/post
action=CREDIT2VIRTUAL&client_key=<client_key>&brand=kora
&order_id=<unique>&order_amount=200&order_currency=GHS&order_description=Withdrawal
¶meters[mobile_money_operator]=mtn-gh¶meters[mobile_number]=233240000000
¶meters[customer_email][email protected]¶meters[customer_name]=John Doe
&payee_first_name=John&payee_last_name=Doe&[email protected]&hash=<hash>
kunnect
If the payer chooses the kunnect payment method, the redirection to another page will happen to finish the payment.
| Parameter | Description | Values | Required |
|---|---|---|---|
cryptoCurrency | Currency for the specified payment amount | String | + |
Sample curl request
curl --location -g --request POST '{{CHECKOUT_HOST}}/api/v1/session' \
--header 'Content-Type: application/json' \
--data-raw '{
"merchant_key": "c2b8fb04-110f-11ea-bcd3-0242c0a85004",
"operation": "purchase",
"methods": [
"kunnect"
],
"parameters": {
"kunnect": {
"cryptoCurrency": "BTC"
}
},
"order": {
"number": "order-1234",
"amount": "1000.19",
"currency": "BRL",
"description": "Important gift"
},
"cancel_url": "https://example.com/cancel",
"success_url": "https://example.com/success",
"customer": {
"name": "John Doe",
"email": "[email protected]"
},
"billing_address": {
"country": "US",
"state": "CA",
"city": "City",
"address": "BigStreet",
"zip": "123456",
"phone": "199999999"
},
"payer_ip": "123.123.123.123",
"hash": "f5d6a0ab6fcfb6487a39e2256e50fff3c95aaa97"
}'
M
m2p-debit
You should add to the Authentication request a specific list of parameters in the “parameters” object that are needed for the
m2p-debit payment method.
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
paymentGatewayName | String | Required | Name of payment gateway that will be used for deposit |
paymentCurrency | String | Required | CRYPTO currency Symbol of currency that will be deposited |
tradingAccountLogin | String | Optional | Depositor’s trading account id |
Authentication request example
curl --location -g --request POST '{{CHECKOUT_HOST}}/api/v1/session' \
--header 'Content-Type: application/json' \
--data-raw '{
"merchant_key": "xxxxx-xxxxx-xxxxx",
"operation": "purchase",
"methods": [
"m2p-debit"
],
"parameters": {
"m2p-debit": {
"paymentGatewayName": "gateway",
"paymentCurrency": "BTC",
"tradingAccountLogin": "login"
}
},
"order": {
"number": "order-1234",
"amount": "1000.19",
"currency": "BRL",
"description": "Important gift"
},
"cancel_url": "https://example.com/cancel",
"success_url": "https://example.com/success",
"customer": {
"name": "John Doe",
"email": "[email protected]"
},
"billing_address": {
"country": "US",
"state": "CA",
"city": "Los Angeles",
"address": "Moor Building 35274",
"zip": "123456",
"phone": "347771112233"
},
"hash": "{{session_hash}}",
}
'
m2p-withdrawal
You should add to the Authentication request a specific list of parameters in the “parameters” object that are needed for the m2p-withdrawal payment method.
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
withdrawCurrency | String | Required | CRYPTO currency Cryptocurrency to which currency is converted |
address | String | Required | User cryptocurrency wallet address to withdraw |
tradingAccountLogin | String | Optional | Trading account ID of a user requesting a withdrawal |
Authentication request example
curl --location -g --request POST '{{CHECKOUT_HOST}}/api/v1/session' \
--header 'Content-Type: application/json' \
--data-raw '{
"merchant_key": "xxxxx-xxxxx-xxxxx",
"operation": "purchase",
"methods": [
"m2p-withdrawal"
],
"parameters": {
"m2p-withdrawal": {
"withdrawCurrency": "BTC",
"address": "mkzePZfMeoYsoGcavSJFT7UKSjsU2BEgzt",
"tradingAccountLogin": "login"
}
},
"order": {
"number": "order-1234",
"amount": "1000.19",
"currency": "BRL",
"description": "Important gift"
},
"cancel_url": "https://example.com/cancel",
"success_url": "https://example.com/success",
"customer": {
"name": "John Doe",
"email": "[email protected]"
},
"billing_address": {
"country": "US",
"state": "CA",
"city": "Los Angeles",
"address": "Moor Building 35274",
"zip": "123456",
"phone": "347771112233"
},
"hash": "{{session_hash}}",
}
'
mcpayhpp
If the payer chooses the mcpayhpp payment method, the redirection to another page will happen to finish the payment.
mcpayment
If the payer chooses the mcpayment payment method, the QR-code will be swown additionally. The customer needs to scan the QR-code to finish the payment.
moov-money
This method is used for mobile numbers in Benin. If the payer chooses moov-money payment method, confirmation is required through a mobile device.
moov-togo
This method is used for mobile numbers in Togo. If the payer chooses moov-togo payment method, confirmation is required through a mobile device.