The following fields are required for 3-D Secure 2.0 (EMV 3DS) due card scheme regulations:
customer.firstName/lastName
)customer.email
)customer.billingAddress1/2
)customer.billingCity
)customer.billingPostcode
)customer.billingState
)customer.billingCountry
)3D-Secure Verification Parameters
You can use the following extraData
keys, which will be passed in the
corresponding fields to the bank:
Key | Format | Length |
---|---|---|
installment | numeric | 2 characters |
Brand | Number | Result |
---|---|---|
Visa | 4111 1111 1111 1111 | Success |
Visa | 4242 4242 4242 4242 | Failure |
Mastercard | 5555 5555 5555 4444 | Success |
Mastercard | 5105 1051 0510 5100 | Failure |
The Simulator is an adapter for integration & testing purposes only. No real transaction will be performed at any payment provider.
Brand | Number | Result |
---|---|---|
Visa | 4111 1111 1111 1111 |
Success |
Visa | 4242 4242 4242 4242 |
Failure |
Mastercard | 5555 5555 5555 4444 |
Success |
Mastercard | 5105 1051 0510 5100 |
Failure |
Diners | 3800 000000 0006 |
Success |
Amex | 3782 8224631 0005 |
Success |
Discover | 6011 1111 1111 1117 |
Success |
Additionally, you can simulate an SCA Soft-Decline error code by sending
amount 65.00
(any currency).
If extended 3D-Secure Testing is enabled on the Simulator, you can use the following card numbers (resp. cardholder names for 3DS version 1) to simulate the given results:
3DS 2.x Simulation
Number | Method Fingerprinting | ARes Result |
---|---|---|
4000 0010 0000 0000 |
true | Frictionless - Fully Authenticated |
4111 1111 1111 1111 |
true | Frictionless - Fully Authenticated |
5555 5555 5555 4444 |
true | Frictionless - Fully Authenticated |
4000 0020 0000 0008 |
false | Frictionless - Fully Authenticated |
4000 0010 0000 0216 |
true | Frictionless - Attempted |
4000 0020 0000 0016 |
false | Frictionless - Attempted |
4000 0010 0000 0109 |
true | Challenge |
5000 0010 0000 0007 |
true | Challenge |
4000 0020 0000 0024 |
false | Challenge |
4000 0010 0000 0307 |
true | Not Authenticated |
4000 0020 0000 0032 |
false | Not Authenticated |
4000 0010 0000 0208 |
true | Rejected |
4000 0020 0000 0040 |
false | Rejected |
4000 0030 0000 0006 |
Error: Not Enrolled | |
4000 0030 0000 0014 |
Error: Network Timeout | |
4000 0030 0000 0022 |
Error: Network Error | |
4000 0030 0000 0030 |
Error: Invalid card | |
4000 0040 0000 0004 |
false | Error: Access Denied |
4000 0040 0000 0012 |
false | Error: Transient System Error |
4000 0040 0000 0020 |
false | Error: Invalid Format |
4000 0040 0000 0038 |
false | Error: Network Timeout |
4000 0040 0000 0046 |
false | Error: Network Error |
4000 0040 0000 0053 |
false | Error: Configuration missing |
4000 0040 0000 0061 |
false | Error: Configuration incomplete |
3DS 1.x Simulation
Cardholder Name | Result |
---|---|
3DS1_CONFIG_ERROR | Error: Invalid Configuration |
3DS1_NETWORK_TIMEOUT | Error: Network Timeout |
3DS1_NETWORK_ERROR | Error: Network Error |
3DS1_DS_TIMEOUT | Error: Directory Server Timeout |
3DS1_UNAUTHENTICATED | Not authenticated |
3DS1_NOT_ENROLLED | Not enrolled |
3DS1_ENROLLED | Enrolled, PaReq Redirect |
You can use any IBAN you like.
The last four digits will control the result:
Last 4 digits | Result |
---|---|
1111 | Success |
2222 | Pending |
2003 | Transaction Declined |
2006 | Insufficient funds |
Example: AT00 0000 0000 0000 1111
=> Successful transaction
Alternatively you may override the outcome via extra data extraData.outcome
outcome value |
Result |
---|---|
1111 | Success |
2222 | Pending |
success | Success |
Defining outcome
will overrule the behaviour based on the last 4 digits of the given IBAN.
Example: AT00 0000 0000 0000 2222
+ outcome = success
=> Successful transaction
You may simulate a transaction status change by adding the extraData
pendingOutcome
. Do note that this simulation may only be evoked by submitting
an IBAN with outcome pending
(ending with 2222) via the simulator payment page.
The status will change in approx. 5 minutes after submission.
Extra Data | Value | Result |
---|---|---|
pendingOutcome | success | Status will change from pending to success |
pendingOutcome | anyOtherString | Status will change from pending to error |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | Debit, Register, Preauthorize, Capture, Void, Refund, Deregister |
2C2P QR Payment | Full-Page Redirect | Debit only |
2C2P Webpay | Full-Page Redirect | Debit only |
2C2P ATM & Kiosk | Full-Page Redirect | Debit only |
2C2P Pay at Counter | Full-Page Redirect | Debit only |
2C2P Digital Wallet | Full-Page Redirect | Debit only |
2C2P MPU | Full-Page Redirect | Debit only |
2C2P OK Dollar | Full-Page Redirect | Debit only |
Field | Required |
---|---|
description | true |
Extra Data | Required | Description |
---|---|---|
sub-method | true | name of the sub method which should be used |
Due to the number of payment channels 2C2P provides per payment channel an extra parameter is required to determine which channel should be used. The full list of supported channels can be found here: List of Payment Channels
To use the desired Channel the "Channel Code" has to be submitted via the "sub-method" extra data field.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
AdvCash Wallet | Full-Page Redirect, Server-To-Server | Register, Debit, Payout |
The register transaction type (server-to-server) allows for verifying an AdvCash
account. Send either customer.email
or extraData.walletId
for identifying an
AdvCash wallet. Additionally, customer.firstName
and customer.lastName
are
required. AdvCash returns a percentage of how much first and last name are
matching, respectively. Additionally, a boolean flag is provided if the account
is verified by AdvCash.
Note: the register transaction won't fail, if first and/or last name don't match, or if the wallet account is unverified. It will only fail, if the wallet account doesn't exist.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | All |
AliPay | Full-Page Redirect | Debit, Refund |
Giropay | Full-Page Redirect | Debit, Refund |
EPS | Full-Page Redirect | Debit, Refund |
DirectDebit | Full-Page Redirect | Debit, Refund |
iDeal | Full-Page Redirect | Debit, Refund |
Dotpay | Full-Page Redirect | Debit, Refund |
DragonPay | Full-Page Redirect | Debit, Refund |
Boleto | Full-Page Redirect | Debit, Refund |
Bancontact | Full-Page Redirect | Debit, Refund |
Qiwi | Full-Page Redirect | Debit, Refund |
Sofort | Full-Page Redirect | Debit, Refund |
UnionPay | Full-Page Redirect | Debit, Refund |
WeChatPay | Full-Page Redirect | Debit, Refund |
Blik | Hosted Payment Page | Debit, Refund |
Vipps | Full-Page Redirect | All |
Online Banking Finland | Full-Page Redirect | Debit, Refund, Partial refund |
Swish | Full-Page Redirect | Debit, Refund, Partial refund |
PaySafeCard | Full-Page Redirect | Debit, Refund |
Riverty | Server-To-Server | Debit, Preauthorize, Capture, Refund |
Bizum | Full-Page Redirect | Debit, Refund |
MB Way | Hosted Payment Page | Debit, Refund |
Multibanco | Full-Page Redirect | Debit |
Parameter | Required | Description |
---|---|---|
extraData.authorisationType | false | PreAuth or FinalAuth |
extraData.requestedTestAcquirerResponseCode | false | To test different responses on Adyen. This data can only be provided within Adyen's test environment. |
extraData.merchantOrderReference | false | Mapped to the field merchantOrderReference on the Adyen API. |
Parameter | Required | Description |
---|---|---|
extraData.blikCode | false | The code the customer got from Blik |
Parameter | Required | Description |
---|---|---|
customer.birthDate | true | The customer’s birth date in ISO 8601 format. eg. 1970-07-10 |
customer.gender | true | The customer’s gender. ("MALE" || "FEMALE") |
customer.shippingFirstName | true | The customer’s first name and any middle names |
customer.shippingLastName | true | The customer’s last name |
customer.shippingAddress1 | true | Street name of the shipping address |
customer.shippingAddress2 | true | Street number of the shipping address |
customer.shippingCity | true | City name of the shipping address |
customer.shippingPostcode | true | ZIP or postal code of the shipping address |
customer.shippingCountry | true | Two characters Code of the shipping country ("NL"/"BE") |
customer.billingFirstName | false | If not sent, customer.shippingFirstName will be used |
customer.billingLastName | false | If not sent, customer.shippingLastName will be used |
customer.billingAddress1 | conditional* | If not sent, customer.shippingAddress1 will be used |
customer.billingAddress2 | conditional | If not sent, customer.shippingAddress2 will be used |
customer.billingCity | conditional | If not sent, customer.shippingCity will be used |
customer.billingPostcode | conditional | If not sent, customer.shippingPostcode will be used |
customer.billingCountry | conditional | If not sent, customer.shippingCountry will be used |
customer.shippingPhone | true | eq. "+31612345678" |
customer.ipAddress | true | The shopper's IP address. Riverty uses this for risk checks. |
customer.email | true | The customer’s email address |
items | true | Array of line-items |
item.identification | true | An item unique item id |
item.description | true | Description of the item |
item.quantity | true | Item quantity eq. "2" |
item.price | true | Item price (exclusive tax) |
item.l2l3Data.taxDetails.type | true | Item tax type information |
item.l2l3Data.taxDetails.amount | true | Item tax amount |
item.l2l3Data.taxDetails.rate | true | Item tax rate in percentages |
*Note: If customer.billingAddress1
is sent, following parameters should also be sent:
customer.billingAddress2
customer.billingCity
customer.billingPostcode
customer.billingCountry
If any of these parameters are missing, the shipping data will be used as billing data.
Parameter | Required | Description |
---|---|---|
customer.billingPhone | true | Has to be a valid Portuguese phone number. eq. "+351234567890" |
customer.billingCountry | true | ISO 3166-1 alpha-2 country code. Has to be "PT". |
Parameter | Required | Description |
---|---|---|
customer.billingCountry | true | customer.shippingCountry should be PL |
currency | true | EUR |
Afterpay supports the following currencies: AUD, NZD, USD and CAD. The used currency must also match the currency of the Afterpay merchant account.
Payment Method | Transaction Flows | Transaction Types | Supported Currencies |
---|---|---|---|
Afterpay | Full-Page Redirect | Debit, Preauthorize, Capture, Void, Refund | AUD, NZD, USD, CAD |
Name | Type | Required | Description |
---|---|---|---|
firstName (Customer) | string | true | The customer’s first name and any middle names |
lastName (Customer) | string | true | The customer’s last name |
email (Customer) | string | true | The customer’s email address |
billingAddress1 (Customer) | string | true | First line of the address. |
billingCity (Customer) | string | true | Australian suburb, New Zealand town or city, U.K. Postal town, U.S. or Canadian city |
billingState (Customer) | string | true | Australian state, New Zealand region, U.K. county, Canadian Territory or Province, or U.S. state |
billingPostcode (Customer) | string | true | ZIP or postal code |
billingCountry (Customer) | string | true | The two-character country code |
shippingFirstName (Customer) | string | true | Shipping first name |
shippingLastName (Customer) | string | true | Shipping last name |
shippingAddress1 (Customer) | string | true | First line of the address |
shippingCity (Customer) | string | true | Australian suburb, New Zealand town or city, U.K. Postal town, U.S. or Canadian city |
shippingState (Customer) | string | true | Australian state, New Zealand region, U.K. county, Canadian Territory or Province, or U.S. state |
shippingPostcode (Customer) | string | true | ZIP or postal code |
shippingCountry (Customer) | string | true | The two-character country code |
extraData.billingName (Customer) | string | true | The full name of contact (first and last name) |
Name | Type | Required | Description |
---|---|---|---|
extraData.billingCity2 (Customer) | string | false | New Zealand suburb or U.K. village or local area |
extraData.shippingCity2 (Customer) | string | false | New Zealand suburb or U.K. village or local area |
extraData.shippedAt | string | false | The time at which the order was shipped, in ISO 8601 format |
extraData.courierName | string | false | The name of the courier |
extraData.tracking | string | false | The tracking number provided by the courier |
extraData.priority | string | false | The shipping priority. If provided, must be either 'STANDARD' or 'EXPRESS' |
extraData.taxAmount | string | false | The included tax amount after applying all discounts |
extraData.shippingAmount | string | false | The shipping amount |
If items are given with the transaction data, the following parameters can or must be given:
Name | Type | Required | Description |
---|---|---|---|
name (Item) | string | true | Product name or display name for the discount |
quantity (Item) | string | conditional | Required for normal items, not mandatory for discount items |
price (Item) | string | false | The unit price of the individual item. Must be a positive value |
extraData.type (Item) | string | false | Set this parameter to 'discount' if the item should be sent as a discount item. Otherwise the field can be left empty |
extraData.sku (Item) | string | false | Product SKU |
extraData.pageUrl (Item) | string | false | The canonical URL for the item's Product Detail Page |
extraData.imageUrl (Item) | string | false | A URL for a web-optimised photo of the item, suitable for use directly as the src attribute of an img tag |
extraData.estimatedShipmentDate (Item) | string | false | The estimated date when the order will be shipped, in YYYY-MM or YYYY-MM-DD format |
In order to get the configured Min and Max purchase amount range an Options Request is required.
Please use minMaxPrice
as an identifier e.g. POST /options/{apiKey}/minMaxPrice
.
You can find more information about the options request here: Options Request
Payment Method | TransactionFlows | Transaction Types |
---|---|---|
CreditCard | iFrame Form & payment.js Integration | Debit, Refund, Register, Deregister |
Name | Type | Required | Description |
---|---|---|---|
description | string | false | Description of the transaction. |
extraData.cardHolderEmail | string | true | Cardholder's email. |
extraData.cardHolderIdentityDocumentCountry | string | true | Cardholder's ID country. |
extraData.cardHolderIdentityDocumentType | string | true | Cardholder's ID type. |
extraData.cardHolderIdentityDocumentIdentifier | string | true | Cardholder's ID number. |
customer.firstName | string | true | Billing's first name |
customer.lastName | string | true | Billing's last name |
customer.email | string | true | Billing’s email. |
customer.billingAddress1 | string | true | Billing’s address line 1. |
customer.billingAddress2 | string | true | Billing’s address line 2. |
customer.city | string | true | Billing’s city. |
customer.postCode | string | true | Billing’s post code. |
customer.state | string | true | Billing’s city. |
customer.country | string | true | Billing’s ISO country code. |
customer.shippingFirstName | string | false | Shipping’s first name. |
customer.shippingLastName | string | false | Shipping’s last name. |
customer.shippingEmail | string | false | Shipping’s email. |
customer.shippingAddress1 | string | false | Shipping’s address line 1. |
customer.shippingAddress2 | string | false | Shipping’s address line 2. |
customer.shippingCity | string | false | Shipping’s city. |
customer.shippingPostCode | string | false | Shipping’s pst code. |
customer.shippingState | string | false | Shipping’s sate. |
customer.shippingCountry | string | false | Shipping’s ISO country code. |
customer.extraData.phoneCode | string | false | Billing’s phone country. |
customer.extraData.phoneSubscriber | string | false | Billing’s phone Number. |
customer.extraData.shippingPhoneCode | string | false | Shipping’s phone Country Code. |
customer.extraData.shippingPhoneSubscriber | string | false | Shipping’s phone Number. |
Name | Type | Required | Description |
---|---|---|---|
extraData.cardHolderEmail | string | true | Cardholder's email. |
extraData.cardHolderIdentityDocumentCountry | string | true | Country of the cardholder's identity document in ISO format. |
extraData.cardHolderIdentityDocumentType | string | true | Cardholder's ID type (DNI, CE, PASSPORT). |
extraData.cardHolderIdentityDocumentIdentifier | string | true | Cardholder's ID number. |
customer.identification | string | true | Internal user identifier to the merchant. |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
AlipayCN | Redirect | Debit, Register, Deregister, Auto Debit, Refund |
AlipayHK | Redirect | Debit, Register, Deregister, Auto Debit, Refund |
TrueMoney | Redirect | Debit, Register, Deregister, Auto Debit, Refund |
TNG | Redirect | Debit, Register, Deregister, Auto Debit, Refund |
GCash | Redirect | Debit, Register, Deregister, Auto Debit, Refund |
Dana | Redirect | Debit, Register, Deregister, Auto Debit, Refund |
Kakaopay | Redirect | Debit, Register, Deregister, Auto Debit, Refund |
Bkash | Redirect | Debit, Register, Deregister, Auto Debit, Refund |
Rabbit Line Pay | Redirect | Debit, Register, Deregister, Auto Debit, Refund |
Easypaisa | Redirect | Debit, Refund |
Conect Wallet | Redirect | Debit, Auto Debit, Refund |
BPI | Redirect | Debit, Auto Debit, Refund |
iDeal | Redirect | Debit, Refund |
Giropay | Redirect | Debit, Refund |
Sofort | Redirect | Debit, Refund |
PayU | Redirect | Debit, Refund |
P24 | Redirect | Debit, Refund |
Blik | Redirect | Debit, Refund |
EPS | Redirect | Debit, Refund |
Bancontact | Redirect | Debit, Refund |
PIX | Redirect | Debit, Refund (STILL INVALID) |
Name | Type | Required | Description |
---|---|---|---|
extraData.goodsName | string | true | Maximum length: 256 Characters |
extraData.blikCode | string | true (only when payment method is Blik) | the 6-digits Blik Code provided by the customer to continue the transaction |
extraData.payerEmail | sting | true (only when payment method is P24) | the Payer Email |
extraData.cpf | string | true (only when payment method is Pix) | the Pix 11-digits cpf provided by the customer. |
Name | Type | Required | Description |
---|---|---|---|
extraData.goodsName | string | true | Maximum length: 256 Characters |
Name | Type | Required | Valid values |
---|---|---|---|
extraData.scopes | string | true | - BASE_USER_INFO : Indicates that the unique user ID can be obtained. - USER_INFO : Indicates that the complete user information can be obtained, for example, user name, avatar, and other user information. - AGREEMENT_PAY : Indicates that the user agrees to authorize for auto debit so that the merchant can use the access token to automatically deduct money from the user's account. |
The current Alipay+ integration only supports the Alipay+ CashierPayment Flow!
Payment Method | Transaction Flows | Transaction Types | Description |
---|---|---|---|
Alipay+ | Full-Page Redirect | Debit, Refund | Wallet will be selected by customer @ AlipayPlus |
AlipayCN | Full-Page Redirect | Debit, Refund | Only AlipayCN available |
AlipayHK | Full-Page Redirect | Debit, Refund | Only AlipayHK available |
BPI | Full-Page Redirect | Debit, Refund | Only BPI available |
ConnectWallet | Full-Page Redirect | Debit, Refund | Only ConnectWallet available |
Dana | Full-Page Redirect | Debit, Refund | Only Dana available |
GCash | Full-Page Redirect | Debit, Refund | Only GCash available |
KakaoPay | Full-Page Redirect | Debit, Refund | Only KakaoPay available |
RabbitLinePay | Full-Page Redirect | Debit, Refund | Only RabbitLinePay available |
TNG | Full-Page Redirect | Debit, Refund | Only TNG available |
TrueMoney | Full-Page Redirect | Debit, Refund | Only TrueMoney available |
Boost | Full-Page Redirect | Debit, Refund | Only Boost available |
Akulaku | Full-Page Redirect | Debit, Refund | Only Akulaku available |
Parameter / Name | Type | Required | Description |
---|---|---|---|
username (ClientId) | string | true | Your ClientId from Alipay+. Starts with SANDBOX_ for their sandbox environment. |
extraData.privateKey | string | true | The Private Key - to be retrieved from Alipay+ |
extraData.alipayplusPublicKey | string | true | The Alipay+ Public Key - to be found in the Alipay+ Developer Portal |
extraData.referenceMerchantId | string | true | The Reference Merchant Id - The ID assigned to identify the merchant. |
extraData.merchantName | string | true | The display name of the merchant. |
extraData.merchantMCC | string | true | The merchant category code, which represents the categorization of the merchant's business type |
extraData.merchantAddressRegion | string | true | The merchant address country |
extraData.merchantAddressCity | string | true | The merchant address city |
extraData.referenceStoreId | string | false | The Reference Store Id - The ID assigned to identify a store. |
extraData.storeName | string | false | The store name |
extraData.storeMCC | string | false | The stores category code, which represents the categorization of the store's business type |
extraData.storeAddressRegion | string | false | The store address region |
extraData.storeAddressAddress1 | string | false | The store address |
extraData.expirySeconds | int | false | Seconds till the payment expires. Between 60 seconds and 600 (default) seconds. |
extraData.settlementCurrency | string | false | The 3 letter ISO currency code of the currency that the merchant wants to be settled against. If provided, overwrites connector configuration |
extraData.signatureKeyVersion | string | false | Specifies the key version that is used to generate or validate the signature. By default, the value is the latest version of the key associated with Client-Id |
Name | Type | Required | Description |
---|---|---|---|
currency | string | true | 3 letter currency code |
amount | string | true | Transaction amount: decimals separated by a "." (dot) |
description | string | true | Description of items the user is purchasing Alipay+ Docs |
extraData.terminalType | string | true | Valid values: WEB,WAP,APP,MINI_APP Alipay+ Docs |
extraData.osType | string | conditional | Required if extraData.terminalType == APP/WAP Valid values: IOS, ANDROID Alipay+ Docs |
extraData.settlementCurrency | string | false | The 3 letter ISO currency code of the currency that the merchant wants to be settled against. If provided, overwrites connector configuration |
extraData.allowedPspRegions | string | false | Comma separated list of allowed Countries e.g. AT,DE |
extraData.splitSettlementId | string | false | Alipay+ split settlement support Alipay+ Docs |
Name | Type | Required | Description |
---|---|---|---|
identification (Customer) | string | false (but highly recommended) | The customer’s unique id at the merchant |
firstName (Customer) | string | false (but highly recommended) | The customer’s first name and any middle names |
lastName (Customer) | string | false (but highly recommended) | The customer’s last name |
email (Customer) | string | false (but highly recommended) | The customer’s email address |
billingPhone (Customer) | string | false | The customer’s phone number |
billingCountry (Customer) | string | false | The customer’s country ISO 3166 2-letter country code. Mapped to userRegion |
ipAddress (Customer) | string | false | The customer’s IP address |
shippingFirstName (Customer) | string | false | Shipping first name |
shippingLastName (Customer) | string | false | Shipping last name |
shippingAddress1 (Customer) | string | false | First line of the address |
shippingAddress2 (Customer) | string | false | Second line of the address |
shippingCity (Customer) | string | false | Australian suburb, New Zealand town or city, U.K. Postal town, U.S. or Canadian city |
shippingState (Customer) | string | false | Australian state, New Zealand region, U.K. county, Canadian Territory or Province, or U.S. state |
shippingPostcode (Customer) | string | false | ZIP or postal code |
shippingCountry (Customer) | string | false | The two-character country code |
extraData.shippingCarrier (Customer) | string | false | The name of the carrier, such as FedEx, UPS, USPS, and so on |
If items are provided with the transaction data, the following parameters can or must be given:
Name | Type | Required | Description |
---|---|---|---|
identification (Item) | string | true | The unique ID assigned by the merchant that directly provides services or goods to users to identify goods |
name (Item) | string | true | Product name or display name for the discount |
quantity (Item) | string | false | Quantity |
currency (Item) | string | false | If not provided transaction.currency will be used |
price (Item) | string | false | Item price: decimals separated by a "." (dot) |
extraData.category (Item) | string | false | Item Category |
extraData.brand (Item) | string | false | Item Brand |
In order to retrieve the available payment methods and active promotions details, the consultPayment options request has to be issued.
Please use consultPayment
as an option name e.g. POST /options/{apiKey}/consultPayment
.
Name | Type | Required | Description | |
---|---|---|---|---|
parameters.type | string | true | Valid values: CASHIER | |
parameters.currency | string | true | 3 letter currency code | |
parameters.amount | string | true | Payment amount: decimals separated by a "." (dot) | |
parameters.settlementCurrency | string | true | 3 letter currency code for settlement | |
parameters.terminalType | string | true | Valid values: WEB,WAP,APP,MINI_APP Alipay+ Docs | |
parameters.osType | string | conditional | Required if extraData.terminalType == APP/WAP Valid values: IOS, ANDROID Alipay+ Docs |
Request Body Example
{
"parameters": {
"type": "CASHIER",
"currency": "USD",
"amount": 100,
"settlementCurrency": "JPY",
"terminalType": "WEB"
}
}
Example responses
success
{
"success": true,
"options": {
"paymentOptions": [
{
"brandName": "Alipay+",
"enabled": "true",
"logos": [
{
"logoHeight": "190",
"logoName": "Alipay+",
"logoPattern": "default",
"logoUrl": "https://cdn.marmot-cloud.com/storage/aplus-checkout-prod/icon/prod/CONNECT_WALLET_TEST.png",
"logoWidth": "810"
}
],
"paymentMethodType": "CONNECT_WALLET",
"promoNames": [
"{\"en_US\":\"A+ Cashier Promotion Test\",\"fil_PH\":\"A+ Cashier Promotion Test\"}"
]
}
]
}
}
error
{
"success": false,
"errorMessage": "Given identifier 'someIdentifier' is invalid."
}
You can find more information about the options request here: Options Request
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
AmazonPayments | payment.js | All |
AmazonPayments require you to display the Amazon Widget on your Checkout page. This is handled by the payment.js integration.
1. Embed the payment.min.js in your page
<script data-main="payment-js" src="https://asxgw.com/js/integrated/payment.1.3.min.js"></script>
2. Provide DIV elements on your page for the various Amazon widgets
<div id='loginButton'></div>
<div id='addressWidgetDiv'></div>
<div id='walletWidgetDiv'></div>
<div id='consentWidgetDiv'></div>
3. Initialize the payment.js with the following parameters:
publicIntegrationKey
of the AmazonPayments connector<script>
var payment = new PaymentJs('1.2');
amazonEventHandler = function (eventName, data) {
//handle events here
}
completeHandler = function (paymentJsInstance) {
//you can do additional stuff in here, e.g. make the DIVs visible if they were hidden
}
var additionalParameters = {
buttonType: 'PwA', // Type of AmazonPayments Button
buttonColor: 'Gold', // Color of AmazonPayments Button
buttonSize: 'small', // Size of AmazonPayments Button
loginPopup: true, // Use Pop-Up for logging customers in into their Amazon account
autoShow: true, // automatically show AmazonPayments Login button once ready
loginRedirectUrl: // if loginPopup is false, provide the URL to get back redirected after customer logged in to Amazon
};
payment.initAmazon(
'public-integration-key',
'loginButton', // mandatory
'addressWidgetDiv', //optional
'walletWidgetDiv', // mandatory
'consentWidgetDiv', // optional, necessary for recurring transactions
amazonEventHandler,
additionalParameters,
completeHandler
);
</script>
4. You can react on the various AmazonPayments events in your amazonEventHandler
.
If you set autoShow
to true, the various widget will be automatically shown
to fulfill the payment flow.
If set to false, you have to take care about that on your own.
The following events will be fired:
login.ready
: ready to show login buttonlogin.shown
: login button was shownlogin.error
: failed to show login button, data
will include code
and message
with Amazon error informationlogin.complete
: customer successfully logged inaddressBook.error
: failed to show addressBook widget, data
will include code
and message
with Amazon error informationaddressBook.shown
: addressBook widget was shownaddressBook.selected
: customer has chosen/changed the delivery addresswallet.error
: failed to show wallet widget, data
will include code
and message
with Amazon error informationwallet.selected
: customer has chosen a walletwallet.shown
: wallet widget was shownconsent.complete
: consent was granted by customerconsent.incomplete
: consent is not yet granted by customerconsent.error
: failed to show consent widget, data
will include code
and message
with Amazon error informationThe individual widgets can be shown and hidden with payment.js methods.
<script>
// show/hide login button
payment.amazon().login.show();
payment.amazon().login.hide();
// show/hide addressBook widget
payment.amazon().addressBook.show();
payment.amazon().addressBook.hide();
// show/hide wallet widget
payment.amazon().wallet.show();
payment.amazon().wallet.hide();
// show/hide consent widget
payment.amazon().consent.show();
payment.amazon().consent.hide();
</script>
5. Once wallet.selected
(or consent.complete
to enable recurring transactions)
was fired, and the customer confirms the order on your checkout page, you must call
the tokenize
method to obtain a payment token.
This token is then to be used in the transactionToken
element of the Debit
call to the Transaction API.
<script>
payment.tokenize(
{}, //optional additional data
function (token) {
//Submit token to your server and perform transaction through Transaction API
//Example:
$('#transaction_token').val(token); //store the transaction token
$('#payment_form').get(0).submit(); //submit the form
},
function (errors) {
//show/handle errors
}
);
</script>
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | Debit, Register, Preauthorize, Capture, Void, Refund, Deregister |
Name | Type | Required | Description |
---|---|---|---|
customer.email | string | true | The customer's email |
Name | Type | Required | Description |
---|---|---|---|
extraData.recurringMode | string | false | Only relevant for recurring transactions. Possible values: FIXED , VARIABLE , default: FIXED |
Be aware that we have a special converter for this adapter, which converts our Transaction Indicators to Amazon.
Transaction Indicator | Amazon Transaction Indicator |
---|---|
SINGLE | ECOMMERCE |
INITIAL, RECURRING, CARDONFILE, CARDONFILE-MERCHANT-INITIATED | RECURRING |
MOTO | MOTO |
For Amazon Payment Services we can identify MADA/MEEZA cards depending on the BIN range to be used in the Hosted Payment Page.
Apple Pay is not an adapter itself, but a common type of payment supported by some listed adapters.
For processing transactions with Apple Pay tokens, the Gateway has to be configured with your Payment Processing certificate first. Please ask your Gateway administrator to do so.
Instruction on how to acquire this certificate can be found directly in the Apple documentation: https://developer.apple.com/documentation/apple_pay_on_the_web/setting_up_your_server
For Apple Pay transactions acquire a Payment Token through your iOS App, or Apple Pay on the Web. (Refer to https://developer.apple.com/documentation/passkit & https://developer.apple.com/documentation/apple_pay_on_the_web).
The resulting token must be submitted in the transactionToken
element of the Debit/Preauthorize, prefixed with applepay:
Example:
<transactionToken>
applepay:{"token":{"paymentData":{"version":"EC_v1","data":"...","signature":"...","publicKeyHash":"...","transactionId":"...."}},"paymentMethod":{"displayName":"Some card","network":"MasterCard","type":"debit"},"transactionIdentifier":"..."}}
</transactionToken>
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | Full-Page Redirect | Debit, Refund, Partial Refund |
Parameter | Required | Description |
---|---|---|
extraData.serviceCharge | true | Service charge (txnscamt) - can alternatively be set via connector setting |
extraData.customerAccountNo | true | Customer account number (custacc) 10-16 digits - can alternatively be set via connector setting |
extraData.mdd | true | CC or DC - can alternatively be set via connector setting |
customer.identifier | false | If none is given we will pass our UUID |
customer.firstName | false | Customer first name |
customer.lastName | false | Customer lsat name |
customer.email | false | Customer email |
customer.billingPhone | false | Customer phone |
customer.billingAddress1 | false | Customer billing address |
extraData.udf5 | false | EMI bank name (only for EMI merchants) |
extraData.udf6 | false | EMI tenure (only for EMI merchants) |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form | All |
none
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | Server-To-Server, iFrame Form & payment.js Integration | Debit, Preauthorize, Capture, Refund, Void, Register |
Parameter | Required | Description |
---|---|---|
extraData.installment | false | Numeric count of installments |
The Bank of America Adapter differs in its behavior from an ordinary Adapter. It does not directly communicate with any Bank of America provided Endpoint to process transactions. It is solely responsible for Transaction creation (and validation), to be processed later on with a so called Provider.
Please consult the official Bank of America NACHA File Spec User Guide for indepth information about individual Parameters.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
ACH-Direct-Debit | SFTP Up-/Download | Debit |
Parameter / Name | Required | Default | Allowed Value | Description |
---|---|---|---|---|
standardEntryClass | true | CCD |
- |
The Standard Entry Class (SEC) in which the Transaction should be processed later on. |
batchServiceClassCode | true | 200 |
- |
The Service Class Code that the Batch should receive. "200": Indicates mixed Batch, "220": For Credits only, "225": For Debits only |
batchCompanyEntryDescription | true | PAYROLL |
- |
Required Description displayed to the Receiver. |
batchOriginatingDfiId | true | - |
max. 8 digits |
Provided by Bank of America. |
batchCompanyId | true | - |
max. 10 chars |
Provided by Bank of America. |
batchCompanyDiscretionaryData | false | - |
max. 20 chars |
For your Company's internal use. |
batchIATOriginISOCurrency | conditional | - |
max. 3 chars |
Required if Standard Entry Class "IAT" is selected. Origin ISO Currency Code of containing Transactions. |
batchIATDestinationISOCurrency | conditional | - |
max. 3 chars |
Required if Standard Entry Class "IAT" is selected. Destination ISO Currency Code of containing Transactions. |
batchIATDestinationISOCountryCode | conditional | - |
max. 2 chars |
Required if Standard Entry Class "IAT" is selected. Destination ISO Country Code of containing Transactions. |
Name | Type | Required | Allowed Value | Description |
---|---|---|---|---|
extraData | object | true | object containing key-value pairs (string-to-string) |
|
extraData.accType | string | true | checking or checkings / savings |
Account Type of Payment Origin. |
extraData.accNum | string | true | max. 17 chars |
Account Number of Payment Origin. |
extraData.routingNum | string | true | max. 9 chars |
Routing Number of Payment Origin. |
extraData.originAddress | string | conditional | max. 35 chars |
Required if Standard Entry Class "IAT" is selected. |
extraData.originCity | string | conditional | max. 17 chars |
Required if Standard Entry Class "IAT" is selected. |
extraData.originState | string | conditional | max. 17 chars |
Required if Standard Entry Class "IAT" is selected. |
extraData.originCountry | string | conditional | max. 17 chars |
Required if Standard Entry Class "IAT" is selected. |
extraData.originPostalCode | string | conditional | max. 17 chars |
Required if Standard Entry Class "IAT" is selected. |
extraData.receivingDFIName | string | conditional | max. 35 chars |
Required if Standard Entry Class "IAT" is selected. |
extraData.receivingDFIIdentificationNumberQualifier | string | conditional | max. 2 chars |
Required if Standard Entry Class "IAT" is selected. |
extraData.receivingDFIIdentificationNumber | string | conditional | max. 34 chars |
Required if Standard Entry Class "IAT" is selected. |
extraData.receivingDFIBranchCountryCode | string | conditional | max. 3 chars |
Required if Standard Entry Class "IAT" is selected. |
customer.firstName & customer.lastName to build the fullName | string | conditional | max 35 chars for IAT else concatinated by a space max 22 chars |
Required if Standard Entry Class "PPD|TEL|WEB" is selected. For IAT either those fields or customer.company has to be provided. All chars greater than the allowed max, will be stripped. |
customer.company | string | conditional | max 35 chars for IAT, max 16 char for CTX |
Required if Standard Entry Class "CCD|CTX" is selected. For IAT either this field or (customer.firstName & customer.lastName) have to be provided. All chars greater than the allowed max, will be stripped. |
Error Code | Provider Error Code | Provider Error Message |
---|---|---|
2006 | R01 | Insufficient Funds |
2001 | R02 | Account Closed |
2007 | R03 | No Account/Unable to Locate Account |
2007 | R04 | No Account/Unable to Locate Account |
2003 | R05 | Unauthorized Debit to Consumer Account Using Corporate SEC |
2003 | R06 | Returned Per ODFI's Request' |
2003 | R07 | Authorization Revoked by Customer |
2012 | R08 | Payment Stopped |
2006 | R09 | Uncollected Funds |
2003 | R10 | Customer Advises Originator is Not Known to Receiver and/or Originator is Not Authorized by Receiver to Debit Receiver's Account |
2003 | R11 | Customer Advises Entry Not in Accordance with the Terms of the Authorization |
2012 | R12 | Branch Sold to Another DFI |
2007 | R13 | Invalid ACH Routing Number |
2012 | R14 | Representative Payee Deceased or Unable to Continue in that Capacity |
2012 | R15 | Beneficiary or Account Holder Deceased |
2001 | R16 | Account Frozen |
2012 | R17 | File Record Edit Criteria |
2012 | R18 | Improper Effective Entry Date |
2007 | R20 | Non-Transaction Account |
2007 | R21 | Invalid Company Identification |
2007 | R22 | Invalid Individual ID Number |
2003 | R23 | Credit Entry Refused by Receiver |
3004 | R24 | Duplicate Entry |
2007 | R25 | Addenda Error |
2007 | R26 | Mandatory Field Error |
2007 | R27 | Trace Number Error |
2007 | R28 | Routing Number Check Digit Error |
2003 | R29 | Corporate Customer Advises Not Authorized |
2003 | R31 | Permissible Return Entry (CCD and CTX only) |
2003 | R33 | Return of XCK Entry |
2003 | R34 | Limited Participation DFI |
2003 | R35 | Return of Improper Debit Entry |
2003 | R36 | Return of Improper Credit Entry |
2003 | R37 | Source Document Presented for Payment |
2003 | R38 | Stop Payment on Source Document |
2007 | R39 | Improper Source Document |
2003 | R50 | State Law Affecting RCK Acceptance |
2007 | R51 | Item Ineligible, Notice Not Provided, Signature Not Genuine, or Amount of Entry Not Accurately Obtained from Item |
2003 | R52 | Stop Payment on RCK Item (adjustment entries) |
2003 | R53 | Item and ACH Entry Presented for Payment |
2007 | C01 | Incorrect DFI Account Number |
2007 | C02 | Incorrect Routing Number |
2007 | C03 | Incorrect Routing Number & Incorrect DFI Account Number |
2007 | C04 | Incorrect Individual Name/Receiving Company Name |
2007 | C05 | Incorrect Transaction Code |
2007 | C06 | Incorrect DFI Account Number and Incorrect Transaction Code |
2007 | C07 | Incorrect Routing Number, Incorrect DFI Account Number and Incorrect Transaction Code |
2007 | C09 | Incorrect Individual Identification Number |
2007 | C13 | Addenda Format Error |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
GCASH | Full-Page Redirect | Debit, Refund |
Extra data | Type | Required | Description |
---|---|---|---|
description | string | true | The order description |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
eQr | Redirect to Qr Code page | Debit, Refund |
Key | Value | Transaction Type | Description | |
---|---|---|---|---|
extraData.store |
string | Debit | Name of the store | |
Description |
string | O | Debit | |
Items | item object (Item Name, Item Description, Item Quantity, Item Price) | O | Debit ( it's mandatory to add at least one Item to the payload) | |
Item Name | one of [sku ,tax ,shipping , discount ] |
O | Debit |
Key | Value | Required | Transaction Type | Description |
---|---|---|---|---|
extraData.location |
string | false | Debit | Location of the store |
extraData.type |
reversal |
false | Refund | Adding this within 24 hours of the payment will send an Abort payment request instead of the Refund request |
Item.Item Identifier | string | for sku items |
Debit | The item Identifier |
Item.ExtraData.uri |
string | for sku items |
Debit | The URI to the item |
Item.ExtraData.disc_amount |
string | for sku items |
Debit | Discount amount, must begin with numeric value |
Item.ExtraData.disc_description |
string | for sku items |
Debit | discount description |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
DirectDebit | Server-To-Server | Register, Debit, Refund |
Invoice | Server-To-Server | Register, Debit, Refund |
Note: any Debit transaction automatically creates the authorization & the invoice on BillPay side.
Extra Data | Required | Description |
---|---|---|
Description | false | Description that should be shown on the bank statement |
extraData.expectedDaysTillShipping |
true | integer in days |
extraData.shippingMethod |
true | any string |
extraData.itemIdentification |
For Register | any string, used as articleId |
extraData.itemName |
For Register | any string, used as articleName |
customer.identification |
true | |
customer.firstName |
true | |
customer.lastName |
true | |
customer.email |
true | |
customer.billingAddress |
true | all address details |
customer.birthDate |
true | e.g. 1980-01-01 |
customer.iban |
true | for DirectDebit |
customer.ipAddress |
true | |
customer.extraData.salutation |
true | Mr., Mrs., Hr., Fr., etc. |
customer.extraData.type |
true | guest , existing or new |
items |
true | at least one item |
extraData.paymentType |
false | one of invoice , directDebit - overrules configuration |
extraData.shippingPriceNet |
false | decimal |
extraData.shippingPriceGross |
false | decimal |
extraData.rebateNet |
false | decimal |
extraData.rebateGross |
false | decimal |
extraData.orderAmountNet |
false | decimal |
extraData.shippingTrackingNumber |
false | string |
customer.extraData.title |
false | string |
customer.extraData.copmanyLegalForm |
false | string |
customer.extraData.companyHolderName |
false | string |
customer.extraData.companyTaxNumber |
false | string |
item.extraData.category |
false | string |
item.extraData.subcategory1 |
false | string |
item.extraData.subcategory2 |
false | string |
item.extraData.priceNet |
false | string |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
BitCoin | Full-Page Redirect | Debit only |
Field | Required |
---|---|
description | false |
firstName | false |
lastName | false |
false | |
billingPhone | false |
billingAddress1 | false |
billingCity | false |
billingState | false |
A payment platform that gives you access to PayPal, Venmo (in the US), credit and debit cards plus the most relevant wallets and local payment methods in a single integration.
The table below lists the payment methods that Braintree CreditCard supports. It also includes the available processing options and the supported transaction types for each of those payment methods.
Payment Method | Processing options | Transaction types |
---|---|---|
Creditcard (Creditcard ) |
Hosted fields — payment.js | Debit Preauthorize Incremental authorization Capture Void Refund Payout Register Deregister |
Parameter / Name | Type | Required | Description |
---|---|---|---|
publicKey | string | true | The Braintree Public Key - to be found in the Braintree Merchant Portal |
privateKey | string | true | The Braintree Private Key - to be found in the Braintree Merchant Portal |
merchantId | string | false | The Braintree Merchant Id - to be found in the Braintree Merchant Portal |
ignoreDisputes | bool | false | Determine if incoming Disputes (part of Callback) should be handled at all. |
sendDescriptionInCustomField | string | false | Required if you want to add a description to your Transaction (checkout Further Config Parameter Description down below). |
sendMerchantTransactionIdInCustomField | string | false | Required if you want to pass a Merchant-Transaction-Id to your Transaction (checkout Further Config Parameter Description down below). |
useBtDescriptor | bool | false | to map additionalId1 to Braintree's descriptor.name |
useAvs | bool | false | to use Braintree's Address Verification Service |
To be able to use sendDescriptionInCustomField
or sendMerchantTransactionIdInCustomField
,
you will have to set up "Custom Fields" in the Braintree Merchant Portal
(please check out the official Braintree Documentation at Custom Fields).
Add a new Custom Field and pass the Api Name
of the field in the connector configuration
(e.g merchant_tx_id
for sendMerchantTransactionIdInCustomField
).
When useAvs
is active,
a request to Braintree's verifyCreditCard
Service will be performed
before charging the payment.
The result of the verify call will be returned in the extraData.avs_result
field.
This will not affect the payment processing.
In addition to activating that setting, you need to correctly set up the AVS options at Fraud Management in the Braintree Merchant Portal.
This segment provides a comprehensive guide to effectively integrate Braintree CreditCard into your payment procedure. It offers a detailed mapping between the fields of the gateway and corresponding fields on the Braintree CreditCard side. Furthermore, it outlines the requisite fields which must be delivered per specific payment method and transaction type.
Gateway parameter | Braintree CreditCard parameter | Type | Description | Transaction types |
---|---|---|---|---|
transactionIndicator |
input.transaction.payment.initiator , input.options.externalVault.status |
required string |
Mandatory for card on file, card on file merchant initiated, recurring (see Recurring Transactions) | |
additionalId1 |
input.transaction.descriptor.name |
optional string |
Effective only if the connector configuration setting useBtDescriptor is enabled. |
only: Debit, Preauthorize |
extraData.purchaseOrderNumber |
input.transaction.purchaseOrderNumber |
optional string |
only: Debit, Preauthorize, Capture | |
extraData.shipsFromPostalCode |
input.transaction.shipping.shipsFromPostalCode |
required string Only to get reduced interchange fees. |
only: Debit, Preauthorize, Capture | |
extraData.taxExempt |
input.transaction.tax.taxExempt |
optional boolean |
If not set: false |
only: Debit, Preauthorize, Capture |
l2L3Data.discountAmount |
input.transaction.discountAmount |
required string Only to get reduced interchange fees. |
If not set: 0.00 |
only: Debit, Preauthorize, Capture |
l2L3Data.taxAmount |
input.transaction.tax.taxAmount |
required string Only to get reduced interchange fees. |
If not set: 0.00 |
only: Debit, Preauthorize, Capture |
l2L3Data.freightAmount |
input.transaction.shipping.shippingAmount |
required string Only to get reduced interchange fees. |
If not set: 0.00 |
only: Debit, Preauthorize, Capture |
items[] |
input.transaction.lineItems[] |
required string Only to get reduced interchange fees. |
At least one item is required for Level 2/Level 3 discounts. The following are the required fields for each transaction type. | only: Debit, Preauthorize, Capture, Refund |
items[].name |
input.transaction.lineItems[].name |
required string Only to get reduced interchange fees. |
only: Debit, Preauthorize, Capture, Refund | |
items[].quantity |
input.transaction.lineItems[].quantity |
required string Only to get reduced interchange fees. |
only: Debit, Preauthorize, Capture, Refund | |
items[].price |
input.transaction.lineItems[].totalAmount |
required string Only to get reduced interchange fees. |
only: Debit, Preauthorize, Capture, Refund | |
items[].identification |
input.transaction.lineItems[].productCode |
required string Only to get reduced interchange fees. |
only: Debit, Preauthorize, Capture, Refund | |
items[].description |
input.transaction.lineItems[].description |
required string Only to get reduced interchange fees. |
only: Debit, Preauthorize, Capture, Refund | |
items[].l2l3Data.unit |
input.transaction.lineItems[].unitOfMeasure |
required string Only to get reduced interchange fees. |
only: Debit, Preauthorize, Capture, Refund | |
items[].l2l3Data.unitPrice |
input.transaction.lineItems[].unitAmount |
required string Only to get reduced interchange fees. |
only: Debit, Preauthorize, Capture, Refund | |
items[].extraData.unitTaxAmount |
input.transaction.lineItems[].unitTaxAmount |
required string Only to get reduced interchange fees. |
If not set: 0.00 |
only: Debit, Preauthorize, Capture, Refund |
items[].l2l3Data.taxAmount |
input.transaction.lineItems[].taxAmount |
required string Only to get reduced interchange fees. |
If not set: 0.00 |
only: Debit, Preauthorize, Capture, Refund |
items[].l2l3Data.discount |
input.transaction.lineItems[].discountAmount |
required string Only to get reduced interchange fees. |
If not set: 0.00 |
only: Debit, Preauthorize, Capture, Refund |
items[].l2l3Data.commodityCode |
input.transaction.lineItems[].commodityCode |
required string Only to get reduced interchange fees. |
only: Debit, Preauthorize, Capture, Refund | |
items[].extraData.url |
input.transaction.lineItems[].url |
required string Only to get reduced interchange fees. |
only: Debit, Preauthorize, Capture, Refund | |
items[].l2l3Data.type |
input.transaction.lineItems[].itemType |
optional string |
only: Debit, Preauthorize, Capture, Refund | |
items[].extraData.imageUrl |
input.transaction.lineItems[].imageUrl |
optional string |
only: Debit, Preauthorize, Capture, Refund | |
customer.shippingFirstName |
input.transaction.shipping.shippingAddress.firstName |
required string Only to get reduced interchange fees. |
Customer shipping address is required for Level 2/Level 3 discounts. The following are the required fields for each transaction type. | only: Debit, Preauthorize |
customer.shippingLastName |
input.transaction.shipping.shippingAddress.lastName |
required string Only to get reduced interchange fees. |
only: Debit, Preauthorize | |
customer.shippingAddress1 |
input.transaction.shipping.shippingAddress.addressLine1 |
required string Only to get reduced interchange fees. |
only: Debit, Preauthorize | |
customer.shippingAddress2 |
input.transaction.shipping.shippingAddress.addressLine2 |
optional string |
only: Debit, Preauthorize | |
customer.shippingCity |
input.transaction.shipping.shippingAddress.locality |
required string Only to get reduced interchange fees. |
only: Debit, Preauthorize | |
customer.shippingPostcode |
input.transaction.shipping.shippingAddress.postalCode |
required string Only to get reduced interchange fees. |
only: Debit, Preauthorize | |
customer.shippingState |
input.transaction.shipping.shippingAddress.adminArea1 |
required string Only to get reduced interchange fees. |
only: Debit, Preauthorize | |
customer.shippingCountry |
input.transaction.shipping.shippingAddress.countryCode |
required string Only to get reduced interchange fees. |
only: Debit, Preauthorize |
Gateway parameter | Braintree CreditCard parameter | Type | Description | Transaction types |
---|---|---|---|---|
extraData.avs_result |
data.verifyCreditCard.verification.processorResponse.avsPostalCodeResponse |
required string |
AVS postal code |
Gateway transaction indicator | Braintree CreditCard transaction indicator |
---|---|
MOTO |
MOTO |
RECURRING |
RECURRING |
INITIAL |
RECURRING_FIRST |
CARDONFILE_MERCHANT |
UNSCHEDULED |
CARDONFILE |
UNSCHEDULED |
Gateway error code | Braintree CreditCard error code | Braintree CreditCard error message |
---|---|---|
2011 |
2000 |
Do Not Honor |
2011 |
2024 |
Do Not Honor |
2006 |
2001 |
Insufficient Funds |
2004 |
2002 |
Limit Exceeded |
2004 |
2003 |
Limit Exceeded |
2009 |
2004 |
Card Expired |
2008 |
2005 |
Invalid Card Number |
2008 |
2007 |
Invalid Card Number |
2008 |
2008 |
Invalid Card Number |
2008 |
2009 |
Invalid Card Number |
2007 |
2006 |
Invalid Expiration Date |
1002 |
2010 |
Invalid Card CVV |
1007 |
2011 |
Authorization Required |
2003 |
2012 |
Declined |
2003 |
2013 |
Declined |
2003 |
2014 |
Declined |
2003 |
2015 |
Declined |
2003 |
2017 |
Declined |
2003 |
2018 |
Declined |
2003 |
2019 |
Declined |
2003 |
2020 |
Declined |
2003 |
2021 |
Declined |
2003 |
2022 |
Declined |
2003 |
2023 |
Declined |
2003 |
2041 |
Declined |
2003 |
2044 |
Declined |
2003 |
2046 |
Declined |
2003 |
2047 |
Declined |
2003 |
2057 |
Declined |
2003 |
2066 |
Declined |
2003 |
2068 |
Declined |
2003 |
2069 |
Declined |
2003 |
2070 |
Declined |
2003 |
2071 |
Declined |
2003 |
2072 |
Declined |
2003 |
2073 |
Declined |
2003 |
2074 |
Declined |
2003 |
2075 |
Declined |
2003 |
2076 |
Declined |
2003 |
2077 |
Declined |
2003 |
2078 |
Declined |
2003 |
2079 |
Declined |
2003 |
2080 |
Declined |
2003 |
2081 |
Declined |
2003 |
2082 |
Declined |
2003 |
2083 |
Declined |
2003 |
2084 |
Declined |
2003 |
2085 |
Declined |
2003 |
2086 |
Declined |
2003 |
2087 |
Declined |
2003 |
2088 |
Declined |
2003 |
2089 |
Declined |
2003 |
2090 |
Declined |
2003 |
2091 |
Declined |
2003 |
2092 |
Declined |
2003 |
2093 |
Declined |
2003 |
2094 |
Declined |
2003 |
2095 |
Declined |
2003 |
2096 |
Declined |
2003 |
2097 |
Declined |
2003 |
2098 |
Declined |
2003 |
2099 |
Declined |
2003 |
2100 |
Declined |
2003 |
2101 |
Declined |
2003 |
2102 |
Declined |
2003 |
2103 |
Declined |
2003 |
2104 |
Declined |
3004 |
2016 |
Duplicate Transaction |
1007 |
2025 |
Configuration Error |
1007 |
2026 |
Configuration Error |
1007 |
2027 |
Configuration Error |
1007 |
2028 |
Configuration Error |
1007 |
2029 |
Configuration Error |
1007 |
2030 |
Configuration Error |
1007 |
2058 |
Configuration Error |
1002 |
2031 |
Invalid Data |
1002 |
2032 |
Invalid Data |
1002 |
2033 |
Invalid Data |
1002 |
2034 |
Invalid Data |
1002 |
2035 |
Invalid Data |
1002 |
2036 |
Invalid Data |
1002 |
2037 |
Invalid Data |
1002 |
2038 |
Invalid Data |
1002 |
2039 |
Invalid Data |
1002 |
2040 |
Invalid Data |
1002 |
2042 |
Invalid Data |
1002 |
2045 |
Invalid Data |
1002 |
2048 |
Invalid Data |
1002 |
2049 |
Invalid Data |
1002 |
2050 |
Invalid Data |
1002 |
2051 |
Invalid Data |
1002 |
2052 |
Invalid Data |
1002 |
2054 |
Invalid Data |
1002 |
2055 |
Invalid Data |
1002 |
2056 |
Invalid Data |
1002 |
2059 |
Invalid Data |
1002 |
2060 |
Invalid Data |
1002 |
2061 |
Invalid Data |
1002 |
2062 |
Invalid Data |
1002 |
2063 |
Invalid Data |
1002 |
2064 |
Invalid Data |
2016 |
2043 |
Stolen Card |
2016 |
2053 |
Stolen Card |
2009 |
2065 |
Expired |
2009 |
2067 |
Expired |
1002 |
83905 |
Data Validation Error |
1002 |
81801 |
Data Validation Error |
1002 |
81802 |
Data Validation Error |
1002 |
81804 |
Data Validation Error |
1002 |
81805 |
Data Validation Error |
1002 |
81806 |
Data Validation Error |
1002 |
81807 |
Data Validation Error |
1002 |
81813 |
Data Validation Error |
1002 |
81808 |
Data Validation Error |
1002 |
81809 |
Data Validation Error |
1002 |
81810 |
Data Validation Error |
1002 |
81811 |
Data Validation Error |
1002 |
81812 |
Data Validation Error |
1002 |
81827 |
Data Validation Error |
1002 |
81828 |
Data Validation Error |
1002 |
91803 |
Data Validation Error |
1002 |
91815 |
Data Validation Error |
1002 |
91816 |
Data Validation Error |
1002 |
91817 |
Data Validation Error |
1002 |
91814 |
Data Validation Error |
1002 |
91818 |
Data Validation Error |
1002 |
91819 |
Data Validation Error |
1002 |
91820 |
Data Validation Error |
1002 |
91821 |
Data Validation Error |
1002 |
91822 |
Data Validation Error |
1002 |
91823 |
Data Validation Error |
1002 |
91824 |
Data Validation Error |
1002 |
91825 |
Data Validation Error |
1002 |
91826 |
Data Validation Error |
1002 |
91828 |
Data Validation Error |
1002 |
918996 |
Data Validation Error |
1002 |
918997 |
Data Validation Error |
1002 |
918998 |
Data Validation Error |
1002 |
918999 |
Data Validation Error |
1002 |
82602 |
Data Validation Error |
1002 |
82603 |
Data Validation Error |
1002 |
82604 |
Data Validation Error |
1002 |
82605 |
Data Validation Error |
1002 |
82606 |
Data Validation Error |
1002 |
82607 |
Data Validation Error |
1002 |
82608 |
Data Validation Error |
1002 |
82610 |
Data Validation Error |
1002 |
82675 |
Data Validation Error |
1002 |
82676 |
Data Validation Error |
1002 |
82674 |
Data Validation Error |
1002 |
82609 |
Data Validation Error |
1002 |
82637 |
Data Validation Error |
1002 |
82611 |
Data Validation Error |
1002 |
82638 |
Data Validation Error |
1002 |
82612 |
Data Validation Error |
1002 |
82639 |
Data Validation Error |
1002 |
82613 |
Data Validation Error |
1002 |
82640 |
Data Validation Error |
1002 |
82614 |
Data Validation Error |
1002 |
82641 |
Data Validation Error |
1002 |
82615 |
Data Validation Error |
1002 |
82642 |
Data Validation Error |
1002 |
82616 |
Data Validation Error |
1002 |
82643 |
Data Validation Error |
1002 |
82627 |
Data Validation Error |
1002 |
82644 |
Data Validation Error |
1002 |
82628 |
Data Validation Error |
1002 |
82645 |
Data Validation Error |
1002 |
82631 |
Data Validation Error |
1002 |
82632 |
Data Validation Error |
1002 |
82688 |
Data Validation Error |
1002 |
82647 |
Data Validation Error |
1002 |
82633 |
Data Validation Error |
1002 |
82634 |
Data Validation Error |
1002 |
82635 |
Data Validation Error |
1002 |
82649 |
Data Validation Error |
1002 |
82650 |
Data Validation Error |
1002 |
82621 |
Data Validation Error |
1002 |
82622 |
Data Validation Error |
1002 |
82623 |
Data Validation Error |
1002 |
82624 |
Data Validation Error |
1002 |
82625 |
Data Validation Error |
1002 |
82626 |
Data Validation Error |
1002 |
82617 |
Data Validation Error |
1002 |
82657 |
Data Validation Error |
1002 |
82618 |
Data Validation Error |
1002 |
82658 |
Data Validation Error |
1002 |
82619 |
Data Validation Error |
1002 |
82659 |
Data Validation Error |
1002 |
82620 |
Data Validation Error |
1002 |
82660 |
Data Validation Error |
1002 |
82629 |
Data Validation Error |
1002 |
82661 |
Data Validation Error |
1002 |
82664 |
Data Validation Error |
1002 |
82668 |
Data Validation Error |
1002 |
82630 |
Data Validation Error |
1002 |
82662 |
Data Validation Error |
1002 |
82636 |
Data Validation Error |
1002 |
82656 |
Data Validation Error |
1002 |
82663 |
Data Validation Error |
1002 |
82666 |
Data Validation Error |
1002 |
82670 |
Data Validation Error |
1002 |
82671 |
Data Validation Error |
1002 |
82665 |
Data Validation Error |
1002 |
82667 |
Data Validation Error |
1002 |
82672 |
Data Validation Error |
1002 |
82673 |
Data Validation Error |
1002 |
82646 |
Data Validation Error |
1002 |
82677 |
Data Validation Error |
1002 |
82669 |
Data Validation Error |
1002 |
82648 |
Data Validation Error |
1002 |
82685 |
Data Validation Error |
1002 |
82686 |
Data Validation Error |
1002 |
82684 |
Data Validation Error |
1002 |
82679 |
Data Validation Error |
1002 |
82678 |
Data Validation Error |
1002 |
82681 |
Data Validation Error |
1002 |
82680 |
Data Validation Error |
1002 |
82683 |
Data Validation Error |
1002 |
82682 |
Data Validation Error |
1002 |
82687 |
Data Validation Error |
1002 |
82689 |
Data Validation Error |
1002 |
82690 |
Data Validation Error |
1002 |
82691 |
Data Validation Error |
1002 |
82692 |
Data Validation Error |
1002 |
926996 |
Data Validation Error |
1002 |
926997 |
Data Validation Error |
1002 |
926998 |
Data Validation Error |
1002 |
926999 |
Data Validation Error |
1002 |
91602 |
Data Validation Error |
1002 |
91609 |
Data Validation Error |
1002 |
91610 |
Data Validation Error |
1002 |
91611 |
Data Validation Error |
1002 |
91612 |
Data Validation Error |
1002 |
91613 |
Data Validation Error |
1002 |
91617 |
Data Validation Error |
1002 |
91618 |
Data Validation Error |
1002 |
91619 |
Data Validation Error |
1002 |
91620 |
Data Validation Error |
1002 |
91621 |
Data Validation Error |
1002 |
91622 |
Data Validation Error |
1002 |
91623 |
Data Validation Error |
1002 |
81601 |
Data Validation Error |
1002 |
81603 |
Data Validation Error |
1002 |
81604 |
Data Validation Error |
1002 |
81605 |
Data Validation Error |
1002 |
81606 |
Data Validation Error |
1002 |
81607 |
Data Validation Error |
1002 |
81608 |
Data Validation Error |
1002 |
81613 |
Data Validation Error |
1002 |
81614 |
Data Validation Error |
1002 |
81615 |
Data Validation Error |
1002 |
81616 |
Data Validation Error |
1002 |
916996 |
Data Validation Error |
1002 |
916997 |
Data Validation Error |
1002 |
916998 |
Data Validation Error |
1002 |
916999 |
Data Validation Error |
1002 |
93101 |
Data Validation Error |
1002 |
93102 |
Data Validation Error |
1002 |
93103 |
Data Validation Error |
1002 |
93104 |
Data Validation Error |
1002 |
93105 |
Data Validation Error |
1002 |
93106 |
Data Validation Error |
1002 |
93107 |
Data Validation Error |
1002 |
93108 |
Data Validation Error |
1002 |
93109 |
Data Validation Error |
1002 |
93113 |
Data Validation Error |
1002 |
93114 |
Data Validation Error |
1002 |
93115 |
Data Validation Error |
1002 |
93116 |
Data Validation Error |
1002 |
93117 |
Data Validation Error |
1002 |
93118 |
Data Validation Error |
1002 |
93119 |
Data Validation Error |
1002 |
93120 |
Data Validation Error |
1002 |
93121 |
Data Validation Error |
1002 |
93122 |
Data Validation Error |
1002 |
93125 |
Data Validation Error |
1002 |
931996 |
Data Validation Error |
1002 |
931997 |
Data Validation Error |
1002 |
931998 |
Data Validation Error |
1002 |
931999 |
Data Validation Error |
1002 |
83501 |
Data Validation Error |
1002 |
83502 |
Data Validation Error |
1002 |
93503 |
Data Validation Error |
1002 |
93504 |
Data Validation Error |
1002 |
93505 |
Data Validation Error |
1002 |
93506 |
Data Validation Error |
1002 |
83518 |
Data Validation Error |
1002 |
93507 |
Data Validation Error |
1002 |
93508 |
Data Validation Error |
1002 |
93509 |
Data Validation Error |
1002 |
93510 |
Data Validation Error |
1002 |
93511 |
Data Validation Error |
1002 |
83512 |
Data Validation Error |
1002 |
93513 |
Data Validation Error |
1002 |
93514 |
Data Validation Error |
1002 |
93517 |
Data Validation Error |
1002 |
93519 |
Data Validation Error |
1002 |
83520 |
Data Validation Error |
1002 |
93521 |
Data Validation Error |
1002 |
93522 |
Data Validation Error |
1002 |
93523 |
Data Validation Error |
1002 |
93524 |
Data Validation Error |
1002 |
93525 |
Data Validation Error |
1002 |
93526 |
Data Validation Error |
1002 |
83527 |
Data Validation Error |
1002 |
935996 |
Data Validation Error |
1002 |
935997 |
Data Validation Error |
1002 |
935998 |
Data Validation Error |
1002 |
935999 |
Data Validation Error |
1002 |
91701 |
Data Validation Error |
1002 |
91702 |
Data Validation Error |
1002 |
91704 |
Data Validation Error |
1002 |
91705 |
Data Validation Error |
1002 |
91708 |
Data Validation Error |
1002 |
91718 |
Data Validation Error |
1002 |
91719 |
Data Validation Error |
1002 |
91720 |
Data Validation Error |
1002 |
91721 |
Data Validation Error |
1002 |
91722 |
Data Validation Error |
1002 |
91744 |
Data Validation Error |
1002 |
81723 |
Data Validation Error |
1002 |
81703 |
Data Validation Error |
1002 |
81718 |
Data Validation Error |
1002 |
81706 |
Data Validation Error |
1002 |
81707 |
Data Validation Error |
1002 |
81709 |
Data Validation Error |
1002 |
81710 |
Data Validation Error |
1002 |
81711 |
Data Validation Error |
1002 |
81712 |
Data Validation Error |
1002 |
81713 |
Data Validation Error |
1002 |
81714 |
Data Validation Error |
1002 |
81715 |
Data Validation Error |
1002 |
81716 |
Data Validation Error |
1002 |
81717 |
Data Validation Error |
1002 |
91723 |
Data Validation Error |
1002 |
81724 |
Data Validation Error |
1002 |
81725 |
Data Validation Error |
1002 |
91726 |
Data Validation Error |
1002 |
91727 |
Data Validation Error |
1002 |
91728 |
Data Validation Error |
1002 |
91729 |
Data Validation Error |
1002 |
91730 |
Data Validation Error |
1002 |
91731 |
Data Validation Error |
1002 |
91732 |
Data Validation Error |
1002 |
91733 |
Data Validation Error |
1002 |
91734 |
Data Validation Error |
1002 |
91735 |
Data Validation Error |
1002 |
91738 |
Data Validation Error |
1002 |
91742 |
Data Validation Error |
1002 |
91743 |
Data Validation Error |
1002 |
81736 |
Data Validation Error |
1002 |
81737 |
Data Validation Error |
1002 |
91739 |
Data Validation Error |
1002 |
91740 |
Data Validation Error |
1002 |
91741 |
Data Validation Error |
1002 |
91745 |
Data Validation Error |
1002 |
81750 |
Data Validation Error |
1002 |
91752 |
Data Validation Error |
1002 |
91755 |
Data Validation Error |
1002 |
91756 |
Data Validation Error |
1002 |
91759 |
Data Validation Error |
1002 |
91761 |
Data Validation Error |
1002 |
917996 |
Data Validation Error |
1002 |
917997 |
Data Validation Error |
1002 |
917998 |
Data Validation Error |
1002 |
917999 |
Data Validation Error |
1002 |
82901 |
Data Validation Error |
1002 |
82902 |
Data Validation Error |
1002 |
82903 |
Data Validation Error |
1002 |
82904 |
Data Validation Error |
1002 |
82905 |
Data Validation Error |
1002 |
92906 |
Data Validation Error |
1002 |
92907 |
Data Validation Error |
1002 |
92908 |
Data Validation Error |
1002 |
92909 |
Data Validation Error |
1002 |
92910 |
Data Validation Error |
1002 |
92911 |
Data Validation Error |
1002 |
92912 |
Data Validation Error |
1002 |
92913 |
Data Validation Error |
1002 |
92914 |
Data Validation Error |
1002 |
92915 |
Data Validation Error |
1002 |
92916 |
Data Validation Error |
1002 |
92917 |
Data Validation Error |
1002 |
92918 |
Data Validation Error |
1002 |
92919 |
Data Validation Error |
1002 |
92920 |
Data Validation Error |
1002 |
92921 |
Data Validation Error |
1002 |
92922 |
Data Validation Error |
1002 |
92923 |
Data Validation Error |
1002 |
92924 |
Data Validation Error |
1002 |
92925 |
Data Validation Error |
1002 |
92926 |
Data Validation Error |
1002 |
92927 |
Data Validation Error |
1002 |
92928 |
Data Validation Error |
1002 |
92929 |
Data Validation Error |
1002 |
92930 |
Data Validation Error |
1002 |
929996 |
Data Validation Error |
1002 |
929997 |
Data Validation Error |
1002 |
929998 |
Data Validation Error |
1002 |
929999 |
Data Validation Error |
1002 |
84101 |
Data Validation Error |
1002 |
84102 |
Data Validation Error |
1002 |
84103 |
Data Validation Error |
1002 |
84104 |
Data Validation Error |
1002 |
84105 |
Data Validation Error |
1002 |
84106 |
Data Validation Error |
1002 |
941996 |
Data Validation Error |
1002 |
941997 |
Data Validation Error |
1002 |
941998 |
Data Validation Error |
1002 |
941999 |
Data Validation Error |
1002 |
92001 |
Data Validation Error |
1002 |
92002 |
Data Validation Error |
1002 |
92003 |
Data Validation Error |
1002 |
92004 |
Data Validation Error |
1002 |
92005 |
Data Validation Error |
1002 |
92006 |
Data Validation Error |
1002 |
92010 |
Data Validation Error |
1002 |
92011 |
Data Validation Error |
1002 |
92012 |
Data Validation Error |
1002 |
92013 |
Data Validation Error |
1002 |
92014 |
Data Validation Error |
1002 |
92015 |
Data Validation Error |
1002 |
92016 |
Data Validation Error |
1002 |
92017 |
Data Validation Error |
1002 |
92018 |
Data Validation Error |
1002 |
92019 |
Data Validation Error |
1002 |
92020 |
Data Validation Error |
1002 |
92021 |
Data Validation Error |
1002 |
92022 |
Data Validation Error |
1002 |
92023 |
Data Validation Error |
1002 |
92024 |
Data Validation Error |
1002 |
92025 |
Data Validation Error |
1002 |
920996 |
Data Validation Error |
1002 |
920997 |
Data Validation Error |
1002 |
920998 |
Data Validation Error |
1002 |
920999 |
Data Validation Error |
1002 |
82301 |
Data Validation Error |
1002 |
82302 |
Data Validation Error |
1002 |
82303 |
Data Validation Error |
1002 |
923996 |
Data Validation Error |
1002 |
923997 |
Data Validation Error |
1002 |
923998 |
Data Validation Error |
1002 |
923999 |
Data Validation Error |
1002 |
81501 |
Data Validation Error |
1002 |
81502 |
Data Validation Error |
1002 |
81503 |
Data Validation Error |
1002 |
81528 |
Data Validation Error |
1002 |
81509 |
Data Validation Error |
1002 |
91517 |
Data Validation Error |
1002 |
81527 |
Data Validation Error |
1002 |
91501 |
Data Validation Error |
1002 |
91504 |
Data Validation Error |
1002 |
91505 |
Data Validation Error |
1002 |
91506 |
Data Validation Error |
1002 |
91507 |
Data Validation Error |
1002 |
91508 |
Data Validation Error |
1002 |
91526 |
Data Validation Error |
1002 |
91510 |
Data Validation Error |
1002 |
91511 |
Data Validation Error |
1002 |
91512 |
Data Validation Error |
1002 |
91513 |
Data Validation Error |
1002 |
91514 |
Data Validation Error |
1002 |
91515 |
Data Validation Error |
1002 |
91516 |
Data Validation Error |
1002 |
91527 |
Data Validation Error |
1002 |
91518 |
Data Validation Error |
1002 |
91519 |
Data Validation Error |
1002 |
91521 |
Data Validation Error |
1002 |
91533 |
Data Validation Error |
1002 |
91538 |
Data Validation Error |
1002 |
91522 |
Data Validation Error |
1002 |
91529 |
Data Validation Error |
1002 |
91528 |
Data Validation Error |
1002 |
91523 |
Data Validation Error |
1002 |
91524 |
Data Validation Error |
1002 |
91525 |
Data Validation Error |
1002 |
91531 |
Data Validation Error |
1002 |
91547 |
Data Validation Error |
1002 |
81531 |
Data Validation Error |
1002 |
81534 |
Data Validation Error |
1002 |
81535 |
Data Validation Error |
1002 |
81536 |
Data Validation Error |
1002 |
81571 |
Data Validation Error |
1002 |
91537 |
Data Validation Error |
1002 |
91539 |
Data Validation Error |
1002 |
91540 |
Data Validation Error |
1002 |
91541 |
Data Validation Error |
1002 |
91542 |
Data Validation Error |
1002 |
91543 |
Data Validation Error |
1002 |
91544 |
Data Validation Error |
1002 |
91545 |
Data Validation Error |
1002 |
91546 |
Data Validation Error |
1002 |
91548 |
Data Validation Error |
1002 |
81520 |
Data Validation Error |
1002 |
91549 |
Data Validation Error |
1002 |
91550 |
Data Validation Error |
1002 |
91551 |
Data Validation Error |
1002 |
91552 |
Data Validation Error |
1002 |
91553 |
Data Validation Error |
1002 |
91554 |
Data Validation Error |
1002 |
91555 |
Data Validation Error |
1002 |
91556 |
Data Validation Error |
1002 |
91557 |
Data Validation Error |
1002 |
91558 |
Data Validation Error |
1002 |
91559 |
Data Validation Error |
1002 |
91560 |
Data Validation Error |
1002 |
91561 |
Data Validation Error |
1002 |
91562 |
Data Validation Error |
1002 |
91563 |
Data Validation Error |
1002 |
91564 |
Data Validation Error |
1002 |
91565 |
Data Validation Error |
1002 |
91567 |
Data Validation Error |
1002 |
91568 |
Data Validation Error |
1002 |
91569 |
Data Validation Error |
1002 |
91572 |
Data Validation Error |
1002 |
91575 |
Data Validation Error |
1002 |
91576 |
Data Validation Error |
1002 |
91577 |
Data Validation Error |
1002 |
91570 |
Data Validation Error |
1002 |
91573 |
Data Validation Error |
1002 |
91574 |
Data Validation Error |
1002 |
91578 |
Data Validation Error |
1002 |
91580 |
Data Validation Error |
1002 |
91581 |
Data Validation Error |
1002 |
91582 |
Data Validation Error |
1002 |
91583 |
Data Validation Error |
1002 |
91584 |
Data Validation Error |
1002 |
91585 |
Data Validation Error |
1002 |
91586 |
Data Validation Error |
1002 |
91587 |
Data Validation Error |
1002 |
91588 |
Data Validation Error |
1002 |
91589 |
Data Validation Error |
1002 |
91590 |
Data Validation Error |
1002 |
91591 |
Data Validation Error |
1002 |
91592 |
Data Validation Error |
1002 |
91593 |
Data Validation Error |
1002 |
91594 |
Data Validation Error |
1002 |
91595 |
Data Validation Error |
1002 |
91597 |
Data Validation Error |
1002 |
91598 |
Data Validation Error |
1002 |
91599 |
Data Validation Error |
1002 |
91596 |
Data Validation Error |
1002 |
915100 |
Data Validation Error |
1002 |
915103 |
Data Validation Error |
1002 |
915101 |
Data Validation Error |
1002 |
915102 |
Data Validation Error |
1002 |
915104 |
Data Validation Error |
1002 |
915105 |
Data Validation Error |
1002 |
915106 |
Data Validation Error |
1002 |
915152 |
Data Validation Error |
1002 |
915153 |
Data Validation Error |
1002 |
915154 |
Data Validation Error |
1002 |
915155 |
Data Validation Error |
1002 |
915107 |
Data Validation Error |
1002 |
915108 |
Data Validation Error |
1002 |
915109 |
Data Validation Error |
1002 |
915110 |
Data Validation Error |
1002 |
915111 |
Data Validation Error |
1002 |
915112 |
Data Validation Error |
1002 |
915113 |
Data Validation Error |
1002 |
915114 |
Data Validation Error |
1002 |
915116 |
Data Validation Error |
1002 |
915119 |
Data Validation Error |
1002 |
915131 |
Data Validation Error |
1002 |
915156 |
Data Validation Error |
1002 |
915133 |
Data Validation Error |
1002 |
915134 |
Data Validation Error |
1002 |
915135 |
Data Validation Error |
1002 |
915136 |
Data Validation Error |
1002 |
915137 |
Data Validation Error |
1002 |
815141 |
Data Validation Error |
1002 |
815142 |
Data Validation Error |
1002 |
915143 |
Data Validation Error |
1002 |
915144 |
Data Validation Error |
1002 |
915157 |
Data Validation Error |
1002 |
915158 |
Data Validation Error |
1002 |
915145 |
Data Validation Error |
1002 |
915159 |
Data Validation Error |
1002 |
915160 |
Data Validation Error |
1002 |
915161 |
Data Validation Error |
1002 |
915162 |
Data Validation Error |
1002 |
915163 |
Data Validation Error |
1002 |
915164 |
Data Validation Error |
1002 |
915165 |
Data Validation Error |
1002 |
915166 |
Data Validation Error |
1002 |
915167 |
Data Validation Error |
1002 |
91502 |
Data Validation Error |
1002 |
915147 |
Data Validation Error |
1002 |
915148 |
Data Validation Error |
1002 |
915149 |
Data Validation Error |
1002 |
915150 |
Data Validation Error |
1002 |
915151 |
Data Validation Error |
1002 |
915168 |
Data Validation Error |
1002 |
915169 |
Data Validation Error |
1002 |
915170 |
Data Validation Error |
1002 |
915171 |
Data Validation Error |
1002 |
915172 |
Data Validation Error |
1002 |
915173 |
Data Validation Error |
1002 |
915174 |
Data Validation Error |
1002 |
915175 |
Data Validation Error |
1002 |
915176 |
Data Validation Error |
1002 |
915177 |
Data Validation Error |
1002 |
915179 |
Data Validation Error |
1002 |
915180 |
Data Validation Error |
1002 |
915181 |
Data Validation Error |
1002 |
915183 |
Data Validation Error |
1002 |
915195 |
Data Validation Error |
1002 |
915189 |
Data Validation Error |
1002 |
915190 |
Data Validation Error |
1002 |
915191 |
Data Validation Error |
1002 |
915192 |
Data Validation Error |
1002 |
815193 |
Data Validation Error |
1002 |
915200 |
Data Validation Error |
1002 |
915201 |
Data Validation Error |
1002 |
915205 |
Data Validation Error |
1002 |
915207 |
Data Validation Error |
1002 |
915208 |
Data Validation Error |
1002 |
915209 |
Data Validation Error |
1002 |
915210 |
Data Validation Error |
1002 |
915211 |
Data Validation Error |
1002 |
915212 |
Data Validation Error |
1002 |
915215 |
Data Validation Error |
1002 |
915216 |
Data Validation Error |
1002 |
915217 |
Data Validation Error |
1002 |
915218 |
Data Validation Error |
1002 |
915219 |
Data Validation Error |
1002 |
915220 |
Data Validation Error |
1002 |
915221 |
Data Validation Error |
1002 |
915222 |
Data Validation Error |
1002 |
915223 |
Data Validation Error |
1002 |
915224 |
Data Validation Error |
1002 |
815224 |
Data Validation Error |
1002 |
915225 |
Data Validation Error |
1002 |
915226 |
Data Validation Error |
1002 |
915227 |
Data Validation Error |
1002 |
915228 |
Data Validation Error |
1002 |
915229 |
Data Validation Error |
1002 |
915996 |
Data Validation Error |
1002 |
915997 |
Data Validation Error |
1002 |
915998 |
Data Validation Error |
1002 |
915999 |
Data Validation Error |
1002 |
95601 |
Data Validation Error |
1002 |
95602 |
Data Validation Error |
1002 |
95603 |
Data Validation Error |
1002 |
95604 |
Data Validation Error |
1002 |
95605 |
Data Validation Error |
1002 |
95606 |
Data Validation Error |
1002 |
95607 |
Data Validation Error |
1002 |
95608 |
Data Validation Error |
1002 |
956996 |
Data Validation Error |
1002 |
956997 |
Data Validation Error |
1002 |
956998 |
Data Validation Error |
1002 |
956999 |
Data Validation Error |
1002 |
92201 |
Data Validation Error |
1002 |
92202 |
Data Validation Error |
1002 |
312555 |
Data Validation Error |
1002 |
92203 |
Data Validation Error |
1002 |
92204 |
Data Validation Error |
1002 |
92205 |
Data Validation Error |
1002 |
92206 |
Data Validation Error |
1002 |
922996 |
Data Validation Error |
1002 |
922997 |
Data Validation Error |
1002 |
922998 |
Data Validation Error |
1002 |
922999 |
Data Validation Error |
1002 |
95801 |
Data Validation Error |
1002 |
95803 |
Data Validation Error |
1002 |
95804 |
Data Validation Error |
1002 |
95805 |
Data Validation Error |
1002 |
95806 |
Data Validation Error |
1002 |
95807 |
Data Validation Error |
1002 |
95808 |
Data Validation Error |
1002 |
95809 |
Data Validation Error |
1002 |
95810 |
Data Validation Error |
1002 |
95811 |
Data Validation Error |
1002 |
95812 |
Data Validation Error |
1002 |
95813 |
Data Validation Error |
1002 |
95814 |
Data Validation Error |
1002 |
95815 |
Data Validation Error |
1002 |
95816 |
Data Validation Error |
1002 |
95817 |
Data Validation Error |
1002 |
95818 |
Data Validation Error |
1002 |
95819 |
Data Validation Error |
1002 |
95820 |
Data Validation Error |
1002 |
95821 |
Data Validation Error |
1002 |
95822 |
Data Validation Error |
1002 |
95823 |
Data Validation Error |
1002 |
95824 |
Data Validation Error |
1002 |
95825 |
Data Validation Error |
1002 |
95826 |
Data Validation Error |
1002 |
95827 |
Data Validation Error |
1002 |
95828 |
Data Validation Error |
1002 |
95829 |
Data Validation Error |
1002 |
958996 |
Data Validation Error |
1002 |
958997 |
Data Validation Error |
1002 |
958998 |
Data Validation Error |
1002 |
958999 |
Data Validation Error |
1002 |
94201 |
Data Validation Error |
1002 |
94202 |
Data Validation Error |
1002 |
94203 |
Data Validation Error |
1002 |
94204 |
Data Validation Error |
1002 |
94205 |
Data Validation Error |
1002 |
94206 |
Data Validation Error |
1002 |
94207 |
Data Validation Error |
1002 |
94208 |
Data Validation Error |
1002 |
942196 |
Data Validation Error |
1002 |
942197 |
Data Validation Error |
1002 |
942198 |
Data Validation Error |
1002 |
942199 |
Data Validation Error |
1002 |
942200 |
Data Validation Error |
1002 |
942201 |
Data Validation Error |
1002 |
942113 |
Data Validation Error |
1002 |
942114 |
Data Validation Error |
1002 |
942116 |
Data Validation Error |
1002 |
942117 |
Data Validation Error |
1002 |
942119 |
Data Validation Error |
1002 |
942120 |
Data Validation Error |
1002 |
942121 |
Data Validation Error |
1002 |
942122 |
Data Validation Error |
1002 |
942131 |
Data Validation Error |
1002 |
84271 |
Data Validation Error |
1002 |
94268 |
Data Validation Error |
1002 |
94270 |
Data Validation Error |
1002 |
94285 |
Data Validation Error |
1002 |
942169 |
Data Validation Error |
1002 |
94284 |
Data Validation Error |
1002 |
942996 |
Data Validation Error |
1002 |
942997 |
Data Validation Error |
1002 |
942998 |
Data Validation Error |
1002 |
942999 |
Data Validation Error |
1002 |
96101 |
Data Validation Error |
1002 |
96102 |
Data Validation Error |
1002 |
96103 |
Data Validation Error |
1002 |
96104 |
Data Validation Error |
1002 |
96105 |
Data Validation Error |
1002 |
96106 |
Data Validation Error |
1002 |
961996 |
Data Validation Error |
1002 |
961997 |
Data Validation Error |
1002 |
961998 |
Data Validation Error |
1002 |
961999 |
Data Validation Error |
1002 |
92801 |
Data Validation Error |
1002 |
92802 |
Data Validation Error |
1002 |
92803 |
Data Validation Error |
1002 |
92804 |
Data Validation Error |
1002 |
92806 |
Data Validation Error |
1002 |
928996 |
Data Validation Error |
1002 |
928997 |
Data Validation Error |
1002 |
928998 |
Data Validation Error |
1002 |
928999 |
Data Validation Error |
1002 |
95701 |
Data Validation Error |
1002 |
95702 |
Data Validation Error |
1002 |
95703 |
Data Validation Error |
1002 |
95704 |
Data Validation Error |
1002 |
95705 |
Data Validation Error |
1002 |
95706 |
Data Validation Error |
1002 |
95707 |
Data Validation Error |
1002 |
95708 |
Data Validation Error |
1002 |
95709 |
Data Validation Error |
1002 |
95710 |
Data Validation Error |
1002 |
95711 |
Data Validation Error |
1002 |
95712 |
Data Validation Error |
1002 |
95713 |
Data Validation Error |
1002 |
95714 |
Data Validation Error |
1002 |
95715 |
Data Validation Error |
1002 |
95716 |
Data Validation Error |
1002 |
95717 |
Data Validation Error |
1002 |
95720 |
Data Validation Error |
1002 |
95721 |
Data Validation Error |
1002 |
95722 |
Data Validation Error |
1002 |
95723 |
Data Validation Error |
1002 |
95724 |
Data Validation Error |
1002 |
95725 |
Data Validation Error |
1002 |
95726 |
Data Validation Error |
1002 |
95727 |
Data Validation Error |
1002 |
957996 |
Data Validation Error |
1002 |
957997 |
Data Validation Error |
1002 |
957998 |
Data Validation Error |
1002 |
957999 |
Data Validation Error |
1002 |
93401 |
Data Validation Error |
1002 |
93402 |
Data Validation Error |
1002 |
93403 |
Data Validation Error |
1002 |
93404 |
Data Validation Error |
1002 |
93405 |
Data Validation Error |
1002 |
93406 |
Data Validation Error |
1002 |
93407 |
Data Validation Error |
1002 |
93408 |
Data Validation Error |
1002 |
93409 |
Data Validation Error |
1002 |
93410 |
Data Validation Error |
1002 |
93411 |
Data Validation Error |
1002 |
93412 |
Data Validation Error |
1002 |
93413 |
Data Validation Error |
1002 |
93414 |
Data Validation Error |
1002 |
93415 |
Data Validation Error |
1002 |
93416 |
Data Validation Error |
1002 |
93417 |
Data Validation Error |
1002 |
93418 |
Data Validation Error |
1002 |
93419 |
Data Validation Error |
1002 |
93420 |
Data Validation Error |
1002 |
93421 |
Data Validation Error |
1002 |
93422 |
Data Validation Error |
1002 |
93423 |
Data Validation Error |
1002 |
93424 |
Data Validation Error |
1002 |
93425 |
Data Validation Error |
1002 |
93426 |
Data Validation Error |
1002 |
93427 |
Data Validation Error |
1002 |
93428 |
Data Validation Error |
1002 |
93429 |
Data Validation Error |
1002 |
93430 |
Data Validation Error |
1002 |
93431 |
Data Validation Error |
1002 |
93432 |
Data Validation Error |
1002 |
934996 |
Data Validation Error |
1002 |
934997 |
Data Validation Error |
1002 |
934998 |
Data Validation Error |
1002 |
934999 |
Data Validation Error |
1002 |
81901 |
Data Validation Error |
1002 |
81902 |
Data Validation Error |
1002 |
81903 |
Data Validation Error |
1002 |
81904 |
Data Validation Error |
1002 |
81905 |
Data Validation Error |
1002 |
81906 |
Data Validation Error |
1002 |
81907 |
Data Validation Error |
1002 |
81908 |
Data Validation Error |
1002 |
81909 |
Data Validation Error |
1002 |
81910 |
Data Validation Error |
1002 |
81923 |
Data Validation Error |
1002 |
91901 |
Data Validation Error |
1002 |
91902 |
Data Validation Error |
1002 |
91903 |
Data Validation Error |
1002 |
91904 |
Data Validation Error |
1002 |
91905 |
Data Validation Error |
1002 |
91906 |
Data Validation Error |
1002 |
91907 |
Data Validation Error |
1002 |
91908 |
Data Validation Error |
1002 |
91909 |
Data Validation Error |
1002 |
91911 |
Data Validation Error |
1002 |
91912 |
Data Validation Error |
1002 |
91913 |
Data Validation Error |
1002 |
91914 |
Data Validation Error |
1002 |
91915 |
Data Validation Error |
1002 |
91916 |
Data Validation Error |
1002 |
91917 |
Data Validation Error |
1002 |
91918 |
Data Validation Error |
1002 |
91919 |
Data Validation Error |
1002 |
91920 |
Data Validation Error |
1002 |
91921 |
Data Validation Error |
1002 |
91922 |
Data Validation Error |
1002 |
91923 |
Data Validation Error |
1002 |
91924 |
Data Validation Error |
1002 |
91925 |
Data Validation Error |
1002 |
91926 |
Data Validation Error |
1002 |
91927 |
Data Validation Error |
1002 |
91928 |
Data Validation Error |
1002 |
91929 |
Data Validation Error |
1002 |
91930 |
Data Validation Error |
1002 |
91931 |
Data Validation Error |
1002 |
91932 |
Data Validation Error |
1002 |
919996 |
Data Validation Error |
1002 |
919997 |
Data Validation Error |
1002 |
919998 |
Data Validation Error |
1002 |
919999 |
Data Validation Error |
1002 |
93801 |
Data Validation Error |
1002 |
93802 |
Data Validation Error |
1002 |
93803 |
Data Validation Error |
1002 |
93804 |
Data Validation Error |
1002 |
93805 |
Data Validation Error |
1002 |
938996 |
Data Validation Error |
1002 |
938997 |
Data Validation Error |
1002 |
938998 |
Data Validation Error |
1002 |
938999 |
Data Validation Error |
1002 |
94501 |
Data Validation Error |
1002 |
94502 |
Data Validation Error |
1002 |
94503 |
Data Validation Error |
1002 |
94504 |
Data Validation Error |
1002 |
94505 |
Data Validation Error |
1002 |
94506 |
Data Validation Error |
1002 |
94507 |
Data Validation Error |
1002 |
94508 |
Data Validation Error |
1002 |
94509 |
Data Validation Error |
1002 |
94510 |
Data Validation Error |
1002 |
94511 |
Data Validation Error |
1002 |
94512 |
Data Validation Error |
1002 |
94513 |
Data Validation Error |
1002 |
94514 |
Data Validation Error |
1002 |
94515 |
Data Validation Error |
1002 |
94516 |
Data Validation Error |
1002 |
94517 |
Data Validation Error |
1002 |
94518 |
Data Validation Error |
1002 |
94519 |
Data Validation Error |
1002 |
94520 |
Data Validation Error |
1002 |
94521 |
Data Validation Error |
1002 |
94522 |
Data Validation Error |
1002 |
94523 |
Data Validation Error |
1002 |
94524 |
Data Validation Error |
1002 |
94525 |
Data Validation Error |
1002 |
94526 |
Data Validation Error |
1002 |
94527 |
Data Validation Error |
1002 |
94528 |
Data Validation Error |
1002 |
94529 |
Data Validation Error |
1002 |
94530 |
Data Validation Error |
1002 |
94531 |
Data Validation Error |
1002 |
94532 |
Data Validation Error |
1002 |
94533 |
Data Validation Error |
1002 |
94534 |
Data Validation Error |
1002 |
94535 |
Data Validation Error |
1002 |
94536 |
Data Validation Error |
1002 |
94537 |
Data Validation Error |
1002 |
94538 |
Data Validation Error |
1002 |
94539 |
Data Validation Error |
1002 |
94540 |
Data Validation Error |
1002 |
94541 |
Data Validation Error |
1002 |
94542 |
Data Validation Error |
1002 |
94543 |
Data Validation Error |
1002 |
94544 |
Data Validation Error |
1002 |
94545 |
Data Validation Error |
1002 |
94546 |
Data Validation Error |
1002 |
94547 |
Data Validation Error |
1002 |
94548 |
Data Validation Error |
1002 |
94549 |
Data Validation Error |
1002 |
94550 |
Data Validation Error |
1002 |
94551 |
Data Validation Error |
1002 |
94552 |
Data Validation Error |
1002 |
94553 |
Data Validation Error |
1002 |
94554 |
Data Validation Error |
1002 |
94555 |
Data Validation Error |
1002 |
94556 |
Data Validation Error |
1002 |
94557 |
Data Validation Error |
1002 |
94558 |
Data Validation Error |
1002 |
201901 |
Data Validation Error |
1002 |
94559 |
Data Validation Error |
1002 |
94560 |
Data Validation Error |
1002 |
94561 |
Data Validation Error |
1002 |
94562 |
Data Validation Error |
1002 |
94563 |
Data Validation Error |
1002 |
94564 |
Data Validation Error |
1002 |
94565 |
Data Validation Error |
1002 |
94566 |
Data Validation Error |
1002 |
94567 |
Data Validation Error |
1002 |
94568 |
Data Validation Error |
1002 |
94569 |
Data Validation Error |
1002 |
94570 |
Data Validation Error |
1002 |
94571 |
Data Validation Error |
1002 |
94572 |
Data Validation Error |
1002 |
94573 |
Data Validation Error |
1002 |
94574 |
Data Validation Error |
1002 |
94575 |
Data Validation Error |
1002 |
94576 |
Data Validation Error |
1002 |
94578 |
Data Validation Error |
1002 |
94579 |
Data Validation Error |
1002 |
94581 |
Data Validation Error |
1002 |
94582 |
Data Validation Error |
1002 |
94584 |
Data Validation Error |
1002 |
94586 |
Data Validation Error |
1002 |
94587 |
Data Validation Error |
1002 |
94588 |
Data Validation Error |
1002 |
94589 |
Data Validation Error |
1002 |
94590 |
Data Validation Error |
1002 |
94591 |
Data Validation Error |
1002 |
94592 |
Data Validation Error |
1002 |
94598 |
Data Validation Error |
1002 |
94599 |
Data Validation Error |
1002 |
945100 |
Data Validation Error |
1002 |
945101 |
Data Validation Error |
1002 |
945102 |
Data Validation Error |
1002 |
945103 |
Data Validation Error |
1002 |
945104 |
Data Validation Error |
1002 |
945105 |
Data Validation Error |
1002 |
945106 |
Data Validation Error |
1002 |
945107 |
Data Validation Error |
1002 |
945108 |
Data Validation Error |
1002 |
945996 |
Data Validation Error |
1002 |
945997 |
Data Validation Error |
1002 |
945998 |
Data Validation Error |
1002 |
945999 |
Data Validation Error |
1002 |
VALIDATION |
Data Validation Error |
9999 |
* |
UnknownError |
Gateway error code | Braintree CreditCard processor code | Braintree CreditCard error message |
---|---|---|
2003 |
2109 –2999 |
Processor Declined |
2003 |
2000 |
Do Not Honor |
2006 |
2001 |
Insufficient Funds |
2004 |
2002 |
Limit Exceeded |
2004 |
2003 |
Cardholder's Activity Limit Exceeded |
2009 |
2004 |
Expired Card |
2008 |
2005 |
Invalid Credit Card Number |
2007 |
2006 |
Invalid Expiration Date |
2003 |
2007 |
No Account |
2008 |
2008 |
Card Account Length Error |
2011 |
2009 |
No Such Issuer |
2003 |
2010 |
Card Issuer Declined CVV |
2003 |
2011 |
Voice Authorization Required |
2015 |
2012 |
Processor Declined – Possible Lost Card |
2016 |
2013 |
Processor Declined – Possible Stolen Card |
2010 |
2014 |
Processor Declined – Fraud Suspected |
2003 |
2015 |
Transaction Not Allowed |
1003 |
2016 |
Duplicate Transaction |
1003 |
2017 |
Cardholder Stopped Billing |
1003 |
2018 |
Cardholder Stopped All Billing |
1003 |
2019 |
Invalid Transaction |
2003 |
2020 |
Violation |
2003 |
2021 |
Security Violation |
2003 |
2022 |
Declined – Updated Cardholder Available |
1003 |
2023 |
Processor Does Not Support This Feature |
2011 |
2024 |
Card Type Not Enabled |
1003 |
2025 |
Set Up Error – Merchant |
1003 |
2026 |
Invalid Merchant ID |
1003 |
2027 |
Set Up Error – Amount |
1003 |
2028 |
Set Up Error – Hierarchy |
1003 |
2029 |
Set Up Error – Card |
1003 |
2030 |
Set Up Error – Terminal |
1003 |
2031 |
Encryption Error |
1003 |
2032 |
Surcharge Not Permitted |
1003 |
2033 |
Inconsistent Data |
1003 |
2034 |
No Action Taken |
1003 |
2035 |
Partial Approval For Amount In Group III Version |
1003 |
2036 |
Authorization could not be found |
1003 |
2037 |
Already Reversed |
2003 |
2038 |
Processor Declined |
1003 |
2039 |
Invalid Authorization Code |
1003 |
2040 |
Invalid Store |
2003 |
2041 |
Declined – Call For Approval |
1003 |
2042 |
Invalid Client ID |
2003 |
2043 |
Error – Do Not Retry, Call Issuer |
2003 |
2044 |
Declined – Call Issuer |
1003 |
2045 |
Invalid Merchant Number |
2003 |
2046 |
Declined |
9999 |
2047 |
Call Issuer. Pick Up Card |
1003 |
2048 |
Invalid Amount |
1003 |
2049 |
Invalid SKU Number |
1003 |
2050 |
Invalid Credit Plan |
1003 |
2051 |
Credit Card Number does not match method of payment |
1003 |
2052 |
Invalid level III Purchase |
2016 |
2053 |
Card reported as lost or stolen |
1003 |
2054 |
Reversal amount does not match authorization amount |
1003 |
2055 |
Invalid Transaction Division Number |
1003 |
2056 |
Transaction amount exceeds the transaction division limit |
2003 |
2057 |
Issuer or Cardholder has put a restriction on the card |
9999 |
2058 |
Merchant not Mastercard SecureCode enabled |
1003 |
2059 |
Address Verification Failed |
2003 |
2060 |
Address Verification and Card Security Code Failed |
1003 |
2061 |
Invalid Transaction Data |
1003 |
2062 |
Invalid Tax Amount |
1003 |
2063 |
PayPal Business Account preference resulted in the transaction failing |
1003 |
2064 |
Invalid Currency Code |
1003 |
2065 |
Refund Time Limit Exceeded |
1003 |
2066 |
PayPal Business Account Restricted |
1003 |
2067 |
Authorization Expired |
1003 |
2068 |
PayPal Business Account Locked or Closed |
1003 |
2069 |
PayPal Blocking Duplicate Order IDs |
1003 |
2070 |
PayPal Buyer Revoked Pre-Approved Payment Authorization |
1003 |
2071 |
PayPal Payee Account Invalid Or Does Not Have a Confirmed Email |
1003 |
2072 |
PayPal Payee Email Incorrectly Formatted |
1003 |
2073 |
PayPal Validation Error |
2003 |
2074 |
Funding Instrument In The PayPal Account Was Declined By The Processor Or Bank, Or It Can\ |
1003 |
2075 |
Payer Account Is Locked Or Closed |
1003 |
2076 |
Payer Cannot Pay For This Transaction With PayPal |
2013 |
2077 |
Transaction Refused Due To PayPal Risk Model |
1003 |
2078 |
Invalid Secure Payment Data |
1007 |
2079 |
PayPal Merchant Account Configuration Error |
1007 |
2080 |
Invalid user credentials |
1003 |
2081 |
PayPal pending payments are not supported |
1003 |
2082 |
PayPal Domestic Transaction Required |
1003 |
2083 |
PayPal Phone Number Required |
1003 |
2084 |
PayPal Tax Info Required |
1003 |
2085 |
PayPal Payee Blocked Transaction |
2004 |
2086 |
PayPal Transaction Limit Exceeded |
1003 |
2087 |
PayPal reference transactions not enabled for your account |
1007 |
2088 |
Currency not enabled for your PayPal seller account |
1003 |
2089 |
PayPal payee email permission denied for this request |
1003 |
2090 |
PayPal or Venmo account not configured to refund more than settled amount |
1007 |
2091 |
Currency of this transaction must match currency of your PayPal account |
1003 |
2092 |
No Data Found - Try Another Verification Method |
1003 |
2093 |
PayPal payment method is invalid |
1003 |
2094 |
PayPal payment has already been completed |
1003 |
2095 |
PayPal refund is not allowed after partial refund |
1003 |
2096 |
PayPal buyer account can't be the same as the seller account |
2004 |
2097 |
PayPal authorization amount limit exceeded |
2004 |
2098 |
PayPal authorization count limit exceeded |
9999 |
2099 |
Cardholder Authentication Required |
1007 |
2100 |
PayPal channel initiated billing not enabled for your account |
9999 |
2101 |
Additional authorization required |
2003 |
2102 |
Incorrect PIN |
2003 |
2103 |
PIN try exceeded |
2003 |
2104 |
Offline Issuer Declined |
1003 |
2105 |
Cannot Authorize at this time (Life cycle) |
2003 |
2106 |
Cannot Authorize at this time (Policy) |
2008 |
2107 |
Card Not Activated |
2008 |
2108 |
Closed Card |
1008 |
3000 |
Processor Network Unavailable – Try Again |
2003 |
* |
Declined |
While operating the Braintree CreditCard adapter in test mode, the following credit-card numbers can be used to examine various outcomes:
Number | Expiry | Result |
---|---|---|
378282246310005 |
Valid American Express | |
371449635398431 |
Valid American Express | |
36259600000004 |
Valid Diners Club | |
6011000991300009 |
Valid Discover | |
3530111333300000 |
Valid JCB | |
6304000000000000 |
Valid Maestro | |
5555555555554444 |
Valid Mastercard | |
2223000048400011 |
Valid Mastercard | |
4111111111111111 |
Valid Visa | |
4005519200000004 |
Valid Visa | |
4009348888881881 |
Valid Visa | |
4012000033330026 |
Valid Visa | |
4012000077777777 |
Valid Visa | |
4012888888881881 |
Valid Visa | |
4217651111111119 |
Valid Visa | |
4500600000000061 |
Valid Visa | |
4000111111111115 |
Unsuccessful verification — Visa — processor declined | |
5105105105105100 |
Unsuccessful verification — Mastercard — processor declined | |
378734493671000 |
Unsuccessful verification — American Express — processor declined | |
6011000990139424 |
Unsuccessful verification — Discover — processor declined | |
38520000009814 |
Unsuccessful verification — Diners Club — processor declined | |
3566002020360505 |
Unsuccessful verification — JCB — failed (3000) | |
4500600000000061 |
Type indicator: prepaid = "Yes" | |
4009040000000009 |
Type indicator: commercial = "Yes" | |
4005519200000004 |
Type indicator: Durbin regulated = "Yes" | |
4012000033330026 |
Type indicator: healthcare = "Yes" | |
4012000033330125 |
Type indicator: debit = "Yes" | |
4012000033330224 |
Type indicator: payroll = "Yes" | |
4012000033330422 |
Type indicator: all values = "No" | |
4012000033330323 |
Type indicator: all values = "Unknown" | |
4012000033330620 |
Other information: country of issuance = "USA" | |
4012000033330729 |
Other information: country of issuance = "CAN" | |
4023490000000008 |
Other information: country of issuance = "IRL" | |
4444333322221111 |
Other information: country of issuance = "GBR" | |
5555444433331111 |
Other information: country of issuance = "GBR" | |
374512431123241 |
Other information: country of issuance = "GBR" | |
375529658790105 |
Other information: country of issuance = "IRL" | |
5101108206957373 |
Other information: country of issuance = "IRL" | |
4012000033330521 |
Other information: issuing bank = "NETWORK ONLY" | |
4000000000001000 |
Current year + 3 - 01 |
Successful No-Challenge Authentication — Visa |
5200000000001005 |
Current year + 3 - 01 |
Successful No-Challenge Authentication — Mastercard |
340000000001007 |
Current year + 3 - 01 |
Successful No-Challenge Authentication — Amex |
6277800000002390 |
Current year + 3 - 01 |
Successful No-Challenge Authentication — ELO |
4000000000001018 |
Current year + 3 - 01 |
Failed No-Challenge Authentication — Visa |
5200000000001013 |
Current year + 3 - 01 |
Failed No-Challenge Authentication — Mastercard |
340000000001015 |
Current year + 3 - 01 |
Failed No-Challenge Authentication — Amex |
6277800000002457 |
Current year + 3 - 01 |
Failed No-Challenge Authentication — ELO |
4000000000001034 |
Current year + 3 - 01 |
Unavailable No-Challenge Authentication from the Issuer — Visa |
5200000000001039 |
Current year + 3 - 01 |
Unavailable No-Challenge Authentication from the Issuer — Mastercard |
340000000001031 |
Current year + 3 - 01 |
Unavailable No-Challenge Authentication from the Issuer — Amex |
6277800000002309 |
Current year + 3 - 01 |
Unavailable No-Challenge Authentication from the Issuer — ELO |
4000000000001042 |
Current year + 3 - 01 |
Rejected No-Challenge Authentication by the Issuer — Visa |
5200000000001047 |
Current year + 3 - 01 |
Rejected No-Challenge Authentication by the Issuer — Mastercard |
340000000001049 |
Current year + 3 - 01 |
Rejected No-Challenge Authentication by the Issuer — Amex |
6277800000002044 |
Current year + 3 - 01 |
Rejected No-Challenge Authentication by the Issuer — ELO |
4000000000001059 |
Current year + 3 - 01 |
Authentication Not Available on Lookup — Visa |
5200000000001054 |
Current year + 3 - 01 |
Authentication Not Available on Lookup — Mastercard |
340000000001056 |
Current year + 3 - 01 |
Authentication Not Available on Lookup — Amex |
6277800000002135 |
Current year + 3 - 01 |
Authentication Not Available on Lookup — ELO |
4000000000001067 |
Current year + 3 - 01 |
Error on Lookup — Visa |
5200000000001062 |
Current year + 3 - 01 |
Error on Lookup — Mastercard |
340000000001064 |
Current year + 3 - 01 |
Error on Lookup — Amex |
6277800000002655 |
Current year + 3 - 01 |
Error on Lookup — ELO |
4000000000001075 |
Current year + 3 - 01 |
Timeout on Lookup — Visa |
5200000000001070 |
Current year + 3 - 01 |
Timeout on Lookup — Mastercard |
340000000001072 |
Current year + 3 - 01 |
Timeout on Lookup — Amex |
6277800000002820 |
Current year + 3 - 01 |
Timeout on Lookup — ELO |
4000000000001083 |
Current year + 3 - 01 |
Bypassed Authentication — Visa |
5200000000001088 |
Current year + 3 - 01 |
Bypassed Authentication — Mastercard |
340000000001080 |
Current year + 3 - 01 |
Bypassed Authentication — Amex |
6277800000002945 |
Current year + 3 - 01 |
Bypassed Authentication — ELO |
4000000000001091 |
Current year + 3 - 01 |
Successful Challenge Authentication — Visa |
5200000000001096 |
Current year + 3 - 01 |
Successful Challenge Authentication — Mastercard |
340000000001098 |
Current year + 3 - 01 |
Successful Challenge Authentication — Amex |
6277800000002325 |
Current year + 3 - 01 |
Successful Challenge Authentication — ELO |
4000000000001109 |
Current year + 3 - 01 |
Failed Challenge Authentication — Visa |
5200000000001104 |
Current year + 3 - 01 |
Failed Challenge Authentication — Mastercard |
340000000001106 |
Current year + 3 - 01 |
Failed Challenge Authentication — Amex |
6277800000002127 |
Current year + 3 - 01 |
Failed Challenge Authentication — ELO |
4000000000001117 |
Current year + 3 - 01 |
Challenge Authentication is Unavailable — Visa |
5200000000001112 |
Current year + 3 - 01 |
Challenge Authentication is Unavailable — Mastercard |
340000000001114 |
Current year + 3 - 01 |
Challenge Authentication is Unavailable — Amex |
6277800000002887 |
Current year + 3 - 01 |
Challenge Authentication is Unavailable — ELO |
4000000000001125 |
Current year + 3 - 01 |
Error on Authentication — Visa |
5200000000001120 |
Current year + 3 - 01 |
Error on Authentication — Mastercard |
340000000001122 |
Current year + 3 - 01 |
Error on Authentication — Amex |
6277800000002507 |
Current year + 3 - 01 |
Error on Authentication — ELO |
5119737947565580 |
Current year + 3 - 01 |
Data Only Successful |
GooglePay via Braintree CreditCard currently only works with 3DS_CRYPTOGRAM
tokens (via mobile phone application) and not with PAN_ONLY
(via web).
For further information on how to process ApplePay and GooglePay see our docs at GooglePay and ApplePay.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
PayPal | payment.js | All |
Venmo | payment.js | All |
Braintree requires you to display the PayPal Button on your Checkout page. This is handled by the payment.js integration.
1. Embed the payment.min.js in your page
<script data-main="payment-js" src="https://asxgw.com/js/integrated/payment.1.3.min.js"></script>
2. Provide a DIV element on your page for the PayPal button
<div id='paypalButtonDiv'></div>
3. Initialize the payment.js with the following parameters:
<script>
var payment = new PaymentJs('1.2');
errorHandler = function (error) {
// handle error events here
}
cancellationHandler = function (data) {
// handle cancellation event here - called if user cancelled payment process
}
completeHandler = function (paymentNonce, deviceData) {
// send the paymentNonce to the gateway via the transactionToken parameter
// send deviceData to us via the extraData.deviceData parameter if the parameter 'gatherDeviceData' was set to true
}
var buttonOptions = {
style: { color: 'silver' },
locale: 'en_US'
};
var paypalOptions = {
amount: '9.99',
currency: 'EUR',
button: buttonOptions,
flow: 'vault'
};
payment.initBraintreePaypal(
'public-integration-key',
'paypal-button-div',
false, // gatherDeviceData, set true for merchant initiated card-on-file transactions
completeHandler,
errorHandler,
cancellationHandler,
paypalOptions
);
</script>
4. You can now call the Transaction API with the transaction token set to the paymentNonce returned to the completeHandler.
If you set gatherDeviceData
to true, the completeHandler will receive a second
parameter deviceData
which can be sent via the Transaction API using the
extraData.deviceData
parameter.
If set to false, device data will not be gathered and the deviceData
parameter will be null.
Collecting device data is only required for Card-On-File transactions.
The integration for Pay Later works like the aforementioned normal PayPal integration.
To enable Pay Later, usePayLater: true
must be added to the PayPal options.
Additionally, the flow
parameter for the options must be set to checkout
.
<script>
var paypalOptions = {
amount: "",
currency: "",
button: paypalButtonOptions,
usePayLater: true,
flow: 'checkout'
};
</script>
Braintree requires you to display the Venmo Button on your Checkout page. This is handled by the payment.js integration.
1. Embed the payment.min.js in your page
<script data-main="payment-js" src="https://asxgw.com/js/integrated/payment.1.3.min.js"></script>
2. Provide a DIV element on your page for the PayPal button
<div id="venmoButtonDiv">
<svg width="280px" height="48px" viewBox="0 0 280 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 46.1 (44463) - http://www.bohemiancoding.com/sketch -->
<title>svg/blue_venmo_button_active_280x48</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="blue_venmo_button_active_280x48">
<rect id="Rectangle" fill="#1B74AE" x="0" y="0" width="280" height="48" rx="4"></rect>
<g id="Group" transform="translate(98.000000, 16.000000)" fill="#FFFFFF">
<path d="M14.1355722,0.0643062201 C14.6997229,0.996022242 14.9540614,1.95569119 14.9540614,3.16795034 C14.9540614,7.03443424 11.6533091,12.0572714 8.97435371,15.5842648 L2.85545503,15.5842648 L0.401435711,0.910859951 L5.75920168,0.402203543 L7.05667586,10.8432743 C8.26898429,8.86832019 9.76503373,5.76467606 9.76503373,3.64865382 C9.76503373,2.49041769 9.56660332,1.70150782 9.25650148,1.0519281 L14.1355722,0.0643062201 L14.1355722,0.0643062201 Z" id="Shape"></path>
<path d="M21.0794779,6.525633 C22.0654018,6.525633 24.5475201,6.07462046 24.5475201,4.66393896 C24.5475201,3.98655114 24.0685351,3.64865382 23.5040948,3.64865382 C22.5165776,3.64865382 21.2206966,4.83281521 21.0794779,6.525633 L21.0794779,6.525633 Z M20.9665029,9.31947756 C20.9665029,11.0419863 21.924328,11.7177809 23.1941378,11.7177809 C24.5769225,11.7177809 25.9009024,11.3798836 27.6217431,10.505377 L26.9735853,14.9065874 C25.7611321,15.4989577 23.8715531,15.8942092 22.0374478,15.8942092 C17.3850512,15.8942092 15.7199738,13.0728462 15.7199738,9.545708 C15.7199738,4.97417302 18.4284766,0.120067244 24.0124822,0.120067244 C27.08685,0.120067244 28.8059526,1.84243114 28.8059526,4.24073451 C28.8062423,8.10707358 23.8437439,9.29152463 20.9665029,9.31947756 L20.9665029,9.31947756 Z" id="Shape"></path>
<path d="M44.2677372,3.50758567 C44.2677372,4.07185827 44.1821369,4.89031424 44.0969712,5.42518557 L42.4892503,15.58412 L37.2722686,15.58412 L38.7387707,6.27159447 C38.7665799,6.01900427 38.8520354,5.51049269 38.8520354,5.22835639 C38.8520354,4.55096858 38.4288137,4.3819475 37.9199918,4.3819475 C37.2441697,4.3819475 36.5667543,4.69203673 36.1155786,4.918412 L34.4522393,15.5842648 L29.2058551,15.5842648 L31.6026627,0.374540282 L36.1433878,0.374540282 L36.2008892,1.58853744 C37.2721237,0.88319669 38.6827177,0.120356912 40.6841129,0.120356912 C43.3356936,0.120067244 44.2677372,1.47498771 44.2677372,3.50758567 L44.2677372,3.50758567 Z" id="Shape"></path>
<path d="M59.7554481,1.78507694 C61.2496147,0.713885943 62.6604983,0.120067244 64.6058406,0.120067244 C67.2846511,0.120067244 68.216405,1.47498771 68.216405,3.50758567 C68.216405,4.07185827 68.1310944,4.89031424 68.0459287,5.42518557 L66.4400908,15.58412 L61.2216606,15.58412 L62.7161168,6.07476529 C62.7436363,5.82058192 62.8014274,5.51049269 62.8014274,5.31380835 C62.8014274,4.55111341 62.3780609,4.3819475 61.8693838,4.3819475 C61.2213709,4.3819475 60.5736477,4.6640838 60.0927798,4.918412 L58.4297302,15.5842648 L53.2126036,15.5842648 L54.7070598,6.07491013 C54.7345794,5.82072676 54.7906323,5.51063753 54.7906323,5.31395319 C54.7906323,4.55125824 54.367121,4.38209233 53.860182,4.38209233 C53.1829115,4.38209233 52.5069445,4.69218156 52.0557688,4.91855683 L50.3911259,15.5844097 L45.1464798,15.5844097 L47.5429977,0.374685116 L52.0282492,0.374685116 L52.1691783,1.64444329 C53.2126036,0.883486357 54.6220389,0.12064658 56.511473,0.12064658 C58.1474376,0.120067244 59.2185273,0.825552826 59.7554481,1.78507694 L59.7554481,1.78507694 Z" id="Shape"></path>
<path d="M78.5990953,6.21583344 C78.5990953,4.97417302 78.288559,4.12761929 77.358688,4.12761929 C75.2997914,4.12761929 74.8770043,7.76743825 74.8770043,9.62942196 C74.8770043,11.0419863 75.2722719,11.9162033 76.2018532,11.9162033 C78.1479196,11.9162033 78.5990953,8.07767231 78.5990953,6.21583344 L78.5990953,6.21583344 Z M69.5751464,9.40463986 C69.5751464,4.60817794 72.1127383,0.120067244 77.9512273,0.120067244 C82.3505888,0.120067244 83.9587442,2.71679297 83.9587442,6.30099573 C83.9587442,11.0418415 81.4485271,15.9514186 75.4692539,15.9514186 C71.0415037,15.9514186 69.5751464,13.0446036 69.5751464,9.40463986 L69.5751464,9.40463986 Z" id="Shape"></path>
</g>
</g>
</g>
</svg>
</div>
3. Initialize the payment.js with the following parameters:
<script>
var payment = new PaymentJs('1.2');
errorHandler = function (error) {
// handle error events here
}
cancellationHandler = function (data) {
// handle cancellation event here - called if user cancelled payment process
}
completeHandler = function (paymentNonce, deviceData) {
// send the paymentNonce to the gateway via the transactionToken parameter
// send deviceData to us via the extraData.deviceData parameter if the parameter 'gatherDeviceData' was set to true
}
const venmoLineItems = [];
const venmoOptions = {
totalAmount: '9.99',
paymentMethodUsage: 'single_use', // multi_use,
allowNewBrowserTab: false,
allowDesktop: true,
allowDesktopWebLogin: true,
mobileWebFallBack: true,
lineItems: venmoLineItems,
};
payment.initBraintreeVenmo(
'public-integration-key',
'venmoButtonDiv',
true, // gatherDeviceData, set true for merchant initiated card-on-file transactions
completeHandler,
errorHandler,
cancellationHandler,
venmoOptions
);
</script>
4. You can now call the Transaction API with the transaction token set to the paymentNonce returned to the completeHandler.
If you set gatherDeviceData
to true, the completeHandler will receive a second
parameter deviceData
which can be sent via the Transaction API using the
extraData.deviceData
parameter.
If set to false, device data will not be gathered and the deviceData
parameter will be null.
collecting device data is required for Venmo transactions
When sending the payment token received by the completeHandler to the Transaction
API, the following extraData
keys can be used:
Key | Description |
---|---|
merchantAccountId | The merchant account ID used to create a transaction, which also defines the currency. If not given, the default merchant account ID is used. |
deviceData | Only required for Card-On-File transactions. Use device data returned by the completeHandler. |
Should be used to pass item details, so called "lineItems"
Key | Description |
---|---|
item.identification | Item description |
item.name | Item name |
item.description | Item description |
item.quantity | Number of units of the item purchased |
item.price | Total Amount. Quantity x unit amount |
item.l2l3Data.unitPrice | Single unit price |
item.l2l3Data.taxAmount | Per-unit tax price of the item |
Key | Description |
---|---|
l2l3Data.discountAmount | Discount amount that was included in the total transaction amount |
l2l3Data.freightAmount | The shipping cost of the entire transaction |
Key | Description |
---|---|
fax | Refer to Braintree documentation |
phone | Refer to Braintree documentation |
website | Refer to Braintree documentation |
billingCompany | If not available, falls back to the company name of the Customer object |
billingFirstName | If not available, falls back to the first name of the Customer object |
billingLastName | If not available, falls back to the last name of the Customer object |
The parameter customer.identification
is mandatory in the following cases:
withRegister
Braintree Documentation for AID.
Key | Description |
---|---|
folioNumber | Refer to Braintree Documentation for AID |
checkInDate | Refer to Braintree Documentation for AID |
checkOutDate | Refer to Braintree Documentation for AID |
travelPackage | Refer to Braintree Documentation for AID |
departureDate | Refer to Braintree Documentation for AID |
lodgingCheckInDate | Refer to Braintree Documentation for AID |
lodgingCheckOutDate | Refer to Braintree Documentation for AID |
lodgingName | Refer to Braintree Documentation for AID |
roomRate | Refer to Braintree Documentation for AID |
roomTax | Refer to Braintree Documentation for AID |
passengerFirstName | Refer to Braintree Documentation for AID |
passengerLastName | Refer to Braintree Documentation for AID |
passengerMiddleInitial | Refer to Braintree Documentation for AID |
passengerTitle | Refer to Braintree Documentation for AID |
issuedDate | Refer to Braintree Documentation for AID |
travelAgencyName | Refer to Braintree Documentation for AID |
travelAgencyCode | Refer to Braintree Documentation for AID |
ticketNumber | Refer to Braintree Documentation for AID |
issuingCarrierCode | Refer to Braintree Documentation for AID |
customerCode | Refer to Braintree Documentation for AID |
fareAmount | Refer to Braintree Documentation for AID |
feeAmount | Refer to Braintree Documentation for AID |
taxAmount | Refer to Braintree Documentation for AID |
restrictedTicket | Refer to Braintree Documentation for AID |
noShow | Refer to Braintree Documentation for AID |
advancedDeposit | Refer to Braintree Documentation for AID |
fireSafe | Refer to Braintree Documentation for AID |
propertyPhone | Refer to Braintree Documentation for AID |
Upto four legs can be added, each parameter for each leg can be added like this: leg.COUNT.parameter
replacing COUNT
with the number of leg and parameter
with one of Legs Parameters.
e.g adding parameter conjunctionTicket
to first leg should be: leg.0.conjunctionTicket
.
Legs Parameters
Key | Description |
---|---|
conjunctionTicket | Refer to Braintree Documentation for AID |
exchangeTicket | Refer to Braintree Documentation for AID |
couponNumber | Refer to Braintree Documentation for AID |
serviceClass | Refer to Braintree Documentation for AID |
carrierCode | Refer to Braintree Documentation for AID |
fareBasisCode | Refer to Braintree Documentation for AID |
flightNumber | Refer to Braintree Documentation for AID |
departureDate | Refer to Braintree Documentation for AID |
departureAirportCode | Refer to Braintree Documentation for AID |
departureTime | Refer to Braintree Documentation for AID |
arrivalAirportCode | Refer to Braintree Documentation for AID |
arrivalTime | Refer to Braintree Documentation for AID |
stopoverPermitted | Refer to Braintree Documentation for AID |
fareAmount | Refer to Braintree Documentation for AID |
feeAmount | Refer to Braintree Documentation for AID |
taxAmount | Refer to Braintree Documentation for AID |
endorsementOrRestrictions | Refer to Braintree Documentation for AID |
additional.COUNT.parameter
replacing COUNT
with the number of charge and parameter
with one of Additional Charges Parameters.Key | Description |
---|---|
kind | Refer to Braintree Documentation for AID |
amount | Refer to Braintree Documentation for AID |
To add an STC parameter to extraData, start the name of the extraData field with stc.
followed by the stc parameter.
e.g: stc.sender_account_id
.
IMPORTANT NOTE: setting Transaction Context must be activated on the merchant's Paypal Account
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Blik | payment.js | Debit, Refund |
Blik Non-Redirect | payment.js | Debit, Refund |
Braintree requires you to display the PayPal Button on your Checkout page. This is handled by the payment.js integration.
1. Embed the payment.min.js in your page
<script data-main="payment-js" src="https://asxgw.com/js/integrated/payment.1.3.min.js"></script>
2. Provide a DIV element on your page for the Local Payment Method button
<div id='localPaymentButtonDiv'></div>
3. Initialize the payment.js with the following parameters:
Example 1: Blik
<script>
var payment = new PaymentJs('1.3');
errorHandler = function (error) {
// handle error events here
}
cancellationHandler = function (data) {
// handle cancellation event here - called if user cancelled payment process
}
completeHandler = function (data) {
// handle completed transaction
}
paymentIdHandler = function (paymentId) {
// create a debit transaction including the paymentId in the request under the transactionToken parameter
}
let blikButtonDiv = document.getElementById('blikButtonDiv')
var localPaymentMethodOptions = {
paymentType: 'blik',
amount: '9.99',
currency: 'PLN',
firstName: 'Max',
lastName: 'Mustermann',
email: '[email protected]',
address: { // NOTE: Address is optional. If present, then make sure it's complete and valid, otherwise the transaction will FAIL.
streetAddress: 'Mokotowska 34',
extendedAddress: 'Zlota Jesien 64',
locality: 'Warsaw',
postalCode: '02-697',
countryCode: 'PL'
},
fallbackUrl: '[email protected]',
fallbackButtonText: 'Please retry'
};
payment.initBraintreeLocalPayment(
'public-integration-key',
blikButtonDiv,
paymentIdHandler,
completeHandler,
errorHandler,
cancellationHandler,
localPaymentMethodOptions
);
</script>
Example 2: Blik Non-Redirect
<!-- Payment methods selection form fields-->
<!-- This field is mandatory. Id and name have to be __blikToken.-->
<input type="hidden" name="__blikToken" id="__blikToken" />
<!-- This field is optional and is used to collect Blik code from the UI. Id of the element has to be blikCode. If present, then authCode does not need to be passed with localPaymentMethodOptions. -->
<input type="text" id="blikCode" name="blikCode"/>
<!-- This field is mandatory. It can be styled and is used for payment initiation.-->
<div id="blikButtonDiv"> </div>
<!-- end of HTML -->
<script>
var payment = new PaymentJs('1.3');
errorHandler = function (error) {
// handle error events here
}
cancellationHandler = function (data) {
// handle cancellation event here - called if user cancelled payment process
}
completeHandler = function () {
// handle completed transaction
}
paymentIdHandler = function (paymentId) {
// blikTokenElement has to be updated with paymentId so the transaction can be updated with it.
var blikTokenElement = document.getElementById('__blikToken');
blikTokenElement.value = paymentId;
}
let blikButtonDiv = document.getElementById('blikButtonDiv')
var localPaymentMethodOptions = {
paymentType: 'blik',
amount: '9.99',
currency: 'PLN',
firstName: 'Max',
lastName: 'Mustermann',
email: '[email protected]',
address: { // NOTE: Address is optional. If present, then make sure it's complete and valid, otherwise the transaction will FAIL.
streetAddress: 'Mokotowska 34',
extendedAddress: 'Zlota Jesien 64',
locality: 'Warsaw',
postalCode: '02-697',
countryCode: 'PL'
},
authCode: '123456', // Blik auth code from the Blik application
// NOTE: authCode can also be automatically fetched from an element with an id 'blikCode'(example above).
// In this case, the localPaymentMethodOptions.authCode is not required.
};
payment.initBraintreeLocalPayment(
'public-integration-key',
blikButtonDiv,
paymentIdHandler,
completeHandler,
errorHandler,
cancellationHandler,
localPaymentMethodOptions
);
</script>
4. After the end customer has completed the payment, we rely on incoming webhooks from Braintree. Therefore, it can take up to 2 minutes before we update the transaction status.
Blik
: The transaction is created with a pending_postback status during the payment process by calling paymentIdHandler()
.Blik Non-Redirect
: The transaction is created with an await_redirect status during the payment process by calling paymentIdHandler()
. Debit transaction result includes a redirectUrl
parameter to Hosted payment page, where end customer should be redirected to.Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | Server-To-Server, iFrame Form & payment.js Integration | Debit, Register, Preauthorize, Capture, Refund, Deregister, Recurring Debit/Preauthorize |
Parameter | Required | Description |
---|---|---|
customer.billingPhone | true | Customer phone number |
customer.email | true | Customer email address |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard (without 3DS) | iFrame Form & payment.js Integration | All |
Extra Data | Required | Description |
---|---|---|
Customer - Address | true (for AMEX) | |
Customer - City | true (for AMEX) | |
Customer - State | true (for AMEX) | |
Customer - ZIP | true (for AMEX) | |
Customer - Country | true (for AMEX) | |
Customer - Email | true (for AMEX) | |
Customer - IP | true (for AMEX) |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
ACHDirectDebit | Full-Page Redirect, HPP | Register, Debit, Preauthorize, Capture, Refund, Void |
Parameter | Required | Description |
---|---|---|
extraData.consumerId | conditional | Required if accountNumber or bankAccountId are not given |
extraData.bankAccountId | conditional | Required if consumerId or accountNumber are not given |
extraData.accountNumber | conditional | Required if consumerId or bankAccountId are not given |
extraData.accountNumberConfirmation | conditional | Required if accountNumber is given |
extraData.accountType | conditional | Required if accountNumber is given |
extraData.routingNumber | conditional | Required if accountNumber is given |
Customer firstName | conditional | Required if accountNumber is given |
Customer lastName | conditional | Required if accountNumber is given |
Customer Email | conditional | Required if accountNumber is given |
Customer billingPhone | conditional | Required if accountNumber is given |
Parameter | Required | Description |
---|---|---|
Customer firstName | true | Customer firstname |
Customer lastName | true | Customer lastname |
Customer Email | true | Customer Email |
Customer billingPhone | true | Customer billing phone |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | Debit, Register, Preauthorize, Capture, Void, Refund, Deregister |
iDeal | Full-Page Redirect | Debit, Refund |
iDeal Debit
Field | Required |
---|---|
bic | true |
description | true |
billingCity | false |
ipAddress | false |
language (customer.extraData) | false |
Field | Type | Required |
---|---|---|
customer.firstName | string | true |
customer.lastName | string | true |
On behalf of another person or business:
Field | Type |
---|---|
extraData.senderReference | string |
extraData.senderAccountNumber | string |
extraData.senderFirstName | string |
extraData.senderLastName | string |
extraData.senderAddressLine1 | string |
extraData.senderCity | string |
extraData.senderState | string |
extraData.senderZip | string |
extraData.senderCountry | string |
extraData.senderSourceOfFunds | string |
For detailed information kindly refer to Requirements
Destination
Field | Type | Required | Info |
---|---|---|---|
extraData.accountHolderType | string | false | Defaults to individual |
customer.firstName | string | true | |
customer.lastName | string | true | |
customer.billingAddress1 | string | conditional | |
customer.billingAddress2 | string | false | |
customer.billingCity | string | conditional | |
customer.billingState | string | conditional | |
customer.billingPostcode | string | conditional | |
customer.billingCountry | string | conditional | |
extraData.accountHolderCountryCode | string | true | International country calling code |
customer.billingPhone | string | true | |
extraData.accountHolderIdType | string | true | account holder identification type: passport driving_license national_id company_registration tax_id |
customer.nationalId | string | true | account holder identification number |
extraData.accountHolderIdCountry | string | false | account holder identification issuing country (two-letter ISO country code) |
extraData.accountHolderIdExpiry | string | false | account holder identification expiry |
customer.email | string | false | |
customer.birthDate | string | false | |
extraData.accountHolderCountryOfBirth | string | false | two-letter ISO country code |
Sender
Field | Type | Required | Info |
---|---|---|---|
extraData.senderType | string | false | Defaults to individual |
extraData.senderFirstName | string | true | |
extraData.senderLastName | string | true | |
extraData.senderAddressLine1 | string | true | |
extraData.senderAddressLine2 | string | false | |
extraData.senderCity | string | true | |
extraData.senderState | string | false | |
extraData.senderZip | string | false | |
extraData.senderCountry | string | true | two-letter ISO country code |
extraData.senderReference | string | true | |
extraData.senderSourceOfFunds | string | true | May be one of: credit debit prepaid deposit_account mobile_money_account cash |
extraData.senderIdType | string | conditional | sender identification type |
extraData.senderIdNumber | string | conditional | sender identification number |
extraData.senderIdIssuingCountry | string | false | sender identification issuing country |
extraData.senderIdDateOfExpiry | string | false | sender identification expiry |
extraData.senderDateOfBirth | string | false | |
extraData.senderCountryOfBirth | string | false | |
extraData.senderNationality | string | false |
Misc
Field | Type | Required | Info |
---|---|---|---|
extraData.fundsTransferType | string | false | May be one of AA PP FD FT LO OG C04 C07 C52 C55 |
extraData.purpose | string | conditional | May be one of family_support expatriation travel_and_tourism education medical_treatment emergency_need leisure savings gifts donations financial_services it_services investment insurance loan_payment pension royalties other income |
Field | Type | Description |
---|---|---|
extraData.recipientAccountReference | string | Recipient's account reference (<=34 characters) |
extraData.recipientAddress1 | string | Recipient's address1 |
extraData.recipientAddress2 | string | Recipient's address2 |
extraData.recipientCity | string | Recipient's city |
extraData.recipientCountry | string | Recipient's country |
extraData.recipientState | string | Recipient's state |
extraData.recipientZip | string | Recipient's zip |
extraData.recipientFirstName | string | Recipient's first name |
extraData.recipientLastName | string | Recipient's last name |
customer.billingAddress1 | string | Sender's address 1 |
customer.billingAddress2 | string | Sender's address 2 |
customer.billingCity | string | Sender's city |
customer.billingCountry | string | Sender's country |
customer.billingState | string | Sender's state |
customer.billingPostcode | string | Sender's zip |
customer.firstName | string | Sender's first name |
customer.lastName | string | Sender's last name |
customer.identification | string | Sender reference |
maximum of 50 item objects are allowed to be sent in a Level 3 Visa or Mastercard request American Express only supports Level 2 data maximum of 4 item objects are allowed to be sent in an American Express request
Field | Type | Description |
---|---|---|
l2l3Data.vatRegistrationNumber | string | The customer's value-added tax (VAT) |
l2l3Data.taxAmount | float | The total amount of sales tax on the total purchase amount |
l2l3Data.discountAmount | float | The discount amount applied to the transaction by the merchant |
l2l3Data.dutyAmount | float | The total charges for any import or export duty included in the transaction |
l2l3Data.freightAmount | float | The total charges for freight, shipping or handling included in the transaction |
l2l3Data.freightTaxAmount | float | The total amount of tax for the freight, shipping or handling charges |
items[].l2l3Data.commodityCode | string | The code identifying a commodity for value-added tax (VAT) purposes |
items[].l2l3Data.discount | float | The discount applied to each invoice line item |
items[].l2l3Data.taxAmount | float | The total amount of sales tax or value-added tax (VAT) for the line item |
items[].l2l3Data.unit | string | The unit of measure code used for the item in the transaction |
items[].l2l3Data.unitPrice | float | The unit cost of the item purchased |
items[].name | string | The description of the item purchased |
items[].quantity | int | The number of units purchased |
item[].identification | string | The merchant product identifier |
items[].price | float | The total amount for the line item |
customer.shippingCountry | string | The 2-letter destination country code |
customer.shippingPostcode | string | The destination postal or zip code |
extraData.senderZipCode | string | The origin postal or zip code mapped to from_address_zip |
extraData.orderId | string | The invoice number mapped to order_id |
Parameter | Value |
---|---|
avs_result | Mapped from the field avs_check . For possible values see Checkout.com API reference |
cvv_result | Mapped from the field cvv_check . For possible values see Checkout.com API reference |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
H5 | Full-Page Redirect | Debit, Refund |
Parameter | Required | Value | Description |
---|---|---|---|
extraData.method | True | one of ['alipay','wechat','wechatApplet','unionpay'] | H5 supports different payment platforms, this indicates for which platform the payment is requested. |
extraData.sceneType | Conditional | one of [iOS:IOS_SDK, Android:AND_SDK, website:AND_WEB] | Required when extraData.method is wechat |
extraData.merAppId | Conditional | Required when extraData.method is wechat | |
extraData.merAppName | Conditional | Required when extraData.method is wechat | |
extraData.linkExpiry | False | DataTime must be in the following format Y-m-d H:i:s |
The expiry date of the QR code. |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
C2B | Hosted Payment Pages, Server-to-Server | Debit, Refund |
Parameter | Required | Description |
---|---|---|
customer.firstName | false | Customers firstname |
customer.lastName | false | Customers lastname |
customer.billingPhone | false | Customers billing phone number |
extraData.qrCodeExpiry | false | The expiry date of the QR code. Must be in the following format Y-m-d H:i:s . |
description | false | Mapped to the parameter billDesc |
Parameter | Required | Description |
---|---|---|
description | false | Mapped to the parameter refundDesc |
Parameter | Value |
---|---|
qrCode |
Base64 encoded QR Code |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | Server-To-Server, iFrame Form & payment.js Integration | Debit, Preauthorize, Capture, Refund, Void |
Parameter | Required | Description |
---|---|---|
extraData.cardExpirationDay | false | Expiration day of the card. Defaults to end of month if not set |
extraData.udf1 | false | User defined field |
extraData.udf2 | false | User defined field |
extraData.udf3 | false | User defined field |
extraData.udf4 | false | User defined field |
extraData.udf5 | false | User defined field |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | All |
ApplePay | Server-to-Server | Debit, Preauthorize, Capture, Void, Refund |
none
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Direct Carrier Billing (SMS) | Server-to-Server | Debit only |
Extra Data | Required | Description |
---|---|---|
from | true | Originators of the message alphanumeric: max length 11 characters numeric: max length 17 characters (must start with 00<country code>), e.g. 0031 for Netherlands |
body | true | Message to be sent alphanumeric: max 160 characters |
type | true | TEXT or BINARY |
to | true | Recipient MSISDN including country code, e.g. 0031 |
tariff | false | End user tariff 0-3 decimals |
header | false | User data header of binary message (Do not add length byte at start) |
operator | false | Mobile Country Code / Mobile Network Combination |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | Server-To-Server, iFrame Form & payment.js Integration | Debit, Preauthorize, Capture, Refund, Void, Register |
Parameter | Required | Description |
---|---|---|
extraData.installment | false | Numeric count of installments |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
BitCoin | Full-Page Redirect | Debit |
none
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | Payment Form & payment.js Integration | Register, Deregister, Debit, Pre-authorise, Capture, Void, Refund |
The following fields are required depending on the used features:
Parameter | Allowed values | Description |
---|---|---|
MerchantID | required | |
APIKey | required | |
sharedSecret | required | |
Use Decision Manager | required if Cybersource Decision Manager is used. | |
Enable Incremental Authorization | required if Incremental Authorizations are used (check with Cybersource if it's available for you) |
The following extraData
fields are required or optional for ALL transactions:
Parameter | Allowed values | Description |
---|---|---|
extraData.purchaseLevel | 3 |
required if LEVEL III Data is sent |
extraData.purchaseOrderNumber | additional LEVEL III Data value |
The following extraData
fields are required for capture transactions:
Parameter | Allowed values | Description |
---|---|---|
extraData.captureSequenceNumber | The Capture sequence number for multiple partial captures. | |
extraData.totalCaptureCount | The total amount of Captures that will be done. |
The following extraData
fields are required for recurring transactions:
Parameter | Allowed values | Description |
---|---|---|
extraData.recurringEndDate | required - YYYY-MM-DD | |
extraData.recurringFrequency | required 28 days * Month - 6 month = 168 | |
extraData.recurringNumberOfPayments | optional | |
extraData.recurringOriginalPurchaseDate | YYYY-MM-DDTHH:MM:SSZ - empty = currentDate | |
extraData.recurringSequenceNumber | This field is mandatory for Cartes Bancaires recurring transactions on Credit Mutuel-CIC - (1st, 2, 3, ..) | |
extraData.recurringType | (1,2,3,4) => (Registration/First transaction, Subsequent transaction, Modification, Cancellation) | |
extraData.recurringOccurrence | 01-12 - see Cybsersource documentation for description of the values | |
extraData.recurringValidationIndicator | 0,1 | |
extraData.recurringAmountType | 1 = Fixed amount, 2 = Recurring with maximum amount | |
extraData.recurringMaximumAmount | Maximum amount. Refer to Cybersource documentation. |
Parameter | Required | Description |
---|---|---|
extraData.MITReason | false | Merchant initiated Transaction reason. |
extraData.originalAmount | false | Original amount of the preauthorize. |
customer.billingAddress1 | true | Mapped to billTo.address1 |
customer.billingAddress2 | false | Mapped to billTo.address2 |
customer.billingState | true | Mapped to billTo.administrativeArea |
customer.billingCountry | true | Mapped to billTo.country |
customer.email | true | Mapped to billTo.email |
customer.firstName | true | Mapped to billTo.firstName |
customer.lastName | true | Mapped to billTo.lastName |
customer.billingCity | true | Mapped to billTo.locality |
customer.billingPostcode | true | Mapped to billTo.postalCode |
customer.billingPhone | false | Mapped to billTo.phoneNumber |
customer.shippingAddress1 | false | Mapped to shipTo.address1 |
customer.shippingAddress2 | false | Mapped to shipTo.address2 |
customer.shippingState | false | Mapped to shipTo.administrativeArea |
customer.shippingCountry | false | Mapped to shipTo.country |
customer.shippingFirstname | false | Mapped to shipTo.firstName |
customer.shippingLastname | false | Mapped to shipTo.lastName |
customer.shippingCity | false | Mapped to shipTo.locality |
customer.shippingPostCode | false | Mapped to shipTo.postalCode |
customer.shippingPhone | false | Mapped to shipTo.phoneNumber |
customer.extraData.shippingEmail | false | Mapped to shipTo.email |
customer.extraData.buyerVatRegistrationNumber | false | buyerInformation.vatRegistrationNumber |
customer.extraData.companyTaxId | false | buyerInformation.companyTaxId |
customer.extraData.language | false | buyerInformation.language |
customer.gender | false | buyerInformation.gender |
customer.extraData.buyerMobilePhone | false | buyerInformation.mobilePhone |
customer.extraData.personalIdentificationType | false | buyerInformation.personalIdentification.type |
customer.extraData.personalIdentificationId | false | buyerInformation.personalIdentification.id |
customer.extraData.personalIdentificationIssuedBy | false | buyerInformation.personalIdentification.issuedBy |
customer.identification | false | buyerInformation.merchantCustomerId |
customer.ipAddress | false | deviceInformation.ipAddress |
The following extraData
fields are necessary or optional for the Cybersource Decision Manager
(Please refer to the Cybersource Documentation for the possible values and the requirements):
Parameter | Allowed values | Description |
---|---|---|
extraData.useDecisionManager | true |
Required if DM is used. Send true if you want to send the decision manager data to cybersource. |
extraData.dm_profile | Decision manager profile name not needed if default profile is used. | |
extraData.dm_lastChangeDate | last change of account data | |
extraData.dm_creationHistory | GUEST, NEW_ACCOUNT, EXISTING_ACCOUNT | |
extraData.dm_modificationHistory | IF EXISTING_ACCOUNT = ACCOUNT_UPDATED_NOW or ACCOUNT_UPDATED_PAST | |
extraData.dm_passwordHistory | PASSWORD_CHANGED_NOW, PASSWORD_CHANGED_PAST, PASSWORD_NEVER_CHANGED | |
extraData.dm_createDate | IF EXISTING_ACCOUNT = creation Date | |
extraData.dm_pwChangeDate | IF PASSWORD_CHANGED_PAST = change Date | |
extraData.dm_firstUseOfShippingAddress | IF not GUEST = true/false | |
extraData.dm_shippingAddressUsageDate | Current date if not GUEST and firstUseOfShippingAddress is false | |
extraData.dm_accountPurchases | Number of Purchases | |
extraData.dm_addCardAttempts | Number of add card attempts in last 24 hours. | |
extraData.dm_suspiciousActivities | Indicates previous suspicious activities recogniced by the merchant. | |
extraData.dm_paymentAccountHistory | PAYMENT_ACCOUNT_EXISTS, PAYMENT_ACCOUNT_ADDED_NOW (only for NEW_ACCOUNT and EXISTING_ACCOUNT) | |
extraData.dm_paymentAccountDate | IF PAYMENT_ACCOUNT_EXISTS add date | |
extraData.dm_transactionCountDay | Number of transactions in last 24 hours. (Success & abandoned) | |
extraData.dm_transactionCountYear | Number of transactions in the last year. (Success & abandoned) | |
extraData.dm_auxiliaryData | List of Key value pairs. E.g key1=value1&key2=value2 |
Parameter | Required | Description |
---|---|---|
extraData.japanPaymentOptionPaymentMethod | false | For possible values see Cybersource API reference |
extraData.japanPaymentOptionBonuses | false | For possible values see Cybersource API reference |
extraData.japanPaymentOptionBonusMonth | false | For possible values see Cybersource API reference |
extraData.japanPaymentOptionSecondBonusMonth | false | For possible values see Cybersource API reference |
extraData.japanPaymentOptionBonusAmount | false | For possible values see Cybersource API reference |
extraData.japanPaymentOptionSecondBonusAmount | false | For possible values see Cybersource API reference |
extraData.japanPaymentOptionPreapprovalType | false | For possible values see Cybersource API reference |
extraData.japanPaymentOptionInstallments | false | For possible values see Cybersource API reference |
extraData.japanPaymentOptionTerminalId | false | For possible values see Cybersource API reference |
extraData.japanPaymentOptionFirstBillingMonth | false | For possible values see Cybersource API reference |
extraData.japanPaymentOptionBusinessName | false | For possible values see Cybersource API reference |
extraData.japanPaymentOptionBusinessNameKatakana | false | For possible values see Cybersource API reference |
extraData.japanPaymentOptionJis2TrackData | false | For possible values see Cybersource API reference |
extraData.japanPaymentOptionBusinessNameAlphaNumeric | false | For possible values see Cybersource API reference |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Credit card | payment.js, Redirect & iFrame Form | all |
description
(required)useragent
(extra data, required): The browser's useragent (even for recurring transactions).descriptor
(extra data, optional): needs to be enabled on Daleny's side too.identification
(customer, required)email
(customer, required)IP address
(customer, required)Reference Transaction
(maybe required): Depending on your MCC, it might be required to reference a 3DS authed transaction for payouts.3D-Secure Verification parameters are
supported, however MANDATORY
will behave like OPTIONAL
. That is, if the card
is not enrolled for 3DS authentication, the transaction will pass unauthenticated.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
SMS-Pay (DCB & PSMS) | Full-Page Redirect | Debit, Register, Refund |
Credit card | payment.js, Redirect & iFrame Form | all |
EPS | Redirect | Debit only |
SMS-Pay
Field | Type | Required | Description |
---|---|---|---|
extraData | object | false | object containing key-value pairs (string-to-string) |
↳extraData.serviceName | string | false / true | will be displayed in on the Dimoco Checkout - Mandatory if Debit is with Register |
↳extraData.promptProductArgs | string | false | can be filled with a JSON String which will be displayed on the Dimoco Checkout e.g. {"pic":{"img":"https://urlToImage","alt":"The Ring"},"desc":{"de":"Cooler Ring","en":"Cool Ring"}} if not set the description field will be used instead |
↳extraData.promptMerchantArgs | string | false | can be filled with a JSON String which will be displayed on the Dimoco Checkout e.g. {"logo":{"img":"https://urlToImage","alt":"Ring Store"}} |
Depending on the underlying country of the MSISDN (mobile subscriber integrated services digital network number), the final payment might be via DCB or PSMS.
Country | Method |
---|---|
AT | DCB |
BA | PSMS |
BE | DCB |
BG | PSMS |
CH | DCB & PSMS |
CZ | DCB & PSMS |
DE | DCB |
DK | DCB |
ES | DCB |
FI | DCB & PSMS |
FR | DCB |
GR | DCB |
HR | DCB |
HU | DCB |
NL | DCB |
false | DCB |
PL | DCB |
RO | PSMS |
RS | PSMS |
RU | PSMS |
SE | DCB |
SI | DCB & PSMS |
SK | PSMS |
TR | DCB |
UK | DCB |
For EPS you can retrieve the bank list via the Options request identifier epsBankList
.
You can display this list to your customer in order to pre-select the desired bank.
The result contains a list of banks available for EPS, with BIC code as key and
bank name as value. The chosen BIC code of the chosen bank should then be passed
as bic
element in the IbanCustomer
element of the XML.
Payment Method | TransactionFlows | Transaction Types |
---|---|---|
VAPermata | Full-Page Redirect or How to pay data as JSON | Debit, Refund |
VAMandiri | Full-Page Redirect or How to pay data as JSON | Debit, Refund |
VACIMB | Full-Page Redirect or How to pay data as JSON | Debit, Refund |
VABRI | Full-Page Redirect or How to pay data as JSON | Debit, Refund |
VABRI | Full-Page Redirect or How to pay data as JSON | Debit, Refund |
Name | Type | Required | Description |
---|---|---|---|
customer.firstName |
string | true | Customer first name that will be displayed on acquirer channel when do inquiry |
customer.lastName |
string | true | Customer last name that will be displayed on acquirer channel when do inquiry |
Name | Type | Required | Description |
---|---|---|---|
extraData.reusable_status |
boolean | false | For VA that can be paid more than once, set this to true (by default equals to false). |
extraData.expired_time |
integer | false | Virtual account expiration time in minutes format (by default equals to 60). |
extraData.ref_info.ref_name |
string | false | Additional info that will be display on the acquirer channel (eg. ATM, Internet Banking) when customer do inquiry (only for VAPermata). |
extraData.ref_info.ref_value |
string | false | Additional info that will be display on the acquirer channel (eg. ATM, Internet Banking) when customer do inquiry. This is the value of the ref.name above (only for VAPermata). |
customer.email |
string | false | Customer email |
extraData.info |
string | false | Additional info that will be display on BNI channel. |
extraData.info1 |
string | false | Additional info that will be display on the acquirer channel (eg. ATM, Internet Banking) when customer do inquiry (only for VAMandiri, VABRI, VACIMB) |
extraData.info2 |
string | false | Additional info that will be display on the acquirer channel (eg. ATM, Internet Banking) when customer do inquiry (only for VAMandiri, VABRI, VACIMB) |
extraData.info3 |
string | false | Additional info that will be display on the acquirer channel (eg. ATM, Internet Banking) when customer do inquiry (only for VAMandiri, VABRI, VACIMB) |
extraData.info4 |
string | false | Additional info that will be display on the acquirer channel (eg. ATM, Internet Banking) when customer do inquiry (only for VABRI) |
extraData.info5 |
string | false | Additional info that will be display on the acquirer channel (eg. ATM, Internet Banking) when customer do inquiry (only for VABRI) |
extraData.additional_info |
string | false | Merchant can send additional data through this parameter and will be get the data when notify payment (only for VABNI) |
Name | Type | Required | Description |
---|---|---|---|
description |
string | true | Transaction description (required only for refund transaction). |
customer.firstName |
string | true | Customer first name. |
customer.lastName |
string | true | Customer last name. |
customer.email |
string | true | Customer email required only if customer.extraData.phone not present |
customer.extraData.phone |
string | true | Customer phone number. required only if customer.email not present |
extraData.bank_code |
integer | true | Destination bank code required only if extraData.destination_type equals to BANK. |
extraData.original_transaction_date |
string | true | extraData.original_transaction_date required if merchant want to refund using settlement fund. (YYYY-MM-DD) |
Name | Type | Required | Description |
---|---|---|---|
Debit Secret Key | string | true | The secret key for debit provided by Doku. |
extraData.debitClientId | string | true | The client id for debit provided by Doku. |
extraData.refundClientId | string | false | The client id for refund provided by Doku required when using Doku refund API. |
extraData.refundSecretKey | string | false | The secret key for refund provided by Doku required when using Doku refund API. |
extraData.returnHowToPayAsJson | boolean | false | This configuration used to enable getting the how to pay data in JSON format. |
extraData.useSettlementFundToRefund | boolean | false | This configuration used to enable using settlement fund refund. |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | payment.js, Full-Page Redirect | Register, Debit, Preauthorize, Capture, Refund, Void, Moto |
Parameter | Required | Description |
---|---|---|
customer.identification | true | Unique customer identifier generated by merchant |
Parameter | Required | Description |
---|---|---|
customer.identification | conditional | Required if merchant wants to use tokenization feature |
amount | true | Transaction amount: decimals separated by a "." (dot) |
Parameter | Required | Description |
---|---|---|
amount | true | Transaction amount: decimals separated by a "." (dot) |
currency | true | 3 letter currency code |
All transactionIndicators
within Doku including CARDONFILE_MERCHANT
, RECURRING
, CARDONFILE
are associated with MOTO
.
for thes transactions, the optional parametersextraData.tenor
and extraData.plan_id
can be provided.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Credit card | iFrame Form & payment.js Integration | Debit, Preauthorize, Capture, Void, Register, Deregister, Refund |
BankTransfer | Full-Page Redirect | Debit, Payout |
Abitab | Full-Page Redirect | Debit |
Baloto | Full-Page Redirect | Debit |
BancoNacional | Full-Page Redirect | Debit |
BNServicios | Full-Page Redirect | Debit |
Boleto | Full-Page Redirect | Debit |
Cash | Full-Page Redirect | Debit |
Davivienda | Full-Page Redirect | Debit |
Efecty | Full-Page Redirect | Debit |
Fawry | Full-Page Redirect | Debit |
Nequi | Full-Page Redirect | Debit |
Oxxo | Full-Page Redirect | Debit |
PagoEfectivo | Full-Page Redirect | Debit |
PagoExpress | Full-Page Redirect | Debit |
PagoFacil | Full-Page Redirect | Debit |
Pix | Full-Page Redirect | Debit |
PuntoPago | Full-Page Redirect | Debit |
PuntoXpress | Full-Page Redirect | Debit |
PayCash | Full-Page Redirect | Debit |
RapiPago | Full-Page Redirect | Debit |
RedPagos | Full-Page Redirect | Debit |
Serviepag | Full-Page Redirect | Debit |
SevenEleven | Full-Page Redirect | Debit |
Sinpe | Full-Page Redirect | Debit |
Speedmart | Full-Page Redirect | Debit |
Tucan | Full-Page Redirect | Debit |
Wafacash | Full-Page Redirect | Debit |
VPay | Full-Page Redirect | Debit, |
Credit card
Field | Required |
---|---|
customer.firstName | true |
customer.lastName | true |
customer.billingCountry | true |
customer.nationalId | true |
customer.billingAddress1 | true in India |
Note: 3D-Secure behaviour is dependent on dLocal's configuration. For Mexico you may set 3dsecure
explicitly to OPTIONAL
.
APM & BankTransfer
Field | Required |
---|---|
customer.firstName | country dependent |
customer.lastName | country dependent |
customer.email | country dependent |
customer.billingPhone | country and method dependent |
customer.nationalId | country dependent |
extraData.bank_id | true for BankTransfer |
Depending on the country and receiving bank, a variety of additional parameter may be required (refer to dLocal's documentation).
For BankTransfer, you may retrieve a list of available banks in a country via
the Options request identifier getBankList
. You can display this list to your
customer having him selecting his bank. The selected bank code should be
submitted as bank_id
in extra data.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | Full-Page Redirect | Debit |
EasyPay | Full-Page Redirect & Server-to-server | Debit |
invoice
(optional): If missing, a random id will be generated. The invoice will always be included in the response.success URL
(required for redirect)cancel URL
(required for redirect)Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Credit card | iFrame Form & payment.js Integration | Debit, Preauthorize, Capture, Void, Register, Deregister, Refund |
Please refer to EBANX to see which customer data are necessary to process in certain countries.
Field | Type | Required |
---|---|---|
customer.firstName | string | conditional |
customer.lastName | string | conditional |
customer.billingCountry | string | conditional |
customer.nationalId | string | conditional |
customer.billingAddress | string | conditional |
customer.extraData.streetNumber | string | conditional |
customer.extraData.streetComplement | string | conditional |
You will have to use the following extraData keys:
Name | Type | Required |
---|---|---|
extraData | object | false |
↳extraData.instalments | string | false |
↳extraData.subAccountName | string | false |
↳extraData.subAccountImageUrl | string | false |
↳extraData.deviceChannel | string | false |
↳extraData.profileId | string | false |
↳extraData.profileName | string | false |
↳extraData.recurringPayment | bool | false |
↳extraData.loyalCustomer | bool | false |
↳extraData.customerAccountCreateDate | string | false |
↳extraData.deviceId | string | false |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Baloto | Full-Page Redirect | Debit & Refund |
BancoDoBrasil | Full-Page Redirect | Debit & Refund |
BankTransfer | Full-Page Redirect | Debit, Refund & Payout |
Banrisul | Full-Page Redirect | Debit & Refund |
Boleto | Full-Page Redirect | Debit & Refund |
Bradesco | Full-Page Redirect | Debit & Refund |
EbanxAccount | Full-Page Redirect | Debit & Refund |
Eft | Full-Page Redirect | Debit & Refund |
Itau | Full-Page Redirect | Debit & Refund |
Multicaja | Full-Page Redirect | Debit & Refund |
Oxxo | Full-Page Redirect | Debit & Refund |
PagoEfectivo | Full-Page Redirect | Debit & Refund |
PagosNet | Full-Page Redirect | Debit & Refund |
SafetyPay | Full-Page Redirect | Debit & Refund |
SafetyPayCash | Full-Page Redirect | Debit & Refund |
SafetyPayOnline | Full-Page Redirect | Debit & Refund |
Sencillito | Full-Page Redirect | Debit & Refund |
Servipag | Full-Page Redirect | Debit & Refund |
Spei | Full-Page Redirect | Debit & Refund |
Webpay | Full-Page Redirect | Debit & Refund |
Field | Required |
---|---|
customer.firstName | true |
customer.lastName | true |
customer.email | true |
customer.billingPhone | false |
customer.billingAddress1 | false |
customer.billingCity | false |
customer.billingPostcode | false |
customer.billingState | false |
customer.billingCountry | true |
Field | Required |
---|---|
description | true |
Field | Required |
---|---|
customer.firstName | true |
customer.lastName | true |
customer.email | true |
customer.birthDate | true |
customer.iban | true |
customer.bic | true for Brazil (=bank branch) |
customer.billingCountry | true |
customer.nationalId | true |
customer.extraData.documentType | true |
customer.extraData.bankDetails | true |
customer.extraData.bankName | true |
customer.extraData.termsAcceptedAt (format: YYYY-MM-DD HH:MM:SS) | Depending on EBANX business account |
You can find more information about the options request here: Options Request
EBANX supports 2 endpoints for retrieving a list of available banks for all supported countries. The results may be used for providing the correct parameters for the payout request.
They're available with the options request identifier getAvailableBanks
and
getBankDetails
.
Because of a restriction on Ecommpay side, you need to set the particular setting "Accept postbacks from other connectors (list GUIDs comma-separated)" inside the connector where you passed the notification URL to Ecommpay if you want to configure multiple connectors.
As a value you need to pass the connector ID from all other Ecommpay connectors
of the same account, example: CO-8ce8-4ed7-e9d9-9261-715a-fad8,CO-02c7-62dd-d0e8-5918-6373-7e75
.
With this setting, all connectors will work with the same notification URL.
This setting only needs to be set on the connector where you passed the notification
URL to Ecommpay.
If you only have one connector per Ecommpay account, you don't need to configure this setting.
Payment Method | Transaction Flows | Transaction Types | Supported Currencies |
---|---|---|---|
Alipay | Redirect | Debit, Refund* ** | AUD, CAD, CNY, EUR, GBP, HKD, JPY, SGD, USD |
China Union Pay (CUP P2P) | Redirect | Debit, Payout* | CNY |
DOKU Wallet | Redirect | Debit, Payout* | IDR |
Nganluong Wallet | Redirect | Debit, Payout* | VND |
Bank Transfer Indonesia | Redirect | Debit, Payout* | IDR |
Bank Transfer Malaysia | Redirect | Debit, Payout* | MYR |
Bank Transfer Philippines | Redirect | Debit, Payout* | PHP |
Bank Transfer Korea | Redirect | Debit, Payout* | KRW |
Bank Transfer Thailand | Redirect | Debit, Payout* | THB |
Bank Transfer Thailand QR | Redirect | Debit | THB |
Bank Transfer Vietnam | Redirect | Debit, Payout* | VND |
Bank Transfer Vietnam QR | Redirect | Debit | VND |
*Payout/Refund doesn't require any customer interaction or redirection.
**For Alipay refunds you have to activate the merchant_refund_id
field on Ecommpay side. Please talk to your Ecommpay Account Manager for further information.
Extra Data | Required | Description |
---|---|---|
Customer - Identification | true | Unique customer identification, should be used on multiple payments if it is the same customer |
Customer - First name | true | For Korea: the name entered needs to be the same as the account holder |
Customer - Last name | true | For Korea: the surname entered needs to be the same as the account holder |
Customer - EMail | true | |
Customer - Phone | false | |
Customer - Country | false | |
Customer - City | false | |
Customer - State | false | |
Customer - Postcode | false | |
Customer - National Id | false |
Extra Data | Required | Description |
---|---|---|
Customer - Identification | true | Unique customer identification, should be used on multiple payments if it is the same customer |
Customer - First name | true | |
Customer - Last name | true | |
Customer - EMail | true | |
Customer - IP Address | true | |
extraData.account_number | true | Customer account number |
extraData.bank_id | true | Bank identifier* |
extraData.bank_branch | true | Bank branch identifier |
extraData.bank_city | true | Bank branch city |
extraData.region_id | true | Region identifier** |
*To retrieve a list of bank identifiers you need to send an options request with the identifier debit-bank-list
or payout-bank-list
and as parameter the bank name (available: vietnam, malaysia, philippines, indonesia, thailand).
** To retrieve a list of region identifiers you need to send an options request with the identifier region-list
and as parameter the bank name(available: vietnam, malaysia, philippines, indonesia, thailand).
You can find more information about the options request here: Options Request
Extra Data | Required | Description |
---|---|---|
Customer - Identification | false | Unique customer identification, should be used on multiple payments if it is the same customer |
Customer - First name | false | |
Customer - Last name | false | |
Customer - EMail | false | |
Customer - Phone | false | |
Customer - Country | false | |
Customer - City | false | |
Customer - State | false | |
Customer - National Id | false |
Extra Data | Required | Description |
---|---|---|
Customer - Identification | true | Unique customer identification, should be used on multiple payments if it is the same customer |
Customer - First name | true | |
Customer - Last name | true | |
Customer - IP Address | true | |
Customer - EMail | true | |
Customer - Phone | true | |
Customer - Address | true | |
Customer - Country | true | Need to be CN |
Customer - City | true | |
Customer - State | true | |
Customer - Postcode | true | |
extraData.bank_id | true | Bank identifier* |
extraData.bank_branch | true | Bank branch identifier |
extraData.bank_city | true | Bank branch city |
extraData.region_id | true | Region identifier** |
extraData.doc_number | false | Document number |
*To retrieve a list of bank identifiers you need to send an options request with the identifier debit-bank-list
or payout-bank-list
and as parameter the bank name (available: vietnam, malaysia, philippines, indonesia, thailand).
**To retrieve a list of region identifiers you need to send an options request with the identifier region-list
and as parameter the bank name (available: vietnam, malaysia, philippines, indonesia, thailand).
You can find more information about the options request here: Options Request
Extra Data | Required | Description |
---|---|---|
Description | true | |
Customer - Ip Address | true |
Extra Data | Required | Description |
---|---|---|
Customer - Identification | true | Unique customer identification, should be used on multiple payments if it is the same customer |
Customer - IP Address | true | |
extraData.account_number | true |
Extra Data | Required | Description |
---|---|---|
Customer - Identification | true | Unique customer identification, should be used on multiple payments if it is the same customer |
Customer - First name | true | |
Customer - Last name | true | |
Customer - EMail | true | |
Customer - IP Address | true | |
Customer - Phone | true | |
Customer - City | true | |
Customer - Country | true | |
Customer - Birthday | true | |
extraData.wallet_number | true | Customer account number |
extraData.doc_number | true | Document number |
extraData.doc_type | true | Document type |
extraData.doc_issue_country | true | An ISO 3166-1 (alpha-2) code of country that issued the document |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Credit Card | Server-to-Server, iFrame Form & payment.js Integration | Debit, Deregister, Refund, Register |
Data | Type | Required | Description |
---|---|---|---|
customer.firstName | String | true | Customers firstname |
customer.lastName | String | true | Customers lastname |
customer.billingAddress1 | String | true | Customers billing address |
customer.billingPostcode | String | true | Customers billing post code |
customer.billingCity | String | true | Customers billing city |
customer.billingCountry | ISO 3166-1 alpha-2 country code | true | Customers billing country |
customer.email | String | true | Customers email |
customer.ipAddress | IPv4 or IPv6 address | true | IPv4 or IPv6 address of customer |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | All |
SEPA Direct Debit | iFrame Form & Server-to-server | All |
none
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
SEPA Direct Debit | Server-to-Server | Debit,Debit with Register,Recurring Debit,Deregister,Refund,Register,Payout,Chargeback,Chargeback-reversal |
Data | Type | Required | Description |
---|---|---|---|
description | String | true | Description of the transaction for later use |
currency | String | true | Base currency for the order with three-character currency code |
amount | Number | true | Amount of transaction in minor currency unit |
remote_ip | String | true | IPv4 or IPv6 address of customer |
iban | String | true | Customer’s IBAN number |
first_name | String | true | Customer first name |
last_name | String | true | Customer last name |
address1 | String | true | Primary address |
zip_code | String | true | Postal code |
city | String | true | City |
country | String | true | Country code |
Data | Type | Required | Description |
---|---|---|---|
description | String | true | Description of the transaction for later use |
currency | String | true | Base currency for the order with three-character currency code |
amount | Number | true | Amount of transaction in minor currency unit |
remote_ip | String | true | IPv4 or IPv6 address of customer |
Data | Type | Required | Description |
---|---|---|---|
description | String | true | Description of the transaction for later use |
currency | String | true | Base currency for the order with three-character currency code |
amount | Number | true | Amount of transaction in minor currency unit |
Data | Type | Required | Description |
---|---|---|---|
description | String | true | Description of the transaction for later use |
currency | String | true | Base currency for the order with three-character currency code |
amount | Number | true | Amount of transaction in minor currency unit |
remote_ip | String | true | IPv4 or IPv6 address of customer |
iban | String | true | Customer’s IBAN number |
bic | String | true | SWIFT/BIC code of the customer’s bank |
first_name | String | true | Customer first name |
last_name | String | true | Customer last name |
address1 | String | true | Primary address |
zip_code | String | true | Postal code |
city | String | true | City |
country | String | true | Country code |
AT, BE, CY, EE, FI, FR, DE, GR, IE, IT, LV, LT, LU, MT, MC, NL, PT, SK, SM, SI, ES
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Credit Card | Server-to-Server, iFrame Form & payment.js Integration | Debit, Deregister, Refund, Register |
Data | Type | Required | Description |
---|---|---|---|
customer.firstName | String | true | Customers firstname |
customer.lastName | String | true | Customers lastname |
customer.billingAddress1 | String | true | Customers billing address |
customer.billingPostcode | String | true | Customers billing post code |
customer.billingCity | String | true | Customers billing city |
customer.billingCountry | ISO 3166-1 alpha-2 country code | true | Customers billing country |
customer.email | String | true | Customers email |
customer.ipAddress | IPv4 or IPv6 address | true | IPv4 or IPv6 address of customer |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
ESR | Server-To-Server | Debit |
additionalId1
: mandatory - must contain the reference number for the bill.description
: optional - description for the billcustomer.firstName
: optionalcustomer.lastName
: optionalcustomer.billingAddress1
: optionalcustomer.billingPostcode
: optionalcustomer.billingCity
: optionalcustomer.billingCountry
: optionalIn the response you will find the key qrCode
within the extraData
element.
This contains the base64-encoded Image for the QR Code.
The APIs will allow the initiation of a payment from any payment account to another payment account in Europe, held by any reachable ASPSP provided the account holder has given his explicit consent as is stipulated by the Payment Services Directive
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Bank Transfer | Redirect | Debit |
Name | Type | Required | Description |
---|---|---|---|
extraData.AspspId | string | false | The Id of the ASPSP from bank list. |
extraData.debtorAccount | string | false | (IBAN) Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.. |
customer.shippingAddress1 (Customer) | string | false | The first address line |
customer.shippingAddress2 (Customer) | string | false | The second address line |
customer.shippingCity (Customer) | string | false | The address suburb, town or county |
customer.shippingCountry (Customer) | string | false | The two-character country code |
customer.shippingPostcode (Customer) | string | false | The address postcode |
In order to get the bank list from reach directory an Options Request is required.
Please use getBankList
as an identifier e.g. POST /options/{apiKey}/getBankList.
{
"parameters": {
"countryCode": "FR"
}
}
You can find more information about the options request here: Options Request
Name | Type | Required | Description |
---|---|---|---|
parameters.countryCode | string | false | The two-character country code |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | Debit, Register, Preauthorize, Capture, Void, Refund, Deregister |
none
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Bank Transfer | Server-to-Server | debit, register and payout |
Parameter | Required | Company or Person | Description |
---|---|---|---|
customer.extraData.document_type | true | both | Company/Person document type. Possible options: 'cnpj', 'tax_id' for companies and 'cpf', 'passport' for person |
customer.extraData.document_number | true | both | Company/Person document number |
customer.extraData.fiscal_country | true | both | Company/Person fiscal country e.g "BRA" |
customer.extraData.social_name | true | company | Company social name |
customer.company | true | company | Company name |
customer.extraData.documents | false | both | Documents as defined by Facilitapay documentation as JSON string |
customer.email | false | both | Company/Person email address |
customer.birthDate | false | person | Person birth date |
customer.billingPhone | false | both | Company/Person phone number |
customer.extraData.creation_date | false | company | Company creation date e.g. 2015-04-01 |
customer.billingAddress1 | false | both | Company/Person address street name |
customer.billingAddress2 | false | both | Company/Person address number |
customer.extraData.address_complement | false | both | Company/Person address complement |
customer.billingPostcode | false | both | Company/Person address postal code |
customer.billingCity | false | both | Company/Person address city |
customer.billingState | false | both | Company/Person address state |
customer.billingCountry | false | both | Company/Person address state |
customer.extraData.main_activity | false | company | Company/Person main activity |
customer.extraData.activity_type | false | company | Company activity type. Possible options: other, open-capital, non-profit |
customer.extraData.net_value | false | company | Company net value |
customer.extraData.net_monthly_average_income | false | person | Person net monthly average income |
customer.extraData.partners | false | company | Partners as defined by Facilitapay documentation as JSON string |
customer.extraData.account_number | false | both | Company/Person account number |
customer.extraData.branch_number | false | both | Company/Person branch number |
customer.extraData.owner_document_number | false | both | Account owner CPF/CNPJ |
customer.extraData.owner_name | false | both | Account owner name |
customer.extraData.branch_country | false | both | Account branch country |
customer.extraData.bank | false | both | Bank object as defined by Facilitapay documentation as JSON string |
customer.extraData.currency | false | both | Account currency |
customer.iban | false | both | IBAN Number |
customer.extraData.routing_number | false | both | Routing number |
Parameter | Required | Description |
---|---|---|
extraData.exchange_currency | true | Currency for exchanging |
same parameters as for register | only if no referenced register or debit with register is submitted |
Parameter | Required | Description |
---|---|---|
extraData.exchange_currency | true | Currency for exchanging |
same parameters as for register | only if no referenced register or debit with register is submitted |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | All (no recurring, CVV must be present) |
3D-Secure Verification parameters are ignored entirely, however the underlying gateway manages and changes the behavior of 3D-Secure requirements on demand.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | All |
Creditcard
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
BitCoin | Full-Page Redirect | Debit, Payout |
You can use the following extraData
keys, which will be passed in the
corresponding fields to Finrax:
Key | Values | Description |
---|---|---|
withdrawCurrency | BTC,ETH,XRP.. | Cryptocurrency abbreviation that should be withdrawn |
targetAmountPolicy | fiat, crypto | Specifies if the targetAmount will be requested in fiat or crypto |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
BankTransfer | Full-Page Redirect | Debit, Register |
Extra Data | Required | Description |
---|---|---|
checkAmount | Required for risk check | Amount to be checked against |
checkCurrency | Required for risk check | Currency, e.g. EUR |
checkBalanceOverview | Not required | If set to true, the current running total of the account will be returned |
checkChargebacks | Not required | If set to true, the number of detected chargeback transactions for the account will be returned |
checkName | Required for name risk check | Last name to be checked against. Both first and last name are required for the check |
checkFirstname | Required for name risk check | First name to be checked against. Both first and last name are required for the check |
checkAccountSnapshotDays | Required for snapshot risk check if from and to date are not set | Range in days which should be used (between 10 and 365) |
checkAccountSnapshotFrom | Required for snapshot risk check if days are not set | A date in the format yyyy-mm-dd |
checkAccountSnapshotTo | Required for snapshot risk check if days are not set | A date in the format yyyy-mm-dd |
checkAccountSnapshotFilters | Not required | An array of strings to filter the snapshot (e.g. ["income", "rent", "living-cost", "credit", "expenditure", "revenue", "salary"] ) |
checkAccountSnapshotAllAccounts | Not required | If set to true, returns snapshot for all accounts including their turnovers |
checkAccountSnapshotAllTags | Not required | If set to true, returns the full categorization of the turnovers in the snapshot |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Direct Carrier Billing (SMS) | Redirect & iFrame Form | Debit only |
none
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | Server-To-Server | Debit, Register, Preauthorize, Capture, Refund, Deregister, Recurring Debit/Preauthorize |
Parameter | Required | Description |
---|---|---|
customer.billingPhone | true | Customer phone number |
customer.email | true | Customer email address |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
GiroPay | Full-Page Redirect | Debit only |
EPS | Full-Page Redirect | Debit only |
none
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
BankTransfer | Full-Page Redirect, Server-To-Server | Debit, Register, Deregister, Refund |
Name | Type | Required | Description |
---|---|---|---|
description | string | true | A human-readable description of the payment. This will be displayed to the payer when authorising the billing request. |
Name | Type | Required | Description |
---|---|---|---|
extraData.charge_date | string | false | A future date on which the payment should be collected. If not specified, the payment will be collected as soon as possible. If the value is before the mandate’s next_possible_charge_date creation will fail. If the value is not a working day it will be rolled forwards to the next available one. |
reference | string | false | An optional reference that will appear on your customer’s bank statement. The character limit for this reference is dependent on the scheme. |
customer.company | string | false | Customer’s company name. Required unless a given_name and family_name are provided. For Canadian customers, the use of a company_name value will mean that any mandate created from this customer will be considered to be a "Business PAD" (otherwise, any mandate will be considered to be a "Personal PAD"). |
customer.company | string | false | Customer’s company name. Required unless a given_name and family_name are provided. For Canadian customers, the use of a company_name value will mean that any mandate created from this customer will be considered to be a "Business PAD" (otherwise, any mandate will be considered to be a "Personal PAD"). |
customer.firstName | string | false | Customer’s surname. Required unless a company_name is provided. |
customer.lastName | string | false | Customer’s first name. Required unless a company_name is provided. |
customer.billingPhone | string | false | ITU E.123 formatted phone number, including country code. |
customer.billingAddress1 | string | false | The first line of the customer’s address. |
customer.billingAddress2 | string | false | The second line of the customer’s address. |
extraData.address_line3 | string | false | The third line of the customer’s address. |
customer.email | string | false | Customer’s email address. Required in most cases, as this allows GoCardless to send notifications to this customer. |
customer.billingCity | string | false | The city of the customer’s address. |
customer.billingCountry | string | false | ISO 3166-1 alpha-2 code. |
customer.billingState | string | false | The customer’s address region, county or department. For US customers a 2 letter ISO3166-2:US state code is required (e.g. CA for California). |
customer.billingPostcode | string | false | The customer’s postal code. |
extraData.lang | string | false | ISO 639-1 code. Used as the language for notification emails sent by GoCardless. Currently only "en", "fr", "de", "pt", "es", "it", "nl", "da", "nb", "sl", "sv" are supported. If this is not provided, the language will be chosen based on the country_code (if supplied) or default to "en" |
customer.paymentData.ibanData.iban | string | false | International Bank Account Number. Alternatively you can provide local details. IBANs are not accepted for Swedish bank accounts denominated in SEK - you must supply local details. |
extraData.danish_identity_number | string | false | For Danish customers only. The civic/company number (CPR or CVR) of the customer. Must be supplied if the customer’s bank account is denominated in Danish krone (DKK). |
extraData.swedish_identity_number | string | false | For Swedish customers only. The civic/company number (personnummer, samordningsnummer, or organisationsnummer) of the customer. Must be supplied if the customer’s bank account is denominated in Swedish krona (SEK). This field cannot be changed once it has been set. |
extraData.account_number | string | false | Bank account number. Alternatively you can provide an iban. |
extraData.account_number_suffix | string | false | Account number suffix (only for bank accounts denominated in NZD). |
extraData.account_type | string | false | Bank account type. Required for USD-denominated bank accounts. Must not be provided for bank accounts in other currencies. |
extraData.bank_code | string | false | Bank code. Alternatively you can provide an iban |
extraData.branch_code | string | false | Branch code. Alternatively you can provide an iban. |
extraData.lock_customer_details | string | false | If true, the payer will not be able to edit their customer details within the flow. Default is false. |
extraData.lock_bank_account | string | false | If true, the payer will not be able to change their bank account within the flow. Default is false. |
Name | Type | Required | Description |
---|---|---|---|
reference | string | false | An optional reference that will appear on your customer’s bank statement. The character limit for this reference is dependent on the scheme. |
GooglePay is not an adapter itself, but a common type of payment supported by some listed adapters.
Only GooglePay protocol version 2 (ECv2) is supported.
You can use GooglePay in your Android app or on your website.
To integrate GooglePay in your Android app please refer to the following links:
To integrate GooglePay in your website please refer to the following links:
For GooglePay transactions acquire a Payment Token through your Android app, or on your website.
Use the following parameters when sending a request to Google and replace
YOUR_MERCHANT_ID
with the GUID of your merchant:
gateway = "YOUR_GATEWAY_PARAMETER"
gatewayMerchantId = "YOUR_MERCHANT_ID"
If you are unsure about your gateway parameter, please contact your account manager.
The resulting token must be submitted in the transactionToken
element of the
Debit/Preauthorize, prefixed with googlepay:
Example XML:
<transactionToken>
googlepay:{"signature":"...","intermediateSigningKey":{"signedKey":"{\"keyValue\":\"...\",\"keyExpiration\":\"...\"}","signatures":["..."]},"protocolVersion":"ECv2","signedMessage":"{\"encryptedMessage\":\"...\",\"ephemeralPublicKey\":\"...\",\"tag\":\"...\"}"}
</transactionToken>
Example JSON:
{
"transactionToken": "googlepay:{\"signature\":\"...\", ...}\"}",
...
}
A billing address is not required for processing transactions, therefore no billing address parameters need to be given with a card.
PAN_ONLY
CRYPTOGRAM_3DS
AMEX
DISCOVER
INTERAC
JCB
MASTERCARD
VISA
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Bank Transfer | Full Page Redirect | Debit |
Credit Card | Full Page Redirect | Debit |
HNCB QR | Full Page Redirect | Debit |
Parameter / Name | Type | Required | Allowed Value | Description |
---|---|---|---|---|
MerchantID_CreditCard | String | true | - | Provided by HNCB. Also referred to as "StoreID" |
TerminalID_CreditCard | String | true | - | Provided by HNCB. |
MerID_CreditCard | String | true | - | Provided by HNCB |
CheckID_CreditCard | String | true | - | Provided by HNCB. |
MerchantName_CreditCard | String | true | - | The Merchant Name that gets displayed during the Checkout Process. |
MerchantID_QR | String | true | - | Provided by HNCB. |
TerminalID_QR | String | true | - | Provided by HNCB. |
AcquiringBank_QR | String | true | 3 chars | Provided by HNCB. |
MerchantName_QR | String | true | - | The Merchant Name that is being used to generate the QR Code. |
SecureCode_QR | String | true | - | Provided by HNCB. |
VerificationParameter_QR | String | true | 32 chars | 32 char Hexadecimal String - shared between Merchant and HNCB, required for the QR Encryption. |
DefaultCountryCode_QR | String | true | 3 chars | Required for the QR Code generation - usually consists of three numbers. |
EnterpriseCode_BankTransfer_QR | String | true | 5 chars | Provided by HNCB. Also referred to as "Virtual Account" |
EBillMerchantNumber_BankTransfer | String | true | - | Provided by HNCB. |
PaymentTypeNumber_BankTransfer | String | true | - | Provided by HNCB. |
FeeTypeNumber_BankTransfer | String | true | - | Provided by HNCB. |
HNCB requires a strict format for the OrderNumber (also known as NoticeNumber
in case of the Bank Transfer Payment Method) that is sent to them. The structure
of this Number looks like : 5 chars (EnterpriseCode_BankTransfer_QR
is
automatically taken from the Connector Config) + 11 chars.
Our Gateway requires you to set up a Terminal to your Connector, which will autogenerate a STAN and add it as part of the OrderNumber.
The required currency is AUD (Australian dollar) for Australia and NZD (New Zealand dollar) for New Zealand.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Humm | Full-Page Redirect | Debit, Refund |
Name | Type | Required | Description |
---|---|---|---|
firstName (Customer) | unicode string | false | Customer's first name |
lastName (Customer) | unicode string | false | Customer's last name |
email (Customer) | unicode string | false | Customer email address |
shippingPhone (Customer) | unicode string | false | Customer's phone number |
shippingAddress1 (Customer) | unicode string | false | Shipping address line 1 |
shippingAddress2 (Customer) | unicode string | false | Shipping address line 2 |
shippingCity (Customer) | unicode string | false | Shipping city |
shippingCountry (Customer) | iso-3166-1 alpha-2 | false | Shipping country e.g. AU |
shippingState (Customer) | unicode string | false | Shipping state |
shippingPostcode (Customer) | unicode string | false | Shipping postcode |
shippingFirstName (Customer) | unicode string | false | Customer's first name (Shipping) |
shippingLastName (Customer) | unicode string | false | Customer's last name (Shipping) |
billingAddress1 (Customer) | unicode string | false | Billing address line 1 |
billingAddress2 (Customer) | unicode string | false | Billing address line 2 |
billingCity (Customer) | unicode string | false | Billing city |
billingCountry (Customer) | iso-3166-1 alpha-2 | false | Billing country e.g. AU |
billingState (Customer) | unicode string | false | Billing state |
billingPostcode (Customer) | unicode string | false | Billing postcode |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Visa | Full-Page Redirect | Capture, Debit, Preauthorize, Refund, Void |
Mastercard | Full-Page Redirect | Capture, Debit, Preauthorize, Refund, Void |
Bancontact | Full-Page Redirect | Capture, Debit, Preauthorize, Refund, Void |
Bancontact QR Code | Full-Page Redirect | Capture, Debit, Preauthorize, Refund, Void |
Extra Data | Type | Required | Description |
---|---|---|---|
orderid | String | true | Unique order ID |
description | String | true | The order short description |
currency | String | true | Base currency for the order with three-character currency code |
amount | Number | true | Total order amount |
Extra Data | Type | Required | Description |
---|---|---|---|
operation | String | false | Operation can be either Sale for automatically submitting for capture or Authorization for manually capturing / void |
payment_product_list | String | false | List of payment products to display on the payment page |
basket | String | false | Shopping cart details |
authentication_indicator | String | false | If the payment product is a credit or debit card, this parameter specifies whether 3-D secure authentication should be performed for this transaction. |
Data | Type | Required | Description |
---|---|---|---|
transaction_reference | String | true | The unique identifier of the transaction |
operation | String | true | The operation to perform on the transaction: capture, cancel or refund |
amount | String | true | Amount is required for partial maintenances. Do not specify amount for full captures or refunds. |
If items are given with the transaction data, the following parameters can or must be given. For capture and refund only items that must be captured or refunded have to be sent.
Name | Type | Required | Description |
---|---|---|---|
item.product_reference | string Alphanumeric characters (a-z, A-Z, 0-9) |
true | Unique product reference |
item.quantity | Number | true | Product quantity |
item.name | String | true | Product description |
item.unit_price | Decimal number with explicit decimal point | true | Price of the item |
item.discount | string | true | Discount amount, always 0 or negative |
item.total_amount | Number | true | Unit price X quantity – discount. . The sum of every "total_amount" must be equal to the "amount" sent in the call and it is automatically calculated |
item.extraData.tax_rate | string | true | Tax rate in percentage |
item.extraData.type | string Alphanumeric characters (a-z, A-Z, 0-9) |
true | Type of product Possible values are good, discount or fee |
item.extraData.european_article_numbering | string Alphanumeric characters (a-z, A-Z, 0-9) |
false | European article numbering |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | payment.js, iFrame Form | Register, Debit, Preauthorize, Capture, Refund, Void |
Parameter | Required | Value | Description | |
---|---|---|---|---|
merchantMetaData | true | Merchant meta data | ||
additionalId1 | true | contains the invoice number | ||
item.identification | conditional | Items are not required, but when adding Items, this field is mandatory | ||
item.name | conditional | Items are not required, but when adding Items, this field is mandatory | ||
item.quantity | conditional | Items are not required, but when adding Items, this field is mandatory | ||
item.price | conditional | Items are not required, but when adding Items, this field is mandatory | ||
extraData.Fild1 | false | string | Optional filled for the website owner | |
extraData.Fild2 | false | string | Optional filled for the website owner | |
extraData.Fild3 | false | string | Optional filled for the website owner | |
extraData.sendemail | false | accepts [True, False], default : False | Send the customer a payment confirmation by email | |
extraData.SendHesh | false | accepts [True, False], default : False | send invoice in email | |
extraData.phone | false | string | phone number | |
extraData.sendHeshSMS | false | accepts [True, False] default: False | The invoice send by SMS to cell parameter | |
extraData.EZ_lang | false | accepts [en, he] default: he | Language of invoice and email | |
extraData.EZ_email_text | false | Add additional text into the body of an email | ||
extraData.EZ_comment | false | Add additional text into the body of a invoice document | ||
extraData.EZ_cc_emails | false | An array of valid cc emails the invoice will be sent to | ||
extraData.EZ_vat | false | default = 0.17 | The invoice VAT if not supported the current VAT will be used (format: [1 = 1.00, 0 = 0.00]) | |
extraData.EZ_description | false | Add additional description into the body of a invoice document | ||
extraData.EZ_customer_crn | false | The customer company number/ID/ etc… (BN Number) (Required by law when document value is greater than 5,000 ILS) | ||
extraData.EZ_create_org_as_foreign | false | boolean (accepts [0,1]) default: 0 | Default 0.use when you have permission to create original documents in English or foreign currency. |
Parameter | Required | Vale | Description |
---|---|---|---|
extraData.SendHesh | false | accepts [True, False], default : False | send invoice in email |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Sepa Direct Debit / GlobalCollect | Server-to-Server | All Debit (Initial, Recurring, withRegister), Register, Refund, Chargeback |
Bank Transfer / GlobalCollect | Redirect | Debit, Refund |
Sofort / GlobalCollect | Redirect | Debit, Refund |
Trustly / GlobalCollect | Redirect | Debit, Refund |
customer.billingCity
: required for Register, Debitcustomer.billingCountry
: required for Register, Debitcustomer.billingLastname
: required for Register, DebitibanCustomer.iban
: required for Register, Debittransaction.description
: required for Debitcustomer.identification
customer.billingCountry
To use webhooks with Ingenico Connect you have to register the webhooks callback URL inside the Ingenico Connect Interface or talk with your account manager on Ingenico side.
This applies only for the Payment Method SEPA Direct Debit For Register or withRegister transactions, IngenicoConnect Transaction Indicator will be set to "first"
Transaction Indicator | IngenicoConnect Transaction Indicator |
---|---|
INITIAL | first |
RECURRING | recurring |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard (incl. Googlepay and Apple Pay) | iFrame Form & payment.js Integration | Authorization, Capture, Debit, Refund |
Paypal | Redirect | Debit, Refund |
iDeal | Redirect | Debit, Refund |
Bancontact | Redirect | Debit, Refund |
PostFinancePay | Redirect | Authorization, Capture, Debit, Refund |
*Documentation regarding Google Pay and Apple Pay can be found here: Google Pay, Apple Pay
extraData.ideal_issuer
For the issuer you may do an Options Request using the
identifier ideal-issuers
. It will return a list of available issuer for iDeal.
To use webhooks with Ingenico Direct you have to register the webhooks callback URL inside the Ingenico Interface or talk with your account manager on Ingenico side.
3DS Test cards can be found here: Ingenico Direct Test Cases
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | only Debit & Refund |
none
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | Debit only |
customer.identification
: mandatorycustomer.firstName
: mandatorycustomer.lastName
: mandatorycustomer.email
: mandatorycustomer.ipAddress
: mandatoryPayment Method | Transaction Flows | Transaction Types |
---|---|---|
CreditCard | payment.js, Server-to-server | Capture, Debit, Preauthorize, Refund, Register, Void |
Name | Type | Description |
---|---|---|
Currency | string | 3 letters (ISO 4217) |
Amount | number | Transaction amount |
Name | Type | Required | Description |
---|---|---|---|
description | string | false | Transaction description. |
customer.identification | string | false | The customer identification on the web shop side. |
customer.email | string | false | The customers email. |
customer.billingAddress1 | string | false | The customers billing address |
customer.billingAddress2 | string | false | The customers billing address |
customer.billingPostcode | string | false | The customers billing post code. |
customer.billingCity | string | false | The customers billing city |
customer.billingCountry | string | false | The customers billing country |
Name | Type | Required | Description |
---|---|---|---|
item.identification | string | true | Unique product identifier in the cart. |
item.name | string | true | Item name |
item.commodityCode | float | true | Number (identifier) of an item in the store system |
item.quantity | integer | false | Item quantity |
item.price | float | false | Price for each item unit |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Sofort | Full-Page Redirect | Debit |
Giropay | Full-Page Redirect | Debit |
EPS | Full-Page Redirect | Debit |
Przelewy24 | Full-Page Redirect & iFrame Form | Debit |
iDeal | Full-Page Redirect | Debit |
Aircash | Full-Page Redirect | Debit, Payout |
Aircash ABon Voucher | Full-Page Redirect | Debit |
Payment Method | additional field | value |
---|---|---|
Aircash ABon Voucher | extraData.productCode |
on of [aircashdefault , EY,BU,RV,EX,CR,SX,PN,OX,BW,CU,EN,FA,FB,SS,SU,WA,TC,ott_voucher,bluvoucher,kazangvoucher] |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | Full-Page Redirect | Debit only |
iDeal | Full-Page Redirect | Debit only |
none
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
DirectDebit | Full-Page Redirect | Debit, Refund |
Parameter / Name | Type | Required | Description |
---|---|---|---|
username | string | true | Merchant username |
API Secret | string | true | Khipu API key |
extraData.merchantID | string | true | Your receiver_id from Khipu |
Parameter / Name | Type | Required | Description |
---|---|---|---|
amount | string | true | Transaction amount: decimals separated by a "." (dot) |
currency | string | true | 3 letter currency code |
description | string | true | Description of items the user is purchasing |
You can find more information about the options request here: Options Request
Returns a list of available banks.
Please use bank-list
as an option name e.g. POST /options/{apiKey}/bank-list
.
Klarna is a payment provider that offers its own payment methods, but also supports businesses by offering a large selection of the most popular payment methods on the market.
We have two different implementations of the Klarna API in place.
A full page redirect adapter. (See KlarnaHPP) documentation for more details)
A payment widget solution. (See KlarnaWidget) documentation for more details)
Code | Country | Currency |
---|---|---|
AT | Austria | EUR |
DK | Denmark | DKK |
FI | Finland | EUR |
DE | Germany | EUR |
NL | Netherlands | EUR |
NO | Norway | NOK |
SE | Sweden | SEK |
CH | Switzerland | CHF |
GB | Great Britain | GBP |
BE | Belgium | EUR |
US | United States | USD |
AU | Australia | AUD |
FR | France | EUR |
PT | Portugal | EUR |
GR | Greece | EUR |
IE | Ireland | EUR |
PL | Poland | PLN |
HU | Hungary | HUF |
CZ | Czech Republic | CZK |
SK | Slovakia | EUR |
RO | Romania | RON |
IT | Italy | EUR |
ES | Spain | EUR |
Klarna is a payment provider that offers its own payment methods, but also supports businesses by offering a large selection of the most popular payment methods on the market.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Generic (provides all possible Payment Methods) | Full-Page Redirect | Debit, Authorize, Refund |
Invoice | Full-Page Redirect | Debit, Authorize, Refund |
Installment | Full-Page Redirect | Debit, Authorize, Refund |
Sofort | Full-Page Redirect | Debit, Authorize, Refund |
Name | Type | Required | Description |
---|---|---|---|
description | string | conditional | Required if no items are provided |
customer.email | string | true | |
customer.billingCountry | string | true | |
customer.billingAddress1 | string | true | |
customer.billingCity | string | true | |
customer.billingPostcode | string | conditional | Required if the customer.billingCountry is any of SE , NO , FI , DK , GB , US , DE , AT , CH , NL , BE , AU , FR , PT , PL , GR , CZ , HU , RO , SK , IT , ES |
customer.billingPhone | string | conditional | Required if the customer.billingCountry is any of SE , NO , FI , DK , GB , US , DE , AT , CH , NL , BE , AU |
customer.firstName | string | true | |
customer.lastName | string | true | |
customer.billingState | string | conditional | Required if the customer.billingCountry is any of US , AU , IE , RO , IT |
items.name | string | false | |
items.quantity | string | false | |
items.price | string | false | |
items.currency | string | false | |
items.totalAmount | string | false | |
items.type | string | false | any of physical , sales_tax , discount , store_credit , shipping_fee , gift_card , digital , surcharge . If not provided physical will be used |
items.identification | string | false | |
items.taxRate | string | false | |
items.totalTaxAmount | string | false | |
items.totalDiscountAmount | string | false | |
items.productUrl | string | false | |
items.merchantData | string | false | |
items.imageUrl | string | false |
Key | Required | Values | Description |
---|---|---|---|
region | true | eu , na , oc |
Klarna's Api is available through different base URLs depending on the underlying region. eu = Europe, na = North America, oc = Oceania |
logo_url | false | string |
A Url String that points to your desired Logo (will be displayed in the HPP - Checkout) |
page_title | false | string |
A optional Page Title for the HPP - Checkout |
background_image_url | false | string |
A Url String that points to your desired Background Image (will be displayed in the HPP - Checkout) |
Klarna is a payment provider that offers its own payment methods, but also supports businesses by offering a large selection of the most popular payment methods on the market.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Invoice | Widget - payment-widget.js | Debit, Authorize, Refund |
Installment | Widget - payment-widget.js | Debit, Authorize, Refund |
Sofort | Widget - payment-widget.js | Debit, Authorize, Refund |
Key | Required | Values | Description |
---|---|---|---|
region | true | eu , na , oc |
Klarna's Api is available through different base URLs depending on the underlying region. eu = Europe, na = North America, oc = Oceania |
To activate the Klarna Widget you will first have to include the payment-widget.js.
1. Embed the payment-widget.min.js in your page
<script data-main="payment-widget-js" src="https://asxgw.com/js/integrated/payment-widget.min.js"></script>
2. Provide Container for the Klarna Widget.
<div id="klarna-payments-container"></div>
3. Retrieve a Widget-Token via a Prepare Call (Prepare-Debit or Prepare-Preauthorize). This Call is required to initialize a Klarna Session and provide it with all the checkout data.
POST https://asxgw.com/api/v3/transaction/{apiKey}/prepare-(debit or preauthorize)
Name | Type | Required | Description |
---|---|---|---|
amount | string | true | Amount of transaction, decimals separated by a "." (dot) |
currency | string | true | 3 letter currency code |
description | string | false | If there is no Item given, the Description will be mandatory |
successUrl | string | true | redirect to URL on success/pending |
callbackUrl | string | true | endpoint to receive status notifications |
customer | object | true | see Customer |
↳customer.billingAddress1 | string | true | required for Klarna's authorization process |
↳customer.billingCity | string | true | required for Klarna's authorization process |
↳customer.billingPostcode | string | conditional | Required if the customer.billingCountry is any of SE , NO , FI , DK , GB , US , DE , AT , CH , NL , BE , AU , FR , PT , PL , GR , CZ , HU , RO , SK , IT , ES |
↳customer.billingCountry | string | true | required for session initialization |
↳customer.billingState | string | conditional | required if customer.billingCountry is any of US ,AU ,IE ,RO ,IT |
↳customer.birthDate | string | false | customer birth Date |
↳customer.email | string | true | required for session initialization |
↳customer.shippingFirstName | string | false | In case of divergent Billing-/ShippingAddress |
↳customer.shippingLastName | string | false | In case of divergent Billing-/ShippingAddress |
↳customer.shippingAddress1 | string | false | In case of divergent Billing-/ShippingAddress |
↳customer.shippingCity | string | false | In case of divergent Billing-/ShippingAddress |
↳customer.shippingPostCode | string | false | In case of divergent Billing-/ShippingAddress |
↳customer.shippingState | string | false | In case of divergent Billing-/ShippingAddress |
↳customer.shippingCountry | string | false | In case of divergent Billing-/ShippingAddress |
↳customer.extraData.shippingEmail | string | false | In case of divergent Billing-/ShippingAddress |
extraData | object | false | object containing key-value pairs (string-to-string) |
↳extraData.orderTaxAmount | string | false | Total tax amount of the order. The value should be in non-negative minor units. Eg: 25 Euros should be 2500. |
items | object | false | object containing Items - If no Item is given, a default Item will be generated with the transaction description as name |
↳items.item.name | string | true | Name of the item |
↳items.item.description | string | false | Description of the item |
↳items.item.identification | string | false | Identification of the item, will be passed as 'reference' |
↳items.item.quantity | string | true | Quantity of the item |
↳items.item.price | string | true | Price of item, decimals separated by a "." (dot) |
↳items.item.currency | string | true | Currency of the item - has to identical to the transaction currency |
↳items.item.extraData | object | false | object containing key-value pairs (string-to-string) |
↳items.item.extraData.totalAmount | string | true | The total amount of the Item (item.price * item.quantity) |
↳items.item.extraData.type | string | false | Type of the order line item. The possible values are: physical discount shipping_fee sales_tax digital gift_card store_credit surcharge. Default Value is 'physical' |
↳items.item.extraData.taxRate | string | false | Tax rate of the order line. Non-negative value. The percentage value is represented with two implicit decimals. I.e 1900 = 19%. |
↳items.item.extraData.totalTaxAmount | string | false | Total tax amount of the order line. Must be within ±1 of total_amount - total_amount 10000 / (10000 + tax_rate). Negative when type is discount. |
↳items.item.extraData.productUrl | string | false | A Url String that points to your Product |
↳items.item.extraData.merchantData | string | false | Information about the Product |
↳items.item.extraData.imageUrl | string | false | A Url String that points to your Product Image |
4. Initialize the Klarna Widget with the following parameters:
<script>
var widget = new WidgetJs();
errorHandler = function (error) {
//handle error events here
}
completeHandler = function (initResult) {
//Klarna init result
}
widget.initKlarna(
'Public Integration Key',
'Widget-Token',
'klarna-payments-container',
completeHandler,
errorHandler
);
</script>
4. Authorize / Finalize the Klarna Widget with the following parameters:
pay_now
payment method - default = true), as described in the Klarna Documentation: finalize
is a special call that is needed for the Pay Now payment method category in multistep checkouts. In a multistep checkout scenario the authorize()
call can be triggered when the consumer selects the payment method and then presses the "continue" button to go to the next step of the checkout. With Pay Now as payment method category however transferring the funds should only happen once the consumer has pressed the "buy" button to finalize the purchase. To cater for such a scenario authorize() can still be called when the consumer has selected the payment method, but with the auto_finalize
property set to false.<script>
var widget = new WidgetJs();
errorHandler = function (error) {
//handle error events here
}
completeHandler = function (authToken) {
//send the received authToken in the extraData for a debit or preauthorize call
}
widget.authKlarna(
'Public Integration Key',
'Widget-Token',
'klarna-payments-container',
completeHandler,
errorHandler,
true // or false (optional)
);
// Depending on Auto-Finalize Option from widget.authKlarna
widget.finalizeKlarna(
'Public Integration Key',
'Widget-Token',
'klarna-payments-container',
completeHandler,
errorHandler
);
</script>
5. Send Debit / Preauthorize Request with the received Auth-Token from Step 4.
Send the authorization_token
in the extraData object to place the order.
Transaction Request Debit, Preauthorize, Capture
Name | Type | Required | Description |
---|---|---|---|
merchantTransactionId | string | true | your unique transaction ID |
amount | string | true | Amount of transaction, decimals separated by a "." (dot) |
currency | string | true | 3 letter currency code |
description | string | false | If there is no Item given, the Description will be mandatory |
successUrl | string | true | redirect to URL on success/pending |
callbackUrl | string | true | endpoint to receive status notifications |
withRegister | boolean | false | store customers payment instrument for recurring transactions |
referenceUuid | string | false | UUID of an initial transaction |
transactionIndicator | string | false | possible value: RECURRING |
customer | object | true | see Customer |
↳customer.billingAddress1 | string | true | required to create Klarna Order |
↳customer.billingCity | string | true | required to create Klarna Order |
↳customer.billingPostcode | string | true | required to create Klarna Order |
↳customer.billingCountry | string | true | required to create Klarna Order |
↳customer.birthDate | string | false | customer birth Date |
↳customer.email | string | true | required to create Klarna Order |
↳customer.shippingFirstName | string | false | In case of divergent Billing-/ShippingAddress |
↳customer.shippingLastName | string | false | In case of divergent Billing-/ShippingAddress |
↳customer.shippingAddress1 | string | false | In case of divergent Billing-/ShippingAddress |
↳customer.shippingCity | string | false | In case of divergent Billing-/ShippingAddress |
↳customer.shippingPostCode | string | false | In case of divergent Billing-/ShippingAddress |
↳customer.shippingState | string | false | In case of divergent Billing-/ShippingAddress |
↳customer.shippingCountry | string | false | In case of divergent Billing-/ShippingAddress |
↳customer.shippingEmail | string | false | In case of divergent Billing-/ShippingAddress |
extraData | object | true | required to create Klarna Order |
↳extraData.authorizationToken | string | true | required to create Klarna Order |
↳extraData.orderTaxAmount | string | false / true | Total tax amount of the order. Depending if you declared a totalTaxAmount on an item, this will be required or not |
items | object | false | object containing Items - If no Item is given, a default Item will be generated with the transaction description as name |
↳items.item.name | string | true | Name of the item |
↳items.item.description | string | false | Description of the item |
↳items.item.identification | string | false | Identification of the item, will be passed as 'reference' |
↳items.item.quantity | string | true | Quantity of the item |
↳items.item.price | string | true | Price of item, decimals separated by a "." (dot) |
↳items.item.currency | string | true | Currency of the item - has to identical to the transaction currency |
↳items.item.extraData | object | false | object containing key-value pairs (string-to-string) |
↳items.item.extraData.totalAmount | string | true | The total amount of the Item (item.price * item.quantity) |
↳items.item.extraData.type | string | false | Type of the order line item. The possible values are: physical discount shipping_fee sales_tax digital gift_card store_credit surcharge. Default Value is physical |
↳items.item.extraData.taxRate | string | false | Tax rate of the order line. Non-negative value. The percentage value is represented with two implicit decimals. I.e 1900 = 19%. |
↳items.item.extraData.totalTaxAmount | string | false | Total tax amount of the order line. Must be within ±1 of total_amount - total_amount 10000 / (10000 + tax_rate). Negative when type is discount. |
↳items.item.extraData.productUrl | string | false | A Url String that points to your Product |
↳items.item.extraData.merchantData | string | false | Information about the Product |
↳items.item.extraData.imageUrl | string | false | A Url String that points to your Product Image |
Klarna supports recurring Orders. To create a recurring Order you will have to
send your Debit or Preauthorize with the extra "withRegister" flag. For every
following recurring Transaction you will have to provide the initial Transaction
Uuid as referenceUuid
and the transactionIndicator
with RECURRING
.
Klarna supports partial capturing of created orders. Therefore, send a regular Capture call with the desired capture amount and the corresponding reference Transaction ID. If you did not fully capture the original order amount, you can either send another Capture Request to actually capture the remaining amount or release it with a "Final Capture". This will "release" the remaining amount and add it to your Klarna Merchant contingent. To release a remaining order amount, you will have to send a Capture with an amount of 0.
Klarna supports transmit of Discount Data, these Data can be sent on either order level oder item level. For further information about this topic please visit the official Klarna Documentation. We assume to receive the correct Discount relevant Data and won't apply any validation to it. If your send that Data don't fit the Klarna convention you might be served with a Klarna provided Error.
To achieve an Order Level Discount, you will have to send an Item with the type discount
.
Name | Type | Required | Description |
---|---|---|---|
items | object | false | object containing Items |
↳items.item.name | string | true | Name of Discount |
↳items.item.extraData.type | string | true | Type 'discount' is required to actually create the discount Item |
If you like to send the discount information for a specific Item, you will have to send / add these on the corresponding Item Level as extraData.
Name | Type | Required | Description |
---|---|---|---|
items | object | false | object containing Items |
↳items.item.extraData.totalDiscountAmount | string | true | Amount of Item Discount (amount has to be positive), decimals separated by a "." (dot) |
The required currency is AUD (Australian dollar).
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | Full-Page Redirect | Debit, Refund |
Name | Type | Required | Description |
---|---|---|---|
firstName (Customer) | string | true | The customer’s first name |
lastName (Customer) | string | true | The customer’s family name |
email (Customer) | string | true | The customer’s email |
shippingAddress1 (Customer) | string | true | The first address line |
shippingAddress2 (Customer) | string | false | The second address line |
shippingCity (Customer) | string | true | The address suburb, town or county |
shippingCountry (Customer) | string | false | The country |
shippingState (Customer) | string | true | The address state (case-sensitive) |
shippingPostcode (Customer) | string | true | The address postcode |
shippingPhone (Customer) | string | true | The address postcode |
items | object | false | The object containing cart items |
Name | Type | Required | Description |
---|---|---|---|
identification | string | true | The merchant's unique identifier (id, PLU/SKU, barcode, etc.) for the product. |
quantity | number | true | The quantity being purchased. |
price | number | true | The unit price of the product. |
description | string | true | The description of the product. |
Name | Type | Required | Description |
---|---|---|---|
extraData.note | string | false | A brief description of the reason for the refund. |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
E-Wallet | Full-Page Redirect | Debit, Debit with Register, Refund, Payout |
Name | Type | Required | Description |
---|---|---|---|
amount | string | true | Transaction amount: decimals separated by a . (dot) |
currency | string | true | 3 letter currency code |
description | string | false | Purpose of use |
Name | Type | Required | Description |
---|---|---|---|
identification | string | false (but recommended) | Unique ID of the customer |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
CreditCard | payment.js, Hosted payment page | Capture, Debit, Preauthorize, Refund, Register, Void |
Name | Type | Description |
---|---|---|
Currency | string | 3 letters (ISO 4217) |
Amount | number | Transaction amount |
Name | Type | Description |
---|---|---|
customer.identifier | string | Unique customer identifier generated by merchant |
customer.firstName | string | Customer first name |
customer.lastName | string | Customer lsat name |
customer.email | string | Customer email |
customer.billingPhone | string | Customer phone |
customer.billingAddress1 | string | Customer billing address |
customer.billingCity | string | Customer city |
customer.billingCountry | string | Customers country 2 letters (ISO 3166-1 alpha-2) |
Name | Type | Description |
---|---|---|
threeDSecureData.browserUserAgent | string | Browser user agent |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | Debit, Register, Preauthorize, Capture, Void, Refund, Deregister |
Creditcard
Optional
Sub-Merchant fields (must be enabled for the account)
Name | Required | Type | Description |
---|---|---|---|
extraData.submerchantIdentifier | conditional | string | Required when sending Sub-Merchant data |
extraData.submerchantTradingname | conditional | string | Required when sending Sub-Merchant data |
extraData.submerchantRegisteredName | false | string | |
extraData.submerchantBankIndustryCode | false | string | |
extraData.submerchantEmail | false | string | |
extraData.submerchantPhone | false | string | |
extraData.submerchantCity | false | string | |
extraData.submerchantCompany | false | string | |
extraData.submerchantCountry | false | string | |
extraData.submerchantPostcodeZip | false | string | |
extraData.submerchantStateProvince | false | string | |
extraData.submerchantStreet | false | string | |
extraData.submerchantStreet2 | false | string | |
extraData.orderReference | false | string | Order identifier (max 40 characters) |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | All |
Sofortüberweisung | Full-Page Redirect | Debit only |
none
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | HPP & payment.js integration | Register, Debit, Preauthorize, Capture, Void, Refund, Recurring |
Key | Value | Type | Description |
---|---|---|---|
extraData.entity_type |
string one of [ individual , association ] |
Register, Debit, Preauthorize | The entity Type of the payer (if not registered) |
extraData.payer_id |
string |
Register, Debit, Preauthorize | Identification of the associated payer |
extraData.payer_type |
string on of [customer , registered , guest ] |
Register, Debit, Preauthorize | customer : Payer is a Customer and belongs to the collector. registered : The account corresponds to a Mercado Pago registered user.guest : The payer doesn't have an account. |
extraData.ident_type |
string |
Register, Debit, Preauthorize | Identification type |
extraData.ident_number |
string |
Register, Debit, Preauthorize | Identification number |
When redirecting the user to a Payment Template - Hosted Payment Page (HPP), it's possible to collect their DeviceID and include it as a X-meli-session-id
headers of the payment creation, refer to MercadoPago Documentation.
Include the following script in the Hosted Payment Page (HPP):
<script src="https://www.mercadopago.com/v2/security.js" view="checkout" output="deviceId"></script>
Then pass it in a new input field that has the name attribute name="deviceData"
and the id must equal the output of the script:
<input type="hidden" id="deviceId" name="deviceData">
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Direct Carrier Billing (SMS) | Redirect & iFrame Form | Debit only |
PayByCall | Redirect & iFrame Form | Debit only |
none
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | Full-Page Redirect | All |
Paysafecard | Full-Page Redirect | All |
Bancontact | Full-Page Redirect | All |
Belfius | Full-Page Redirect | All |
KBC | Full-Page Redirect | All |
PodiumCadeaukaart | Full-Page Redirect | All |
Sofortüberweisung | Full-Page Redirect | All |
iDeal | Full-Page Redirect | All |
BankTransfer | Full-Page Redirect | All |
SEPA Direct Debit | Full-Page Redirect | All |
BitCoin | Full-Page Redirect | All |
none
The required currency is EUR (Euro).
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Bancontact | Full-Page Redirect, HPP(iFrame) | Debit, Refund, Capture, Void, Preauthorize |
Name | Type | Required | Description |
---|---|---|---|
Success URL | string | true | Success notification URL |
Error URL | string | true | Failure notification URL |
Cancel URL | string | true | Cancel notification URL |
extraData.isMobile | boolean/null | false | If the value is true - customer will be redirected to the the page with the button which leads directly to the Bancontact mobile application to finish the transaction |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Credit card | HPP & payment.js Integration | All |
Parameter | Type | Required | Description |
---|---|---|---|
extraData.tax | string | false |
Following features has to be enabled from your Multisafepay Account Manager
If you want to use Multisafepay SDD without redirect please activate "useDirectType" option on the connector.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | Full-Page Redirect, payment.js Integration | All |
DotPay | Full-Page Redirect | All |
GiroPay | Full-Page Redirect | All |
Sofortüberweisung | Full-Page Redirect | All |
iDeal | Full-Page Redirect | All |
BankTransfer | Full-Page Redirect | All |
SEPA Direct Debit | Full-Page Redirect, Direct Payment | All |
Parameter | Description |
---|---|
description | If the dynamic descriptor is activated you can set the descriptor for the payment |
customer.firstName | Required for initial SDD Direct Payment |
customer.lastName | Required for initial SDD Direct Payment |
paymentData.ibanData.iban | Required for initial SDD Direct Payment |
paymentData.ibanData.mandateId | (optional) |
customer.extraData.locale | (optional) if not provided the connector setting "language" + customer.billingCountry will be used |
To fully set up the Neteller Connector you will have to fulfill the following (mandatory) steps:
[email protected]
) to set up your Webhook URL.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Neteller | Full-Page Redirect | Debit |
Neteller | false interaction | Payout |
Key | Required | Values | Validation | Description |
---|---|---|---|---|
Customer - Identification | true | string |
length<=150 |
Unique customer identification. The email address of the customer who is making or receiving the payment. |
Transaction - Description | true | string |
length<=150 |
Description of the Item. |
@ Customer details verification is used verify that the member's account information in the Neteller system corresponds to the member's information in Merchant system Customer verification is done with each Debit transaction
Name | Type | Required | Description |
---|---|---|---|
string | true | The customers email | |
firstName | string | false | The customers first name |
lastName | String | false | The customers last name |
dateOfBirth | string | false | The customers date of birth |
postCode | string | false | The customers postal code or zip code |
country | string | false | The customers 2-code country of residence. |
Payment Method | TransactionFlows | Transaction Types |
---|---|---|
Visa | Full-Page Redirect & Widget - payment-widget.js | All |
Mastercard | Full-Page Redirect & Widget - payment-widget.js | All |
Direct Debit | Full-Page Redirect & Widget - payment-widget.js | All |
Swish | Full-Page Redirect & Widget - payment-widget.js | Debit, Preauthorize, Capture, Refund, Void, Register |
Vipps | Full-Page Redirect & Widget - payment-widget.js | Debit, Preauthorize, Capture, Refund, Void |
Sofort | Full-Page Redirect & Widget - payment-widget.js | Debit, Preauthorize, Capture, Refund, Void |
MobilePay | Full-Page Redirect & Widget - payment-widget.js | Debit, Preauthorize, Capture, Refund, Void |
ArvatoAfterPay | Full-Page Redirect & Widget - payment-widget.js | Debit, Preauthorize, Capture, Refund, Void |
Name | Type | Required | Description |
---|---|---|---|
description | string | true | Transaction description. |
extraData.embeddedCheckout | boolean | false | Indicates if the embedded checkout via widget, or the full page redirect should be used. |
extraData.termsUrl | string | true | The URL to the terms and conditions of the web shop. |
extraData.checkoutUrl | string | false | URL of the page where the embedded checkout widget should be shown. Should be empty if the HPP is used. |
extraData.merchantHandlesConsumerData | boolean | false | Indicates if the customer data form will be shown on the checkout page. |
extraData.customerType | string | false | Type of the customer. Allowed values are B2B or B2C . |
extraData.language | string | false | Specifies the preferred language for the checkout process, enhancing localization and user experience. |
customer.shippingCountry | string | true | The customers shipping country. |
customer.identification | string | false | The customer identification on the web shop side. |
customer.email | string | false | The customers email. |
customer.shippingAddress1 | string | false* | The customers shipping address line 1. |
customer.shippingAddress2 | string | false | The customers shipping address line 2. |
customer.shippingPostcode | string | false | The customers shipping post code. |
customer.shippingCity | string | false* | The customers shipping city. |
customer.shippingFirstName | string | false | The customers first name. |
customer.shippingLastName | string | false | The customers last name. |
customer.shippingCompany | string | false | Company name. |
Name | Type | Required | Description |
---|---|---|---|
item.identification | string | true | Item identification of the web shop. |
item.name | string | true | Item name |
item.quantity | integer | true | Item quantity |
item.extraData.unit | string | true | Unit used for the items. E.g. pcs . |
item.price | float | true | Price for each item unit |
item.extraData.netTotalAmount | float | true | Total price for the items excluding VAT. item.price * item.quantity |
item.extraData.grossTotalAmount | float | true | Total price for the items including VAT. item.extraData.netTotalAmount + item.extraData.taxAmount |
item.extraData.taxAmount | float | false | Tax amount for the items. item.price * item.quanity * item.extraData.taxRate / 10000 |
item.extraData.taxRate | float | false | Tax rate used for the tax amount. The tax rate should be provided in percentage times 100. E.g. 25% tax rate as 2500 |
Name | Type | Required | Description |
---|---|---|---|
API Secret | string | true | The API Secret provided by NETS. |
checkoutKey | string | true | The checkout key used for the payment widget. Provided by NETS. |
webhookAuthorization | string | true | Any string chosen by you. Will be used to authorize webhooks from NETS. |
currencyForVerify | string | true | currency used for verify calls. |
embeddedCheckout | string | false | See extraData.embeddedCheckout |
merchantHandlesConsumerData | boolean | false | See extraData.merchantHandlesConsumerData . |
paymentButtonText | string | false | Text used for the payment button on the checkout page. |
showMerchantName | boolean | false | Indicates if the merchant name (in the NETS account) should be shown on the checkout page. |
showOrderSummary | boolean | false | Indicates if the order summary should be shown on the checkout page. |
Name | Type | Required | Description |
---|---|---|---|
backgroundColor | string | false | Hex color code for the payment widget background color. |
panelColor | string | false | Hex color code for the payment widget panel color. |
textColor | string | false | Hex color code for the payment widget text color. |
primaryColor | string | false | Hex color code for the payment button color in the payment widget. |
linkColor | string | false | Hex color code for the payment widget link color. |
placeholderColor | string | false | Hex color code for the payment widget input field placeholders. |
outlineColor | string | false | Hex color code for the payment widget outlines. |
primaryOutlineColor | string | false | Hex color code for the payment button outline color in the payment widget. |
panelTextColor | string | false | Hex color code for the payment widget panel text. |
panelLinkColor | string | false | Hex color code for the payment widget panel links. |
buttonTextColor | string | false | Hex color code for the payment widget panel button texts. |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
bankTransfer | Full Page Redirect | Debit, Preauthorize, Capture, Refund |
Key | Value | Required | Flow | Description |
---|---|---|---|---|
extraData.language |
in ISO 639-2 format. one of ['ita', 'eng', 'spa', 'fra', 'ger', 'jpn', 'chi', 'ara', 'rus', 'por'] , default is ita |
false | Debit, Preauthorize | defines the language of the payment page |
extraData.description |
string | false | Capture |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & Full-Page Redirect | All |
Creditcard (Direct Post API) | iFrame Form & payment.js Integration | All |
Direct Post API
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
AliPay | Full-Page Redirect | Debit only |
FastBankTransfer | Full-Page Redirect | Debit only |
Giropay | Full-Page Redirect | Debit only |
iDeal | Full-Page Redirect | Debit only |
Mistercash | Full-Page Redirect | Debit only |
Qiwi | Full-Page Redirect | Debit only |
Sofort | Full-Page Redirect | Debit only |
UnionPay | Full-Page Redirect | Debit only |
WeChatPay | Full-Page Redirect | Debit only |
Field | Required |
---|---|
customer.email | true |
customer.billingCountry | true |
NuveiDCC adapter is used to proceed payments with Nuvei using DCC (Dynamic Curency Conversion) service.
To use DCC service it's necessary to send requestDcc: "true" with your debit/preauthorize request. If DCC is allowed for the specific card you'll receive an API response with a status "PENDING_DCC" and all the necessary data to provide to the end customer to decide in which currency he/she wants to pay.
As soon as end customer decided which currency to use - you have to send an additional /continue-dcc API call
Name | Type | Required | Description | |
---|---|---|---|---|
requestDcc | boolean | false | To enable DCC service - requestDcc should be true |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | Debit, Register, Preauthorize, Capture, Void, Refund, Deregister |
Field | Required |
---|---|
customer.firstName | true |
customer.lastName | true |
customer.email | true |
customer.billingCountry | true |
customer.ipAddress | true |
Gateway Parameter | Adapter parameter | Required | Description |
---|---|---|---|
merchantTransactionId | customData | true | Adding your unique identifier as custom data to be reflected in Reports created in the Nuvei Dashboard. |
To enable VISA AFT both fields mentioned below are necessary. Additionally, it's required to set up a dedicated connector for the AFT transactions and check "Enable Account Funding Transactions" checkbox in the connector Vault Setup
Field | Required |
---|---|
customer.shippingFirstName | true |
customer.shippingLastName | true |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | API only | Debit, Preauthorize, Capture, Void, Refund, Deregister |
Field | Required | Description |
---|---|---|
extra.tpn | true (if not configured at connector level) | The terminal profile number, identifying the actual POS terminal |
extra.paymentType | false (if provided, connector configuration is overruled) | Identifies the EDC type. Values: Credit , Debit , Card for Canada , EBT , Check , Gift , Loyalty , Restaurant |
extra.printReceipt | false (if provided, connector configuration is overruled) | Shall the terminal print a receipt? Values: No , Merchant , Customer , Both |
extra.getReceipt | false (if provided, connector configuration is overruled) | Shall receipt data be returned in digital form, to be printed out via a dedicated printer? Values: No , Merchant , Customer , Both |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | Full-Page Redirect | Debit only |
none
The required currency is AUD (Australian dollar).
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Omipay | Full-Page Redirect | Debit, Refund |
none
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | Redirect | Pre-authorise, Capture, Void, Refund |
The following fields are mandatory:
Parameter | Allowed values | Description |
---|---|---|
Merchant Guid | Merchant unique global identifier. | |
pspGuid | PSP unique global identifier. | |
apiKey | Oney Api Key. | |
countryCode | Required for header: X-Oney-Partner-Country-Code . |
|
businessTransactionCode | business_transaction code x3 or x4 provided by Oney. |
The following extraData
fields are mandatory for the pre-authorization (purchase) request:
Parameter | Allowed values | Description |
---|---|---|
extraData.deliveryDate | yyyy-MM-dd | Must be greater or equal to today's date. |
extraData.deliveryModeCode | Refer to Oney API docs. | |
extraData.deliveryOption | Refer to Oney API docs. | |
extraData.deliveryAddressType | Refer to Oney API docs. | |
extraData.deliveryPriorityDeliveryCode | Refer to Oney API docs. Mandatory if extraData.deliveryOption is 3. |
|
items.item.extraData.isMainItem | Refer to Oney API docs. | |
items.item.extraData.categoryCode | Refer to Oney API docs. | |
customer.extraData.languageCode | Refer to Oney API docs. | |
customer.extraData.honorificCode | 1,2,3 | Refer to Oney API docs. |
customer.extraData.pickupPointName | Name of delivery point (shop name,...). Mandatory if extraData.addressType is either 1,2 or 3. |
The following extraData
fields are optional for the pre-authorization (purchase) request:
Parameter | Allowed values | Description |
---|---|---|
customer.extraData.taxpayerCode | Refer to Oney API docs. |
Additional Information for Refund:
RULES FRANCE ONLY
RULES OTHER COUNTRIES (PT, RO, IT, BE, SP)
The following extraData
fields are mandatory for the refund request:
Parameter | Allowed values | Description |
---|---|---|
extraData.purchaseCancellationReasonCode | 0, 1 | Refer to Oney API docs. |
extraData.purchaseRefundDownPayment | true, false | Required if extraData.purchaseCancellationReasonCode is 1. Refer to Oney API docs. |
The required currency is AUD (Australian dollar).
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Openpay | Full-Page Redirect | Debit, Refund |
Name | Type | Required | Description |
---|---|---|---|
firstName (Customer) | string | true | The customer’s first name |
lastName (Customer) | string | true | The customer’s family name |
email (Customer) | string | true | The customer’s email |
birthDate (Customer) | string | false | The customer’s date of birth |
shippingAddress1 (Customer) | string | true | The first address line |
shippingAddress2 (Customer) | string | false | The second address line |
shippingCity (Customer) | string | true | The address suburb, town or county |
shippingState (Customer) | string | true | The address state (case-sensitive) |
shippingPostcode (Customer) | string | true | The address postcode |
billingAddress1 (Customer) | string | false | The first address line |
billingAddress2 (Customer) | string | false | The first address line |
billingCity (Customer) | string | false | The address suburb, town or county |
billingState (Customer) | string | false | he address state (case-sensitive) |
billingPostcode (Customer) | string | false | The address postcode |
items | object | false | The object containing cart items |
extraData | object | false | object containing key-value pairs (string-to-string) |
↳extraData.source | string | false | The type of customer journey being started Enum: "Online" "PosApp" "PosWeb" |
↳extraData.deliveryMethod | string | false | Enum: "Delivery" "Pickup" "Email" |
↳extraData.goodsDescription | string | false | Brief description of goods being purchased |
Name | Type | Required | Description |
---|---|---|---|
identification | string | true | An internal stock number for this item |
name | string | true | A description of the item used by the retailer |
quantity | number | false | How many of the items were purchased |
price | number | true | The individual retail price charged for the item An integer number in the lowest denomination in the currency being used (e.g. 1034 indicates $10.34) |
extraData | object | true | object containing key-value pairs (string-to-string) |
↳itemRetailCharge | string | true | The overall retail charge for the quantity of items An integer number in the lowest denomination in the currency being used (e.g. 1034 indicates $10.34) |
↳itemGroup | string | false | A group level description if available |
↳itemGroupCode | string | false | If a group has an internal code that may be used to refer to it, it can be supplied |
In order to get the configured Min and Max purchase price range an Options Request is required.
Please use minMaxPrice
as an identifier e.g. POST /options/{apiKey}/minMaxPrice
.
You can find more information about the options request here: Options Request
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | HPP & payment.js Integration | Register, Preauthorize, Capture, Void, Debit, Refund |
Parameter | Required | Transaction Type | Description |
---|---|---|---|
description | true | Register, Preauthorize, Capture, Void, Debit, Refund | |
extraData.serviceType | conditional | Register, Debit, Preauthorize | Default value can be set on connector config |
Customer.email | Register | ||
Customer.firstName | Register | ||
Customer.lastName | Register | ||
Customer.billingPhone | Register | ||
Customer.billingCountry | Register |
Parameter | Transaction Type | Description |
---|---|---|
Customer.billingAddress1 | Register, Debit, Preauthorize | |
Customer.billingCity | Register, Debit, Preauthorize | |
Customer.billingPostcode | Register, Debit, Preauthorize |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Pago46 | Full-Page Redirect | Debit |
none
In order to mock the event on the sandbox that a customer has paid an agent an
Options Request is required. Use payAgent
as
identifier and pass the adapter's transaction ID in the transaction
parameter.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
SID_EFT | Full-Page Redirect | Debit, Refund |
DPO Pay mobile | Full-Page Redirect | Debit, Refund |
USSD | Full-Page Redirect | Debit, Refund |
Name | Type | Required | Description |
---|---|---|---|
amount (Transaction) | string | true | Total amount in the selected currency. No more than 2 digits after the comma |
currency (Transaction) | string | true | 3 letter currency code |
description (Transaction) | string | true | The description of the payment made |
Name | Required | Description |
---|---|---|
Transaction | true | Contains all the basic transaction information |
Allocations | false | Contains all the information regarding the allocation of money received from transaction to be paid to other providers in Direct Pay Online system. If this level is not sent, the system will allocate all the money from this transaction to the provider |
Additional | false | Contains an option to block specific payment options in the transaction (for example, on an application which needs fast payment, block off Direct Pay Online bank payment) |
Travelers | false | Contains information regarding travelers (passengers / guests) which will a process in Direct Pay Online system to verify that one of the payers name matches the name of one of the travelers |
ExtraData fields for different levels. If level is not mandatory then fields are also not required until you specify it.
If extraData value has [i] - it means that multiply object could be mapped. [i] - should always start with 1. It should be used even if you are mapping only one object.
Name | Type | Required | Description | Level |
---|---|---|---|---|
extraData.companyRefUnique | string | false | Company reference number, i.e also referred to as Booking ref | Transaction |
extraData.demandPaymentByTraveler | Boolean(1/0) | false | If marked as 1, the system will require one of the travelers which are included in the travelers tag to be the payer | Transaction |
extraData.emailTransaction | string | false | If marked as 1, the system will send the customer an e-mail about the transaction with a link to pay | Transaction |
extraData.companyAccRef | string | false | Internal accounting reference number | Transaction |
extraData.userToken | string | false | To define who created the transaction | Transaction |
extraData.defaultPayment | string | false | The code of the default payment option (the one to be displayed first in the payment page), options: CC - Credit card, MO - Mobile, PP - PayPal, BT - Bank transfer, XP - xPay | Transaction |
extraData.defaultPaymentCountry | string | false | Should be used only for Mobile default payment. Name of the default country for the payment option (DefaultPayment will work without this option too) | Transaction |
extraData.default_PaymentMNO | string | false | Should be used only for Mobile default payment. Name of the default MNO (mobile network operator) for the payment option (DefaultPayment will work without this option too) | Transaction |
extraData.transactionToPrep | Boolean(1/0) | false | Will mark the transaction as Marketplace Prep | Transaction |
extraData.voidable | Boolean(1/0) | false | If this tag sent, transaction will be checked in scoring process, if 0 and scoring above high risk/very high risk then will be blocked, if 1 then will go to a check by DPO support team | Transaction |
extraData.TRANSblockCountries | Boolean(1/0) | false | transaction block countries | Transaction |
extraData.allocationCode[i] | string | true | The code of the other provider to allocate money to | Allocations |
extraData.allocationAmount[i] | string | true | The allocated amount | Allocations |
extraData.allocationServiceType[i] | number | true | Allocation service type from list of services | Allocations |
extraData.allocationServiceDescription[i] | string | false | Allocation description | Allocations |
extraData.allocationInvoice[i] | string | false | Invoice of the allocation | Allocations |
extraData.allocationPnr[i] | string | false | Pnr of the allocation | Allocations |
extraData.blockPayment[i] | string | false | The code of the payment options to be blocked, options: CC - Credit card, MO - Mobile, PP - PayPal, BT - Bank transfer, XP - xPay | Additional |
extraData.travelerFirstName[i] | string | true | Traveler first name | Travelers |
extraData.travelerLastName[i] | string | true | Traveler last name | Travelers |
extraData.travelerPhone[i] | string | false | Traveler phone number | Travelers |
extraData.travelerPhonePrefix[i] | string | false | Traveler number prefix (without +) | Travelers |
extraData.aafTicketType | string | false | Ticket Type | AdditionalAirlineFields |
extraData.aafDocumentType | string | false | Document Type | AdditionalAirlineFields |
extraData.aafDateIssued | DateTime | true | Date Issued | AdditionalAirlineFields |
extraData.aafIATACarrierCode | IATA | true | IATA Carrier Code | AdditionalAirlineFields |
extraData.aafIATATravelAgencyNbr | IATA | false | IATA Travel Agency Number | AdditionalAirlineFields |
extraData.aafTicketCarrierName | string | false | Ticket Carrier Name | AdditionalAirlineFields |
extraData.aafTicketIssuerCityName | string | false | Ticket Issuer City Name | AdditionalAirlineFields |
extraData.aafPassengerCount | number | false | Number of Passengers | AdditionalAirlineFields |
extraData.aafConjTicketIndicator | string | false | Conjunction Ticket Indicator | AdditionalAirlineFields |
extraData.aafElecTicketIndicator | string | false | Electronic Ticket Indicator | AdditionalAirlineFields |
extraData.aafTicketNumber | string | true | Exchanged/Original Ticket No or PNR | AdditionalAirlineFields |
extraData.flightDescription[i] | string | true | The description of the payment made | AdditionalAirlineFields.FlightLeg |
extraData.flightType[i] | string | true | Service type number according to the options accepted from DPO | AdditionalAirlineFields.FlightLeg |
extraData.flightDate[i] | DateTime | true | Service date of the booked service Format: YYYY/MM/DD HH:MM | AdditionalAirlineFields.FlightLeg |
extraData.flightFrom[i] | IATA | true | 3 letters departure airport code | AdditionalAirlineFields.FlightLeg |
extraData.flightTo[i] | IATA | true | 3 letters destination airport code | AdditionalAirlineFields.FlightLeg |
extraData.flightRef[i] | string | false | Service Reference | AdditionalAirlineFields.FlightLeg |
extraData.carrierCode[i] | IATA | true | IATA carrier code | AdditionalAirlineFields.FlightLeg |
extraData.serviceClass[i] | string | true | Service Class | AdditionalAirlineFields.FlightLeg |
extraData.flightNumber[i] | string | true | Flight Number | AdditionalAirlineFields.FlightLeg |
extraData.fareBasisCode[i] | string | true | Fare Basis Code | AdditionalAirlineFields.FlightLeg |
extraData.stopOverCode[i] | string | true | Stop Over Code | AdditionalAirlineFields.FlightLeg |
extraData.aafTravelerFirstName[i] | string | true | First name | AdditionalAirlineFields.Traveler |
extraData.aafTravelerLastName[i] | string | true | Last name | AdditionalAirlineFields.Traveler |
extraData.aafTravelerPhone[i] | string | false | Phone number | AdditionalAirlineFields.Traveler |
extraData.aafTravelerPhonePrefix[i] | number | false | Phone number prefix (without +) | AdditionalAirlineFields.Traveler |
extraData.aafTravelerDateOfBirth[i] | DateTime | false | Traveler Date Of Birth | AdditionalAirlineFields.Traveler |
extraData.aafTravelerCountryCode[i] | string | false | Traveler Country Code | AdditionalAirlineFields.Traveler |
Merchant ID
and Hash Code Generation Key
are provided by Paygent.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Bank Transfer | Redirect | Debit |
goods
, add more Items
, but notice only Item Name
and Item Price
are countedPayment Method | Transaction Flows | Transaction Types |
---|---|---|
Wallet | Full-Page Redirect, Server to Server | Debit, Payout |
Parameter | Required | Description |
---|---|---|
customer.firstName | true | |
customer.lastName | true | |
customer.email | true | |
customer.ipAddress | false |
Parameter | Required | Description |
---|---|---|
customer.ipAddress | conditional | If no ipAddress is passed, the ipAddress of the references debit transaction will be used |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | All |
Creditcard
Name | Description | Required |
---|---|---|
extraData.paymentMode | Overwrite payment mode, see https://docs.payline.com/display/DT/Codes+-+Mode | Needed when using Contract Number (PASS) |
Note: to enable sending of Payfacs parameters, please enable the "Enable Payfacs" setting on the connector.
Name | Description | Amex | CB | MC | VISA |
---|---|---|---|---|---|
extraData.subMerchantId | Identifier of the sub-market (final beneficiary) defined by the payment provider (Payment Facilitator). (AN15) | R | R | R | R |
extraData.subMerchantMCC | MCC Code (N4) | R | R | R | R |
extraData.subMerchantName | Sub-merchants name (AN15) | R | R | ||
extraData.subMerchantSIRET | SIRET (French merchants) (AN14) | O | R | O | O |
extraData.subMerchantTaxCode | Tax code (US and Canadian merchants) (AN) - Mandatory for countries USA and CAN. | C | C | ||
extraData.subMerchantStreet | Street name (AN30) | R | O | ||
extraData.subMerchantCity | City (AN15) | R | O | ||
extraData.subMerchantZipCode | Postal code (AN15) | R | O | ||
extraData.subMerchantCountry | Country code (AN2) | R | R | ||
extraData.subMerchantState | State (AN3) | O | O | ||
extraData.subMerchantEmailAddress | Email (ANS40) | R | |||
extraData.subMerchantPhoneNumber | Phone number (AN20) | R |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Credit Card | payment.js, HPP | Debit, Refund, Authorize, Capture |
Credit Card (PayU Colombia) | payment.js, HPP | Debit, Refund |
Netbanking | Full-Page Redirect | Debit, Debit with Register, Refund |
UPI | Full-Page Redirect | Debit, Refund |
PhonePe | Full-Page Redirect | Debit, Refund |
PayTM | Full-Page Redirect | Debit, Refund |
Payzapp | Full-Page Redirect | Debit, Refund |
Creditcard
Extra data | Required | Description |
---|---|---|
customer.email | conditional | Required for PayU Mexico, Brazil and Colombia |
description | conditional | Required for PayU Mexico, Brazil and Colombia |
customer.billingCountry | conditional | Required for PayU Russia |
customer.nationalId | conditional | Required for PayU Colombia |
customer.extraData.documentType | conditional | Required for PayU Colombia. Possible values are - CC, CE, NIT, TI, PP, IDC, CEL, RC, DE |
The following parameters are only required for One-off transactions or initial recurring transactions. On recurring transactions the value of the referenced transaction will be used if not explicitly set.
Netbanking
Extra data | Required | Description |
---|---|---|
customer.billingPhone | true | |
customer.firstName | true | |
customer.lastName | true | |
customer.email | true | |
customer.extraData.bank_code | true | The customers bank code |
customer.extraData.account_number | conditional | Only required for initial recurring transactions |
customer.extraData.account_type | conditional | Only required for initial recurring transactions |
customer.extraData.start_date | conditional | Only required for initial recurring transactions |
customer.extraData.end_date | conditional | Only required for initial recurring transactions |
UPI
Extra data | Required | Description |
---|---|---|
customer.billingPhone | true | |
customer.firstName | true | |
customer.email | true | |
customer.extraData.vpa | true | The customers vpa |
PayTM, PhonePe, PayZapp
Extra data | Required | Description |
---|---|---|
customer.billingPhone | true | |
customer.firstName | true | |
customer.email | true |
The required currency is TND (Tunisian dinar).
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | Redirect | Debit, Refund |
Parameter | Required | Description |
---|---|---|
description | true | Transaction note. |
customer.firstName | true | First name of the customer. |
customer.lastName | true | Last name of the customer. |
customer.email | true | Email of the customer. |
customer.billingPhone | true | Phone number of the customer. |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | Full-Page Redirect | Debit & Refund |
Bancontact | Full-Page Redirect | Debit & Refund |
Belfius | Full-Page Redirect | Debit & Refund |
Dotpay | Full-Page Redirect | Debit & Refund |
EPS | Full-Page Redirect | Debit & Refund |
Giropay | Full-Page Redirect | Debit & Refund |
iDeal | Full-Page Redirect | Debit & Refund |
KBC | Full-Page Redirect | Debit & Refund |
Multibanco | Full-Page Redirect | Debit & Refund |
MyBank | Full-Page Redirect | Debit & Refund |
POLi | Full-Page Redirect | Debit & Refund |
Przelewy24 | Full-Page Redirect | Debit & Refund |
SafetyPay | Full-Page Redirect | Debit & Refund |
Sofort/Klarna | Full-Page Redirect | Debit & Refund |
Boleto | Full-Page Redirect | Debit & Refund |
Oxxo | Full-Page Redirect | Debit & Refund |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | All |
The same customer identification must be used for all affected transactions (for the initial, as well as for subsequent transactions).
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Credit card | payment.js, Redirect & iFrame Form | Register, Preauthorize, Void, Capture, Debit, Refund, Payout |
Parameter | Type | Required | Description |
---|---|---|---|
extraData.avsCheck | bool | false | If true is sent, the customers postal code and billing address will be sent for verification |
extraData.preauthSupplementary | bool | false |
Parameter | Type | Required | Description |
---|---|---|---|
extraData.captureType | string | false | One of partial , full , final |
Parameter | Type | Required | Description |
---|---|---|---|
extraData.avsCheck | bool | false | If true is sent, the customers postal code and billing address will be sent for verification |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | All + Incremental Authorizations |
Name | Type | Required | Description |
---|---|---|---|
extraData.shipFromZip | string | false | |
items[].extraData.customsTax | string | false |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Credit card | payment.js, Redirect & iFrame Form | Register, Preauthorize, Void, Capture, Debit, Refund, Payout |
Parameter | Type | Required | Description |
---|---|---|---|
extraData.avsCheck | bool | false | If true is sent, the customers postal code and billing address will be sent for verification |
extraData.preauthSupplementary | bool | false |
Parameter | Type | Required | Description |
---|---|---|---|
extraData.captureType | string | false | One of partial , full , final |
Parameter | Type | Required | Description |
---|---|---|---|
extraData.avsCheck | bool | false | If true is sent, the customers postal code and billing address will be sent for verification |
In order to use the Payoneer Adapter, you will have to contact Payoneer to register a Backdirect Uri of the Gateway to your Payoneer Account.
e.g.: https://{HOSTNAME}/backdirect/custom/{CONNECTOR-ID}.
In order to process via Payoneer you will have to generate unique ID that you register your clients with, this ID is known as the Payoneer Payee Id.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Payoneer | Full-Page Redirect | Debit, Payout, Refund |
Key | Required | Values | Validation | Description |
---|---|---|---|---|
description | true | string | max. 255 characters | The description is required for a Payoneer Transaction |
payeeId | true | string | max. 50 characters | The Payoneer Payee Id is a unique ID that the Merchant has so generate in order to register or reference the individual client |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
PayPal | Full-Page Redirect | All |
PayPal supports different kind of payments:
Capture
requestA Debit
will always use the Sale type. A Preauthorize
will by default use
the Authorization type.
You can control the behavior for Preauthorize
by sending the
paypalPaymentAction
parameter (see below).
You can use the following extraData
keys, which will be passed in the
corresponding fields to PayPal:
Key | Values | Description |
---|---|---|
paypalPaymentAction | "Authorization", "Order", "Order_Auth", "Sale" | Only for Preauthorize transactions. Defines "PaymentAction" for PayPal payments. "Order_Auth" automatically performs an Authorization for full amount after Order has been confirmed by customer |
addressOverride | 0 or 1 | Tells PayPal to use the shipping address you are providing instead of the customer's configured address in the PayPal account |
noShipping | 0, 1, 2 | 0 = Display Shipping address, 1 = No Shipping address (digital goods), 2 = Use customer's configured shipping address |
noteToBuyer | string | a note displayed to the customer |
requiredConfirmShipping | true, false | Refer to PayPal documentation |
noShipping | 0, 1, 2 | 0 = Display, 1 = No display, 2 = Buyers account |
allowNote | true, false | Refer to PayPal documentation |
localeCode | Refer to PayPal documentation | |
pageStyle | Refer to PayPal documentation | |
hdrImg | Refer to PayPal documentation | |
payflowColor | Refer to PayPal documentation | |
cartBoardColor | Refer to PayPal documentation | |
logoImg | Refer to PayPal documentation | |
solutionType | "Sole", "Mark" | Refer to PayPal documentation |
landingPageType | "Billing", "Login" | Refer to PayPal documentation |
channelType | "Merchant", "eBayItem" | Refer to PayPal documentation |
totalType | "Total", "EstimatedTotal" | Refer to PayPal documentation |
brandName | Refer to PayPal documentation | |
customerServiceNumber | Refer to PayPal documentation | |
giftMessageEnable | Refer to PayPal documentation | |
giftReceiptEnable | Refer to PayPal documentation | |
giftWrapEnable | Refer to PayPal documentation | |
giftWrapName | Refer to PayPal documentation | |
giftWrapAmount | Refer to PayPal documentation | |
buyerEmailOptInEnable | Refer to PayPal documentation | |
taxIdType | Refer to PayPal documentation | |
taxId | Refer to PayPal documentation | |
merchantSessionId | Refer to PayPal documentation | |
isFinalCapture | true, false | Only for Capture transactions. Sending isFinalCapture = true will mark the capture as final on the PayPal side and subsequent captures won't be possible. Default value = false |
If submitting items, the following fields are Mandatory:
Field |
---|
quantity |
name |
price |
extraData -> category |
Item ExtraData Parameters:
Key | Values | Description |
---|---|---|
category | Refer to PayPal documentation | |
number | Refer to PayPal documentation | |
tax | Refer to PayPal documentation | |
weightValue | Refer to PayPal documentation | |
weightUnit | Refer to PayPal documentation | |
lengthValue | Refer to PayPal documentation | |
lengthUnit | Refer to PayPal documentation | |
widthValue | Refer to PayPal documentation | |
widthUnit | Refer to PayPal documentation | |
heightValue | Refer to PayPal documentation | |
heightUnit | Refer to PayPal documentation |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
PayPal | payment.js | Debit, Register, Preauthorize, Capture, Refund, Deregister, Recurring Debit/Preauthorize |
PayPal ACDC | payment.js | Debit, Register, Preauthorize, Capture, Refund, Deregister, Recurring Debit/Preauthorize |
PayPal requires you to display the PayPal Button on your Checkout page. This is handled by the payment.js integration.
1. Embed the payment.min.js in your page
<script data-main="payment-js" src="https://asxgw.com/js/integrated/payment.1.3.min.js"></script>
2. Provide a DIV element on your page for the PayPal button
<div id='paypalButtonDiv'></div>
3. Initialize the payment.js with the following parameters:
Option | Required | Type | Description |
---|---|---|---|
paypal-btn |
yes | HTMLElement | Container element into which the button will be rendered. |
currency |
yes | string | Currency |
intent |
yes | string | Possible values - capture, authorize. Preauthorize flow requires to send authorize. Otherwise, it should be set to capture. |
createOrderEndpoint |
yes | string | Your server endpoint where prepareX transaction is implemented |
vaultingWithoutPurchase |
no | boolean | Only required with register flow. |
vault |
no | boolean | Only required for register and debit/preauthorize with register = true |
userIdToken |
no | boolean | Required for One-click payment |
enablePaylater |
no | boolean | If you would like to display PayLater button, make sure that this field is set to true |
completeHandler |
no | (data) => void | Triggered after successful payment. |
errorHandler |
no | (error) => void | Triggered if an error occurred in payment process. |
cancelHandler |
no | (data) => void | Triggered if the user canceled the payment process. |
button |
no | object | https://developer.paypal.com/sdk/js/reference/#link-style |
<script>
var paymentJs = new PaymentJs('1.3');
errorHandler = function (error) {
// If an error prevents buyer checkout, alert the user that an error has occurred with the buttons using the onError callback
}
cancellationHandler = function (data) {
// When a buyer cancels a payment, they typically return to the parent page.
// You can instead use the onCancel function to show a cancellation page or return to the shopping cart.
}
completeHandler = function (paypalToken) {
// Captures the funds from the transaction and shows a message that tells the buyer the payment was successful.
// The method is called after the buyer approves the transaction on the paypal.com website.
// paypalToken should be passed to the debit request using extraData with the key 'paypalToken'
}
var paypalOptions = {
button: {
color: gold,
},
currency: "EUR",
intent: "capture" || "authorize", // debit = capture / preauthorize = authorize
vaultingWithoutPurchase: false // should be set to true if you're doing register call
vault: false // should be set to true if you would like to vault transaction using PayPal vaulting. for example register / debit + withRegister=true
};
// Prepare Transaction
var prepareCall = () => {
return fetch('{MY_PREPARE_ENDPOINT}', {
method: 'POST',
}).then(function (res) {
return res.json();
}).then(function (data) {
return data.id;
});
};
paymentJs.initPaypal(
'public-integration-key',
'paypal-button-div',
completeHandler,
errorHandler,
cancellationHandler,
paypalOptions,
prepareCall
);
</script>
4. You can now call the Transaction API with the extraData.paypalToken set to the paypalToken returned to the completeHandler.
PayPal requires to create order/setup token when the PayPal button is being pressed. That's being handled with prepare-debit/prepare-preauthorize/prepare-register API calls. Therefore, you would need to implement prepareDebit call and provide your server endpoint initializing PayPal via PaymentJs.
When using the Hosted Payment Page option, the prepare call can be handled automatically on our side. E.g.
prepareCall = function() {
return fetch('', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
}).then(function (res) {
return res.json();
}).then(function (data) {
return data.orderID;
});
}
Key | Values | Description |
---|---|---|
extraData.shipping_type | "SHIPPING", "PICKUP_IN_STORE", "PICKUP_FROM_PERSON" | Shipping type |
extraData.shipping_cost | string | Shipping cost that will be displayed to the customer |
extraData.shipping_preference | "GET_FROM_FILE", "NO_SHIPPING", "SET_PROVIDED_ADDRESS" | By default is being set on the connector level. However, by using this field can be overwritten per transaction. "SET_PROVIDED_ADDRESS" requires to provide shipping details |
extraData.brand_name | string | Brand name |
extraData.discount_amount | string | Discount amount |
extraData.experience_context_shipping_preference | string | NO_SHIPPING = no shipping information, e.g. for digital goods SET_PROVIDED_ADDRESS = show address on PayPal but don't allow the customer to change it - item will be shipped to this address GET_FROM_FILE = shipping address was not provided, ask the buyer to select a shipping address from their PayPal profile |
To render One-click payment button you would need to do a prepareDebit/preparePreauthorize call to retrieve user-token-id that needs to be passed to paymentJs via paypalOptions.userIdToken.
Example API Request:
{
"referenceUuid": "referenceUuid",
"extraData": {
"useReturnUserExperience": "true"
},
"transactionIndicator": "CARDONFILE"
}
Key | Values | Description |
---|---|---|
referenceUuid | string | Initial transaction UUID |
extraData.useReturnUserExperience | string | Expected value: true |
transactionIndicator | CARDONFILE | Transaction Indicator should be CARDONFILE |
Example API Response:
{
"data": {
"success": true,
"returnType": "FINISHED",
"widgetToken": "eyJraWQiOiJhMDRiMjEwZDYzYjU0NWQzODEwOWUxNDM3ZjQ3ZWYxMiIsInR5cCI6IkpXVCIsImFsZyI6IkVTMjU2In0.eyJpc3MiOiJodHRwczovL2FwaS5zYW3kYm94LasdasXBhbC5jb20iLCJzdWIiOiJDRVlINFVNUUpLMzM4IiwiYWNyIjpbImNsaWVudCJdLCJzY29wZSI6WyJCcmFpbnRyZWU6VmF1bHQiXSwib3B0aW9ucyI6eyJjdXN0b21lcl9pZCI6IklpUklSYWR1UEMifSwiYXoiOiJjY2cxOC5zbGMiLCJleHRlcm5hbF9pZCI6WyJQYXlQYWw6Q0VZSDRVTVFKSzMzOCIsIkJyYWludHJlZTozZG04NjdjdHJyZ3Y2Y2R3Il0sImV4cCI6MTcxNTcwNTEwNiwiaWF0IjoxNzE1NzA0MjA2LCJqdGkiOiJVMkFBSVA4NGprc3dfX1pYSHduR21KeVRQV003SkxzbFJLVlI2OHlxOEN4YmhHN1VWNkFWVVlyTTBqbXRyVEZmU3hBbjZKa0hlekNvSUtTdlZ6LUVpR1JxbVl4VWZaRHJOMDY1eXZQRkMySmgtQWkxaXNiV0xOWnh1MWJNa0VkdyJ9._s54YCC8MRqjllX2wDTmo4fQyTkUXl6_7aPOiNwBnVBJfLoQlwIZvtrkvgxU7RPBQy3uiRp-hhK4LGvwRC74CA"
}
}
If submitting items, the following fields are Mandatory:
Field |
---|
quantity |
name |
price |
extraData.category |
Item Additional Parameters:
Key | Values | Description |
---|---|---|
description | string | Item description |
extraData.sku | string | Item SKU |
l2l3Data.taxAmount | string | Item tax amount |
1. Embed the payment.min.js in your page
<script data-main="payment-js" src="https://asxgw.com/js/integrated/payment.1.3.min.js"></script>
2. Provide an input field for the paypalToken
which will be created later.
<input type="hidden" name="paypalToken" id="paypalToken" value="">
3. Initialize the payment.js with the following parameters:
paymentJsPayPal.initPaypal(
'the public integration key of your connector',
{
cardName: 'card-name-field-container',
cardNumber: 'card-number-field-container',
cardCvv: 'card-cvv-field-container',
cardExpiry: 'card-expiry-field-container'
},
completeHandler, <!-- your callback function for when the token has been created -->
errorHandler, <!-- your callback function in case of error -->
cancellationHandler, <!-- your callback funciton in case of cancellation -->
payPalOptions, <!-- see PayPalOptions -->
prepareCall <!-- see prepareCall -->
);
completeHandler
The completeHandler callback will be called once the PayPal token has been created
Example
completeHandler = function (payPalToken) {
// do things when the PayPal token is created
console.log('done: ' + payPalToken);
// set the PayPal token and submit
<!-- important to name it paypalToken -->
document.getElementById("paypalToken").value = paypalToken;
document.getElementById("payment-form").submit();
}
prepareCall
The prepareCall must be implemented by you and is based on the transaction type: prepare-debit/prepare-preauthorize/prepare-register
Please refer to Prepare Transaction
When using the Hosted Payment Page option, the prepare call can be handled automatically on our side. E.g.
prepareCall = function() {
document.getElementById('loader').style.display = '';
return fetch('{{ paypal.prepareCallEndpoint }}', {
method: 'POST',
}).then(function (res) {
return res.json();
}).then(function (data) {
return data.orderID;
});
}
errorHandler, cancellationHandler
Here you may implement handling of scenarios for errors and user cancellations.
payPalOptions
Option | Required | Type | Description |
---|---|---|---|
currency | yes | string | Currency |
intent | yes | string | Possible values - capture, authorize. Preauthorize flow requires to send authorize. Otherwise, it should be set to capture. |
vaultingWithoutPurchase | no | boolean | Should be set to true if you would like to vault transaction using PayPal vaulting. for example register / debit + withRegister=true |
vault | no | boolean | Should be set to true if you would like to vault transaction using PayPal vaulting. for example register / debit + withRegister=true |
style | no | object | Here you may override the style of the card fields |
Example
var paypalOptions = {
currency: "EUR",
intent: "authorize",
vaultingWithoutPurchase: false,
vault: false,
style: {
'input': {
'font-size': '12px',
'line-height': '1.7rem',
'color': '#000',
'padding': '5px',
'appearance': 'none'
},
':focus': {
'padding': '5px',
'outline': 'none'
}
}
};
4. Trigger Payment with billing address data
Billing address data should be collected and submitted with the card data.
To trigger the payment you may use the paymentjs.trigger(data)
function.
Example
document.getElementById('submit-btn').addEventListener('click', function (event) {
event.preventDefault();
paymentJs.trigger({
billingAddress: {
addressLine1: document.getElementById('card-billing-address-line-1').value,
addressLine2: document.getElementById('card-billing-address-line-2').value,
adminArea1: document.getElementById('card-billing-address-admin-area-line-1').value,
adminArea2: document.getElementById('card-billing-address-admin-area-line-2').value,
countryCode: document.getElementById('card-billing-address-country-code').value,
postalCode: document.getElementById('card-billing-address-postal-code').value
}
});
});
Please note that billing address line 1 and country code are mandatory.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Paysafecard | Full-Page Redirect, Server-to-server | Debit, Refund, Payout |
If the transaction includes the parameter 'referenceUuid' the customer parameters will be extracted from the reference transaction if they are not explicitly provided.
Name | Type | Required | Description |
---|---|---|---|
customer.identification | string | true | Unique id of the customer in your system |
customer.firstName | string | true | |
customer.lastName | string | true | |
customer.email | string | conditional | Required if psc_id is not provided |
customer.extraData.psc_id | string | conditional | Required if email is not provided |
customer.birthDate | string | true |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
ValU | Full-Page Redirect | Debit, Refund |
Credit card | Full-Page Redirect | Debit, Refund |
Parameter | Type | Required | Description |
---|---|---|---|
description | true |
Parameter | Type | Required | Description |
---|---|---|---|
customer.firstName | String | false | |
customer.lastName | String | false | |
customer.billingAddress1 | String | false | |
customer.billingCity | String | false | |
customer.billingPostcode | String | false | |
customer.billingState | String | false | |
customer.billingCountry | String | false | |
customer.billingPhone | String | false | |
customer.shippingFirstName | String | false | |
customer.shippingLastName | String | false | |
customer.shippingAddress1 | String | false | |
customer.shippingCity | String | false | |
customer.shippingPostcode | String | false | |
customer.shippingState | String | false | |
customer.shippingCountry | String | false | |
customer.shippingPhone | String | false | |
extraData.shippingEmail | String | false |
Parameter | Type | Required | Description |
---|---|---|---|
description | true |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
BankTransfer | Full-Page Redirect(Debit), Server-To-Server(Payout) | Debit, Register, Payout |
Direct Carrier Billing (SMS) | Full-Page Redirect(Debit), Server-To-Server(Payout) | Debit, Register, Payout |
PerfectMoney Account | Full-Page Redirect(Debit), Server-To-Server(Payout) | Debit, Register, Payout |
PerfectMoney Voucher | Full-Page Redirect(Debit), Server-To-Server(Payout) | Debit, Register, Payout |
PerfectMoney Wallet | Full-Page Redirect(Debit), Server-To-Server(Payout) | Debit, Register, Payout |
Please note, that a register transaction only makes sense to be used with followed payout transactions and not for referencing debit transactions, as the latter require the customer to be redirected to PerfectMoney for re-authentication purposes on each follow-up debit. That is different to all other Register -> Debit/Preauth flows on other adapters.
Extra Data | Required | Description |
---|---|---|
availablePaymentMethods | false | When using the PerfectMoney wallet payment method, this makes it possible to make only specific payment methods available. Comma separated list of account,voucher,sms,wire,all |
forcedPayerAccount | false | If you want to restrict the Payer to use a specific account you know, provide the account id here E.g. U1234567 |
baggageFields | false | Comma separated list of extra data keys, which values you would like to forward to PerfectMoney. All fields presented here become mandatory. E.g. baggageFields=systemId |
BAGGAGE-PARAM1 | conditional (if provided within extra.baggageFields yes) | Comma separated list of extra data keys, which values you would like to forward to PerfectMoney. All fields presented here become mandatory. E.g. baggageFields=BAGGAGE-PARAM1,.. |
.... | conditional (if provided within extra.baggageFields yes) | any key value pair you want to forward to PerfectMoney |
success URL | false | To where the shopper should be back-directed after a successful payment |
error URL | false | To where the shopper should be back-directed in case of an error or customer cancellation |
Extra Data | Required | Description |
---|---|---|
accountId | false | The account id of the PerfectMoney account the customer want's to use. If not supplied, the customer has to enter it, after being redirected to the returned redirect URL. |
accountName | false | If provided, this accountName will be compared (case-insensitive) against the PerfectMoney account name associated with the accountId. |
accountFullName | false | If provided, this accountFullName will be compared (case-insensitive) against the PerfectMoney account full name associated with the accountId. |
accountPhonenumber | false | If provided, this accountPhonenumber will be compared (case-insensitive) against the PerfectMoney account phonenumber associated with the accountId. |
requireVerifiedAccount | false | If provided, the register transaction will only succeed, if the PerfectMoney account details are currently verified though the PerfectMoney KYC checks. |
success URL | false | To where the shopper should be back-directed after a successful payment |
error URL | false | To where the shopper should be back-directed in case of an error or customer cancellation |
If you want to validate the PerfectMoney account data: accountName, accountFullName, accountPhonenumber, requireVerifiedAccount, your PerfectMoney account has be enabled to return those details. Please request that from your account manager at PerfectMoney.
Extra Data | Required | Description |
---|---|---|
payeeAccount | true (if not referencing a register transaction) | The PerfectMoney account id the funds will be transferred to |
code | false | Provide to enable transfer protection. If code is present, payee must enter this code to get money to his/her account. |
codeValidDays | If code is provided yes. | Number of days you want the transfer with protection code to be valid. If payee does not enter the protection code during this period, money will be transferred back to your account. Must be integer value from 1 to 365 days. |
If the payout references a register transaction, it depends on the extra data provided on the initial register transaction, if the current PerfectMoney account details should be compared to those. For example if the extra data requireVerifiedAccount has been provided, all follow-up payouts require the current verification status to be verified. If that is not the case, the payout fails.
If additional extra data fields (accountName|accountFullName|accountPhonenumber) have been provided initially, they also have to match the current returned PerfectMoney account details. If they do not, the payout fails.
Currencies
EUR, USD, OAU
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | Debit, Register, Preauthorize, Capture, Void, Refund, Deregister |
Trustly | Full-Page Redirect | Debit |
Trustly | false interaction | Payout, Refund |
MaxxWallet | Full-Page Redirect | Debit |
Creditcard
Trustly
Parameter | Required |
---|---|
customer.firstName | true |
customer.lastName | true |
customer.email | true (debit, payout) |
customer.billingCountry | true (debit) |
extraData.bankCountry | required for payout if no reference transaction is provided |
customer.iban | required for payout if no reference transaction is provided |
customer.birthDate | required for payout if no reference transaction is provided |
MaxxWallet
Parameter | Required |
---|---|
customer.firstName | true |
customer.lastName | true |
customer.email | true |
customer.billingCountry | true |
customer.billingAddress1 | true |
customer.billingCity | true |
customer.billingPostcode | true |
customer.billingState | true |
customer.billingPhone | true |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
AstroPayCard | Full-Page Redirect | Debit |
AstroPayDirect | Full-Page Redirect | Debit & Refund |
BancoDoBrasil | Full-Page Redirect | Debit |
Bcmc | Full-Page Redirect | Debit & Refund |
Blik | Full-Page Redirect | Debit & Refund |
Boleto | Full-Page Redirect | Debit |
Bradesco | Full-Page Redirect | Debit |
DirectDebit | Server-to-server | Debit & Refund |
EPS | Full-Page Redirect | Debit & Refund |
Giropay | Full-Page Redirect | Debit & Refund |
IbanOnDemand | Full-Page Redirect | Debit & Refund |
iDeal | Full-Page Redirect | Debit & Refund |
InstantTransfer | Full-Page Redirect | Debit & Refund |
Itau | Full-Page Redirect | Debit |
Multibanco | Full-Page Redirect | Debit |
MyBank | Full-Page Redirect | Debit & Refund |
Oxxo | Full-Page Redirect | Debit |
PagoFacil | Full-Page Redirect | Debit |
Paypal | Full-Page Redirect | Debit & Refund |
Paysafecard | Full-Page Redirect | Debit |
PayU | Full-Page-Redirect | Debit & Refund |
POLi | Full-Page Redirect | Debit |
Przelewy24 | Full-Page Redirect | Debit & Refund |
Qiwi | Full-Page Redirect | Debit & Refund |
QiwiPayout | Full-Page Redirect | Debit |
Raberil | Full-Page Redirect | Debit & Refund |
RaberilPayout | Full-Page Redirect | Debit & Refund |
RapiPago | Full-Page Redirect | Debit |
SafetyPay | Full-Page Redirect | Debit & Refund |
SepaPayout | Server-to-server | Debit |
Skrill | Full-Page Redirect | Debit & Refund |
Sofort | Full-Page Redirect | Debit & Refund |
Teleingreso | Full-Page Redirect | Debit |
Trustly | Full-Page Redirect | Debit & Refund |
TrustPay | Full-Page Redirect | Debit |
Ukash | Full-Page Redirect | Debit & Refund |
Verkkopankki | Full-Page Redirect | Debit |
YellowPay | Full-Page Redirect | Debit & Refund |
none
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | Debit, Register, Preauthorize, Capture, Void |
none
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
CreditCard | payment.js | Debit, Preauthorize, Capture, Refund, Void, Register |
ApplePay | Payment Token | |
GooglePay | Payment Token | |
Bizum | Redirect | Debit |
Be aware that there is a format restriction for the required Parameter
DS_MERCHANT_ORDER
, which represents the given MerchantTransactionId
.
The currently known max character limit is 12.
Please consult the official Redsys Api Documentation for further information - (https://pagosonline.redsys.es/conexion-rest.html)
Key | Required | Type | Description |
---|---|---|---|
Terminal Id | true | string | A fixed value given by Redsys for each Merchant |
Merchant Id | true | string | A fixed value given by Redsys for each Merchant |
Key to perform 3DES Card encryption | conditional | string | A fixed value given by Redsys for each Merchant |
Key to sign MerchantParameters | conditional | string | A fixed value given by Redsys for each Merchant |
Merchant Descriptor | conditional | string | Value which will be sent as DS_MERCHANT_MERCHANTDESCRIPTOR |
Username to load stored Production Credentials | conditional | string | Username that is given by us in case "Key to perform 3DES Card encryption" is stored internally by us |
Password to load stored Production Credentials | conditional | string | Password that is given by us in case "Key to perform 3DES Card encryption" is stored internally by us |
Prioritize Description Field over MerchantTransactionId Field | false | boolean | In case that the "Description" Field, send in the Request, should be used instead of the "MerchantTransactionId" Field |
Assign Timestamp to empty Description Field | false | boolean | In case that the "Description" Field should be automatically filled with the current Timestamp. Works in conjunction with the "Prioritize Description Field over MerchantTransactionId Field" Option. |
Increment order id | false | boolean | In case of transaction failover/cascading, the order ID (merchantTransactionId) will be automatically incremented to prevent a duplicate order ID. Note: if the merchantTransactionId = 12 length, the last 2 characters will be replaced for the increment |
Note: If the options Prioritize Description Field over MerchantTransactionId Field
&
Assign Timestamp to empty Description Field
are enabled simultaneously the first 6
characters of the respective Transaction are appended to the timestamp to ensure uniqueness.
Parameter | maps to |
---|---|
description | DS_MERCHANT_PRODUCTDESCRIPTION |
Key | Required | Type | Description |
---|---|---|---|
Terminal Id | true | string | A fixed value given by Redsys for each Merchant |
Merchant Id | true | string | A fixed value given by Redsys for each Merchant |
ParamsKey | true | string | A fixed value given by Redsys for each Merchant |
SideNote: The merchantTransactionId which has to be sent in the API request, must be between 4 and 12 Characters long to work for Bizum.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard Redirect | Full-Page Redirect | Debit, Refund |
Key | Value | Transaction Type |
---|---|---|
Description | string | Debit, Refund |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | Debit, Register, Preauthorize, Capture, Void, Refund, Deregister |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | Full Page Redirect | Debit, Preauthorize, Capture, Void, Refund |
Key | Value | Required | Flow | Description |
---|---|---|---|---|
extraData.product |
pay-in-3 (default)pay-in-4 later |
true (if not filled,the default value will be pay-in-3 ) |
Debit, Preauthorize | pay-in-3 : to split the amount into 3 installmentspay-in-4 : to split the amount into 4 installmentslater : the whole amount will be booked after 14 days |
extraData.delay |
true |
false | Preauthorize | to delay the capture, (entered when creating Preauthorize ) |
extraData.period |
numerical between [60000] and [2160000000] milliseconds | true (if delay is true ) |
Preauthorize | the period of that's wished to extend the capture expiry time (when creating a Preauthorize ) |
It's mandatory to add items to the Debit and Preauthorize transactions where
Item Description
represents the "category", and the Item Identification
represents the "sku" of the item.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Bank Transfer | Full-Page Redirect & Server-to-Server | Register & Debit |
Parameter | Required | Transaction Types | Description |
---|---|---|---|
language | false | register & debit | Language of shopper. Possible values: TH and EN (default) |
additionalId1 | true | register | Merchant reference |
additionalId2 | false | register | Merchant reference |
Description | false | register | Option description, passed on during register |
national ID (customer) | false | register | Citizen ID |
success URL | true | register | URL to where the shopper will be back-directed to the merchant |
error URL | false | register | URL to where the shopper will be back-directed to the merchant (defaults to success URL if not present) |
iban (customer) | conditional | debit | Bank account to charge; alternatively it's possible to provide a reference to a register TX |
identification (customer) | false | debit | Merchant's customer identifier |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form | All |
Cash-To-Code | iFrame Form | Debit only |
none
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
DirectDebit | iFrame Form & Server-To-Server | Debit, Register, Deregister, Refund, Payout |
BankTransfer | Full-Page Redirect | Debit, Refund |
Depending on your setup SepaExpressV2 DirectDebit can be used as Server-to-Server only integration, or with an iFrame Payment form.
For the Server-to-Server integration the IBAN must be sent within the customer details, otherwise the customer will enter its IBAN within the iFrame form.
For SepaExpressV2 BankTransfer, you must use a full-page redirect instead.
Key | Required | Values | Description | ||||
---|---|---|---|---|---|---|---|
customer.iban | conditional | string | Required if no reference transaction provided. | ||||
customer.bic | false | string | |||||
customer.firstName | conditional | string | Required if no company is provided | ||||
customer.lastName | conditional | string | Required if no company is provided | ||||
customer.company | false | string | description | conditional | string | Required for payouts. | |
extraData.checkAmount | conditional | float | Required for register calls. | ||||
extraData.checkCurrency | conditional | string (3 letter currency code) | Required for register calls. | ||||
extraData.approvalBy | false | string | currently allowed values: click, sms, email, ais |
Key | Required | Values | Description |
---|---|---|---|
extraData.bankAccountId | conditional | string | Required unless a new BankAccount to create is given. |
customer.identification | conditional | string | Required unless a new customer to create is given. |
customer.bic | false | string | |
customer.firstName | conditional | string | Required if no company is provided |
customer.lastName | conditional | string | Required if no company is provided |
customer.company | false | string | Customer company |
description | conditional | string | Required for payouts. |
customer.billingAddress1 | false | string | Billing address line 1 |
customer.billingAddress2 | false | string | Billing address line 2 |
customer.billingPostcode | false | string | Billing postal code |
customer.billingCity | false | string | Billing city |
customer.billingState | false | string | Billing state |
customer.billingCountry | false | string | Billing country |
customer.email | false | string | Customer email |
customer.shippingPhone | false | string | Customer phone |
paymentData.ibanData.iban | true | string | IBAN |
currency | true | string | Currency code |
amount | true | string | Amount of transaction |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | Debit, Register, Preauthorize, Capture, Void, Refund, Deregister |
Parameter | Required |
---|---|
customer.identification | true |
customer.firstName | true |
customer.lastName | true |
customer.billingAddress1 | true |
customer.billingCity | true |
customer.billingPostcode | true |
customer.billingState | true |
customer.billingCountry | true |
customer.billingPhone | true |
customer.email | true |
customer.ipAddress | true |
Creditcard
Depending on your merchant account, additional parameters might be mandatory.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | All |
If the dynamic descriptor is enabled, it is possible to set the descriptor with
the extra parameter extraData.descriptor
.
We also support final capture, for this you have to send the extra parameter
extraData.captureType
- final
.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Skrill | Full-Page Redirect | Debit, Refund, Payout |
Key | Values | Description |
---|---|---|
extraData.companyName | string | Display name on the payment page |
extraData.subject | string | for Payouts: Subject of the notification email (250 1-byte characters) |
extraData.note | string | for Payouts: Comment to be included in the notification email (max 2000 1-byte characters) |
The customer verification service is used to check if a customer, identified by an email address, is registered with Skrill.
Name | Type | Required | Description |
---|---|---|---|
string | true | The customers email | |
firstName | string | false | The customers first name |
lastName | String | false | The customers last name |
dateOfBirth | string | false | The customers date of birth |
postCode | string | false | The customers postal code or zip code |
country | string | false | The customers 2-code country of residence. |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Sofortüberweisung | Full-Page Redirect | Debit only |
iDeal | Full-Page Redirect | Debit, Refund* |
*Refund is only available in BE, NL
Parameter | Required | Description |
---|---|---|
customer.bic | true | Bankcode of customer* |
customer.billingCountry | true | Customer country |
description | conditional | Required if reason1 is not given, max. 27 characters |
extraData.reason1 | conditional | Required if description is not given, max. 27 characters |
extraData.reason2 | false | Can be given additional to reason1 , max. 27 characters. If both reasons are given, their total number of characters must not exceed 31 characters |
*For the BIC you may do an Options Request using the
identifier iDealBankList
. It will return a list of available banks for iDeal
which you should render to let the customer pick a bank. You should then
pass the selected bank code as bic
element inside IbanCustomer.
Parameter | Required | Description |
---|---|---|
extraData.reason1 | false | max. 27 characters, if none given it uses the description of the initial transaction |
extraData.reason2 | conditional | Can be given additional to reason1 , max. 27 characters. If both reasons are given, their total number of characters must not exceed 31 characters |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | All |
none
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | payment.js Integration | All |
Giropay | Full-page Redirect | Debit |
iDeal | Full-page Redirect | Debit |
Sofort | Full-page Redirect | Debit |
Bancontact | Full-page Redirect | Debit |
DirectDebit | Server-to-Server | Register, Debit, Refund |
Pre-Authorized debit (ACSS) | Full-page Redirect & Server-to-Server | Register, Debit, Refund |
ACH | Full-page Redirect & Server-to-Server | Register, Debit, Refund |
ACH Credit Transfer | Server-to-Server and push-in transactions | Register, Debit (pushed via Stripe's Webhook), Refund |
Prior to being able to charge the customer, the merchant must verify that the
account is owned by the customer and obtain a mandate. This may be either achieved
with a successful Register
transaction or aDebit
transaction with the
withRegister
flag set.
Additionally, the merchant is required to pass on the following data when trying to acquire the initial mandate.
Transaction fields | Required | Description |
---|---|---|
customer.email |
true | |
customer.firstName |
true | |
customer.lastName |
true | |
extraData.acss_transaction_type |
true | The type of the mandate. Valid values are personal (B2C) and business (B2B) |
extraData.acss_payment_schedule |
true | The Payment schedule for the mandate. Valid values are spoardic , interval or combined |
extraData.acss_interval_description |
true, if extraData.acss_payment_schedule is interval or combined |
A description, based on which criteria the interval-related payments may be triggered (refer to Stripe's documentation). |
For subsequent transactions, these data are not required anymore.
Prior to being able to charge the customer, the merchant must verify that the
account is owned by the customer and obtain a mandate. This may be either achieved
with a successful Register
transaction or aDebit
transaction with the
withRegister
flag set.
Additionally, the merchant is required to pass on the following data when trying to acquire the initial mandate.
Transaction fields | Required | Description |
---|---|---|
customer.email |
true | |
customer.firstName |
true | |
customer.lastName |
true |
For subsequent transactions, these data are not required anymore.
In order to provision and retrieve a VBAN from Stripe, send a Register
transaction. The bank data are included in the response object.
Transaction fields | Required | Description |
---|---|---|
customer.email |
true | for register transactions |
Parameter | Required | Description |
---|---|---|
extradata.isFinalCapture |
false | Boolean parameter that can be sent with the `Capture' API request to indicate if it should be a final capture |
Parameter | Value |
---|---|
authentication_flow |
For authenticated transactions: how the customer was authenticated by the issuing bank. For possible values see Stripe API reference |
electronic_commerce_indicator |
A protocol-level field indicating what degree of authentication was performed. For possible values see Stripe API reference |
exemption_indicator |
The exemption requested via 3DS and accepted by the issuer at authentication time. For possible values see Stripe API reference |
exemption_indicator_applied |
Whether Stripe requested the value of exemption_indicator in the transaction. For possible values see Stripe API reference |
result |
Indicates the outcome of 3D Secure authentication. For possible values see Stripe API reference |
result_reason |
Additional information about why 3D Secure succeeded or failed based on the result. For possible values see Stripe API reference |
transaction_id |
The 3D Secure 1 XID or 3D Secure 2 Directory Server Transaction ID (dsTransId) for this payment. For possible values see Stripe API reference |
version |
The version of 3D Secure that was used. For possible values see Stripe API reference |
Parameter | Required | Description |
---|---|---|
extraData.requestExtendedAuthorization | optional | Overwrites the connector configuration. Possible values: if_available , never |
Refer to https://docs.stripe.com/payments/extended-authorization
refer to https://docs.stripe.com/terminal/features/extended-authorizations
Extra Data Parameter | Value |
---|---|
charges.data.payment_method_details.card.extended_authorization.status | Extended authorization status |
charges.data.payment_method_details.card.capture_before | Validity window for an authorisation - UNIX timestamp |
Example
"extraData": {
"charges.data.payment_method_details.card.extended_authorization.status": "enabled",
"charges.data.payment_method_details.card.capture_before": 1732878746
},
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
BillDesk | Full-Page Redirect | Debit |
BillDeskWallet | Full-Page Redirect | Debit |
Creditcard | Full-Page Redirect | Debit |
DuitNow QR | Full-Page Redirect | Debit |
Enets | Full-Page Redirect | Debit |
FPSQR | Full-Page Redirect | Debit |
FPX | Full-Page Redirect | Debit |
MoMo | Full-Page Redirect | Debit |
PayNow | Full-Page Redirect | Debit |
UPI | Full-Page Redirect | Debit |
UPIQR | Full-Page Redirect | Debit |
VNPAY | Full-Page Redirect | Debit |
VNPAYQR | Full-Page Redirect | Debit |
M-Pesa | Full-Page Redirect | Debit |
Parameter | Required | Description |
---|---|---|
customer.billingCountry | conditional | Default value can be set on connector config |
extraData.ref1 | false | Straight2Bank ref1 |
extraData.ref2 | false | Straight2Bank ref2 |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
EPS | Redirect | Debit only |
Extra Data | Required | Description |
---|---|---|
bank_bic | false | BIC to identify the bank to use for the transaction |
If no bank_bic is given, the user will be redirected to the Stuzza bank selection page.
You can use your own bank selection page by using the bank_bic value. To do this
you can retrieve the bank list via the Options request identifier epsBankList
.
You can display this list to your customer in order to pre-select the desired bank.
The result contains a list of banks available for EPS, with BIC code as key and
bank name as value. The BIC code of the chosen bank should then be passed via
extra data value bank_bic
.
You can find more information about the options request here: Options Request
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | payment.js, Redirect & iFrame Form | only debit, refund and payout |
none
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | Redirect | debit, refund |
Parameter | Required | Description |
---|---|---|
customer.firstName | true | Customer's firstname |
customer.lastName | true | Customer's lastname |
customer.email | true | Customer’s email address. |
customer.billingPhone | true | Customer’s phone number. This must be a valid mobile phone where the consumer can receive text messages. |
customer.shippingCity | true | Name of city, municipality, or village. |
customer.shippingAddress1 | true | Building name, apartment number. |
customer.shippingPostcode | false | Postal code |
customer.reference_id | true | Merchant-assigned order or cart ID. |
customer.birthDate | false | Consumer's date of birth; format is YYYY-MM-DD. |
customer.isEmailVerified | false | Boolean |
extraData.registered_since | true | Time the customer got registered with you, in UTC, and displayed in ISO 8601 datetime format. |
extraData.loyalty_level | false | Customer's loyalty level within your store. Number 0..10 |
extraData.wishlist_count | false | Number of items in Customer's wishlist. |
extraData.is_social_networks_connected | false | Boolean |
extraData.is_phone_number_verified | false | Booleans |
items.name | true | Name of the product. |
items.description | false | Description for the product. |
items.quantity | true | Quantity of the product ordered. |
items.price | true | Price per unit of the product. Should be positive or zero. |
items.identification | true | Merchant’s product identifier. Used for Item refunds. |
items.extraData.product_url | false | URL of the item at your store. |
items.extraData.image_url | false | URL of the item image to show in the order information. |
pspPassthroughData.order_history | false | Customer's order history as defined by Tabby as JSON string |
Parameter | Required | Description |
---|---|---|
extraData.reason | false | Reason for the refund. |
items.name | true | Name of the product. |
items.description | false | Description for the product. |
items.quantity | true | Quantity of the product ordered. |
items.price | true | Price per unit of the product. Should be positive or zero. |
items.extraData.product_url | false | URL of the item at your store. |
items.extraData.product_url | false | URL of the item at your store. |
items.extraData.image_url | false | URL of the item image to show in the order information. |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | Server-To-Server | Refund only |
none
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
BankTransfer | Full-Page Redirect, QR-Code with Redirect | Debit, Refund |
Transaction fields | Required | Description |
---|---|---|
description |
true | Required for all requests |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
TNG | pushed by provider | Debit |
none
In order to generate a QR code which shall be displayed by the payer in the app,
an Options Request is required. Use requestTopupCode
as identifier and pass the customer's ID in the customerId
parameter.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | Hosted Payment Page & payment.js Integration | Preauthorize, Charge, Refund, Void, Payout |
Cards vaulted with Transact.eu can only be charged but not preauthorized.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Onepay | Redirect | Debit, Preauthorize, Capture, Refund |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
BankTransfer | Server-To-Server | Payout |
Parameter | Required |
---|---|
customer.firstName | true |
customer.lastName | true |
Depending on the source and target currency, different parameters may be necessary or different parameter values may be available. If your wanted currency is not listed, kindly contact support.
Target currency inside Europe | Required | Description |
---|---|---|
customer.extraData.recipientType | true | value must be iban |
customer.paymentData.ibanData.iban | true | |
customer.extraData.legalType | true | value must be PRIVATE or BUSINESS |
Target currency GBP | Required | Description |
---|---|---|
customer.extraData.recipientType | true | value must be sort_code |
customer.extraData.sortCode | true | UK Sort code |
customer.extraData.accountNumber | true | 8 digits |
customer.extraData.legalType | true | value must be PRIVATE or BUSINESS |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | All |
none
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Bank Transfer | iFrame Form | All |
iDeal | iFrame Form | All |
Extra Data | Required | Description |
---|---|---|
Description | false | Description that should be shown on the bank statement |
Customer - Identification | true | Unique customer identification, should be used on multiple payments if it is the same customer |
Customer - First name | true | |
Customer - Last name | true | |
Customer - EMail | true | |
Customer - Billing Country | true | |
Customer - Billing Phone | false | |
Customer - IP Address | false | |
Customer - National ID | false | |
Customer - Shipping Country | false | |
Customer - Shipping Postcode | false | |
Customer - Shipping City | false | |
Customer - Shipping Address 1 | false | |
Customer - Shipping Address 2 | false |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | Server-To-Server | All |
Extra Data | Required | Description |
---|---|---|
operatorname | false | The value of this field contains the name of the user that processed the request. |
billingstreet | false | The street entered for the customer’s billing address. |
billingemail | false | The customer’s billing email address. Maximum length of 255 (maximum of 64 characters before the "@" symbol). |
billingtelephonetype | false | The type of telephone number. The options available are: H (Home), M (Mobile), W (Work) |
billingprefixname | false | The prefix of the customer’s billing name (e.g. Mr, Miss, Dr). |
billingmiddlename | false | The customer’s billing middle name(s). |
billingsuffixname | false | The suffix of the customer’s billing name (e.g. Bsc). |
billingfirstname | false | The customer’s billing first name. |
billinglastname | false | The customer’s billing last name. |
customerstreet | false | The customer’s street name. |
customertelephonetype | false | The type of telephone number. The options available are: H (Home), M (Mobile), W (Work) |
customertelephone | false | The customer’s telephone number. Valid characters: Numbers 0-9, Spaces, Special characters: + – ( ) |
customerprefixname | false | The customer’s prefix name (e.g. Mr, Miss, Dr). |
customermiddlename | false | The customer’s middle name(s). |
customersuffixname | false | The customer’s suffix name (e.g. Bsc). |
customerforwardedip | false | Customer forwarded IP address, as provided by a proxy server if available. |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Invoice | Server-To-Server | Debit, Preauthorize, Capture, Void, Refund |
Installment | Server-To-Server | Debit, Preauthorize, Capture, Void, Refund |
Name | Type | Required | Description |
---|---|---|---|
currency | string | true | 3 letters (ISO 4217) |
amount | number | true | Transaction amount |
additionalId1 | string | false | Order ID |
customer.identification | string | false | Customers identification |
customer.firstname | string | true | Customers firstname |
customer.lastname | string | true | Customers lastname |
customer.birthdate | string | true | Customers birthdate (YYYY-mm-dd) |
customer.email | string | true | Customers E-Mail |
customer.gender | string | false | Customers E-Mail |
customer.billingAddress1 | string | true | Customers address |
customer.billingCity | string | true | Customers city |
customer.billingPostcode | string | true | Customers zip code |
customer.billingState | string | false | Customers state |
customer.billingCountry | string | true | Customers country 2 letters (ISO 3166-1 alpha-2) |
customer.billingPhone | string | false | Customers phone number |
customer.extraData.mobile | string | false | Customers mobile phone number |
customer.shippingAddress1 | string | true | Customers address |
customer.shippingCity | string | true | Customers city |
customer.shippingPostcode | string | true | Customers zip code |
customer.shippingCountry | string | true | Customers country 2 letters (ISO 3166-1 alpha-2) |
customer.shippingPhone | string | false | Customers phone number |
customer.extraData.language | string | false | Customers language 2 letters (ISO 639-1) |
items | object | true | The object containing cart items |
Name | Type | Required | Description |
---|---|---|---|
item.identification | string | true | The merchant's unique identifier for the product (no spaces allowed). |
item.name | string | true | The merchant's name for the product. |
item.quantity | number | true | The quantity being purchased (must be >0). |
item.price | number | true | The unit price of the product. |
item.description | string | false | The description of the product. |
item.l2l3Data.unit | string | false | The unit description of the item. |
item.l2l3Data.type | string | false | The type of the basket item. |
item.l2l3Data.taxRate | number | true | Tax rate used for the tax amount. (can be 0 but not empty) |
item.l2l3Data.discount | number | false | Discount (incl. VAT) granted on the basketItems |
item.extraData.imageUrl | string | false | The imageUrl for the related basketItem. |
You can find more information about the ThreadMatrix script here: Unzer API docs
Name | Type | Required | Description |
---|---|---|---|
customer.extraData.threatMetrixId | string | false | The ThreatMetrix session ID |
customer.extraData.customerGroup | string | false | Customer classification for the customer if known |
customer.extraData.confirmedAmount | string | false | The amount/value of the successful transactions paid by the end customer |
customer.extraData.confirmedOrders | string | false | The number of successful transactions paid* by the end customer |
customer.extraData.registrationLevel | string | false | Customer registration level |
customer.extraData.registrationDate | string | false | Customer registration date in your shop |
Name | Type | Required | Description |
---|---|---|---|
customer.iban | string | false | Customers IBAN (recommended) |
customer.bic | string | false | Customers BIC |
extraData.inquiryId | string | true | inquiryId of the installment plan (retrieved via option call installmentPlans ) |
extraData.numberOfRates | number | true | Number of rates (available rates retrieved via option call installmentPlans ) |
You can find more information about the options request here: Options Request
Returns a list of available installment plans with the inquiryId
Please use installmentPlans
as an option name e.g. POST /options/{apiKey}/installmentPlans
.
Name | Type | Required | Description |
---|---|---|---|
parameters.amount | number | true | Transaction amount |
parameters.country | string | true | Customers country 2 letters (ISO 3166-1 alpha-2) |
parameters.currency | string | true | 3 letters (ISO 4217) |
parameters.customerType | string | true | B2C or B2B |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | All |
Direct Debit (eCheck Sales) | Server-To-Server | Debit / Refund / Void |
Creditcard
Direct Debit (eCheckSales)
Debit
Field | Type | Required | Description |
---|---|---|---|
extraData | object | true | object containing key-value pairs (string-to-string) |
↳extraData.accType | string / enum | true | Enumerations = Checking, Savings, Corporate, or Corp Savings |
↳extraData.accNum | string | true | The account number of the Direct Debit account. |
↳extraData.routingNum | string | true | The routing number of the Direct Debit account |
↳extraData.orderSource | string / enum | false | Defines the order entry source for the type of transaction. (Default = ecommerce), Enumerations = 3dsAuthenticated, 3dsAttempted, echeckppd, ecommerce, installment, mailorder, recurring, retail, telephone, recurringtel, applepay, androidpay |
↳extraData.reportGroup | string | false | Required attribute that defines the merchant sub-group in the user interface where this transaction will be displayed. (Default = defaultGroup) |
↳extraData.descriptor | string | false | The billing descriptor to appear on the bank statements. Maximum length is 15 characters. |
Refund & Void
Field | Type | Required | Description |
---|---|---|---|
amount | string | false | If the Transaction was already settled and no amount was given, the full Transaction will be refunded. If the amount is given and its value is < than the original transactions amount, a partial Refund will be triggered. |
extraData | object | true | object containing key-value pairs (string-to-string) |
↳extraData.reportGroup | string | false | Required attribute that defines the merchant sub-group in the user interface where this transaction will be displayed. (Default = defaultGroup) |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
BankTransfer | Hosted Payment Page, Embedded checkout | Debit, Refund, Partial refund |
Pix | Redirect | Debit, Refund |
Parameter | Allowed values | Description |
---|---|---|
extraData.language | bg, ce, de, en, es, fr, hr, it, lt, lv, nl, pl, pt, ro, sl, sk | Defines the language of the Volt Payment Page. Default is en |
customer.billingCountry | AT, BE, BG, CY, CZ, DE, DK, EE, ES, FI, FR, GB, GR, HR, HU, IE, IS, IT, LI, LT, LU, LV, MT, NL, NO, PL, PT, RO, SE, SI, SK | If provided with one of the following parameter the bank country will be preselect. If its not one of the predefined the customer will just have to select the bank themself |
extraData.bank_id | ID received from option call* | Redirects to the customer directly to his bank information without the need to select a bank on VOLT side |
extraData.type | BILL, GOODS, PERSON_TO_PERSON, OTHER, SERVICES | Transaction Type, default is OTHER |
extraData.beneficiary_name | EUR and GBP! Available if dynamic beneficiary is activated in the connector settings | |
extraData.beneficiary_iban | EUR only! Available if dynamic beneficiary is activated in the connector settings | |
extraData.beneficiary_swift | EUR only! Available if dynamic beneficiary is activated in the connector settings | |
extraData.beneficiary_account_number | GBP only! Available if dynamic beneficiary is activated in the connector settings | |
extraData.beneficiary_sort_code | GBP only! Available if dynamic beneficiary is activated in the connector settings | |
customer.extraData.documentId | Can be 11 or 14 digits long and the type has to be String. | Available if sendPayerData is activated in the connector settings. |
customer.reference | Available if sendPayerData is activated in the connector settings. Is mandatory if customer.email or customer.name or customer.ip is set. | |
customer.email | Available if sendPayerData is activated in the connector settings. If set the customer.reference will be mandatory. | |
customer.name | Available if sendPayerData is activated in the connector settings. If set the customer.reference will be mandatory. | |
customer.ip | Available if sendPayerData is activated in the connector settings. If set the customer.reference will be mandatory. |
Transaction fields | Required | Description |
---|---|---|
customer.identification | true | for debit transactions |
customer.firstName | true | for debit transactions |
customer.lastName | true | for debit transactions |
customer.extraData.documentId | true | for debit transactions |
Transaction fields | Required | Description |
---|---|---|
customer.identification | true | for debit transactions |
You can find more information about the options request here: Options Request
Returns a list of available banks with there id
that can be used for the bank_id
Please use bank-list
as an option name e.g. POST /options/{apiKey}/bank-list
.
Name | Type | Required | Description |
---|---|---|---|
parameters.page | int | false | Get the page with up to 100 entries |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
BankTransfer | Redirect, QR | Debit |
Parameter | Description |
---|---|
extraData.descriptor | If it is enabled on the connector, you can set your bank descriptor over this parameter. |
If the QR Method is used (on connector level), the initial debit call will return an extraData.qrCode field with a URL provided by Vyne to the QR Code to show to the customer.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Kiosk | Server-to-Server | Debit |
Cash Payment | Server-to-Server | Debit |
Wallet | Redirect & iFrame | Debit |
Extra Data | Required | Description |
---|---|---|
first name (customer) | true | |
last name (customer) | true | |
email (customer) | true | |
billing phone (customer) | true | |
billingAddress1 (customer) | only for cash payments | |
billingPostcode (customer) | only for cash payments | |
billingCity (customer) | only for cash payments | * |
billingState (customer) | only for cash payments | * |
billingCountry (customer) | only for cash payments | |
success URL | only for wallet payments | To where the shopper should be back-directed |
*only certain states and cities within Egypt are supported.
Refer to WeAccept's cash annex.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | Debit, Register, Preauthorize, Capture, Void, Refund, Deregister |
Creditcard
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Postfinance Card | Hosted payment page | Debit, Preauthorize, Capture, Void, Refund |
Postfinance e-Finance | Hosted payment page | Debit, Refund |
TWINT | Hosted payment page | Debit, Refund |
Name | Type | Required | Description |
---|---|---|---|
Currency | string | true | 3 letters (ISO 4217) |
Amount | number | true | Transaction amount |
Name | Type | Required | Description |
---|---|---|---|
customer.email | string | false | Customers E-Mail |
customer.billingAddress1 | string | false | Customers address |
customer.billingPostcode | string | false | Customers zip code |
customer.billingCity | string | false | Customers city |
customer.billingCountry | string | false | Customers country 2 letters (ISO 3166-1 alpha-2) |
customer.billingPhone | string | false | Customers phone number |
extraData.TP | string | false | Refer to Ogone documentation |
extraData.PMLISTTYPE | string | false | Refer to Ogone documentation |
extraData.COMPLUS | string | false | Refer to Ogone documentation |
extraData.PARAMPLUS | string | false | Refer to Ogone documentation |
extraData.EXCLPMLIST | string | false | Refer to Ogone documentation |
extraData.CREDITDEBIT | string | false | Refer to Ogone documentation |
extraData.USERID | string | false | Refer to Ogone documentation |
extraData.HOMEURL | string | false | Refer to Ogone documentation |
extraData.CATALOGURL | string | false | Refer to Ogone documentation |
extraData.BACKURL | string | false | Refer to Ogone documentation |
Name | Type | Required | Value | Description |
---|---|---|---|---|
extraData.ALIASUSAGE | string | true | Displays information to your customers | |
extraData.ALIASOPERATION | string | false | BYMERCHANT, BYPSP | default BYPSP, if set to BYMERCHANT you have to provide an own alias |
extraData.ALIAS | string | conditional | own alias to use if ALIASOPERATION is BYMERCHANT | |
extraData.COF_RECURRING_EXPIRY | string | false | The end date of the last scheduled payment | |
extraData.COF_RECURRING_FREQUENCY | string | false | Days between payments for a scheduled series of transactions |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
CreditCard | payment.js, Server-to-server | Debit, Preauthorize, Capture, Void, Refund |
Name | Type | Required | Description |
---|---|---|---|
currency | string | true | 3 letters (ISO 4217) |
amount | number | true | Transaction amount |
customer.billingCountry | string | true | Country code where transaction will be aproved. ISO rule 3166_1 |
Name | Type | Required | Description |
---|---|---|---|
customer.email | string | false | Customers E-Mail |
customer.identification | string | false | Merchant customer ID |
description | string | false | Merchant purchase description |
extraData.descriptor | string | false | Soft descriptor (max length 15) |
extraData.channel | string | false | refer to the WorldLineNPS documentation : psp_TxSource (default: WEB) |
extraData.orderReference | string | false | additional order id - refer to psp_MerchOrderId at WorldLineNPS documentation (max 64 chars) |
Key | Required | Type | Description |
---|---|---|---|
Merchant Unique Identifier | true | string | A fixed value given by WorldLineNPS for each Merchant |
API Secret | true | string | A fixed value given by WorldLineNPS for each Merchant |
Amount for Card Verification | true | string | The amount with will be authorized (and auto-voided) when doing a register |
Secondary MerchantId | false | string | The Merchant Unique Identifier for a second merchant account* |
Secondary API secret | false | string | The Merchant api secret for a second merchant account* |
Second Merchant* :
The ability to set a second merchant can be required to test all Transaction types with one connector. This is caused by a limitation of the testing environment of the PSP. If you are able to do all you need with one merchant account, please do so. Otherwise, the second merchant will be used (if set) to do a register.
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | Full-Page Redirect | Debit & Refund |
iDeal | Full-Page Redirect | Debit & Refund |
Przelewy24 | Full-Page Redirect | Debit & Refund |
Sofort | Full-Page Redirect | Debit & Refund |
POLi | Full-Page Redirect | Debit & Refund |
Boleto | Full-Page Redirect | Debit & Refund |
Paysafecard | Full-Page Redirect | Debit & Refund |
Giropay | Full-Page Redirect | Debit & Refund |
Bancontact | Full-Page Redirect | Debit & Refund |
none
Parameter | Allowed Values |
---|---|
currency | NZD, AUD |
customer.billingCountry | NZ, AU |
customer.identification | Anything |
customer.email | Anything |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & Full-Page Redirect | All |
Creditcard
Parameter | Required | Description |
---|---|---|
extraData.narrativeLine2 | false | Additional details about the payment e.g. order number, telephone number |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | payment.js, Redirect & iFrame Form | All + Incremental Authorizations |
none
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard | iFrame Form & payment.js Integration | Register, Preauthorize, Debit, Refund, Capture, Void |
Parameter | Required | Types | Value |
---|---|---|---|
description | true | Register, Debit, Preauthorize, Payout | |
extraData.businessAppType |
false | Register, Debit, Preauthorize, Payout | one of [FUND_TRANSFER , HIGH_RISK_SECURITIES_PURCHASE , WALLET_TRANSFER ] |
Data of the sender account are taken from the customer object, everything else needs to be provided via extraData. Also see https://docs.worldpay.com/apis/wpg/manage/pull-from-card
Parameter | Required | Maps to | Description | |
---|---|---|---|---|
extraData.fundingTransferType | mandatory | fundingTransfer type attribute |
see Funding Transfer Type table | |
extraData.paymentPurpose | conditional* | fundingTransfer.paymentPurpose | see Payment Purpose table | |
extraData.senderAccountReference | optional | (sender) fundingParty.accountReference | 0-50 char. [a-z][A-Z][0-9] spaces and special characters | |
extraData.senderAccountType | conditional | (sender) fundingParty.accountReference accountType attribute |
mandatory if senderAccountReference is sent, see AccountType table | |
customer.firstName | mandatory | (sender) fundingParty.fullName.first | 0-35 char. [a-z][A-Z] | |
customer.lastName | mandatory | (sender) fundingParty.fullName.last | 0-35 char. [a-z][A-Z] | |
customer.billingAddress1 | conditional | (sender) fundingParty.fundingAddress.address1 | 0-255 char. [a-z][A-Z][0-9] optional unless city is supplied | |
customer.billingAddress2 | optional | (sender) fundingParty.fundingAddress.address2 | 0-255 char. [a-z][A-Z][0-9] | |
customer.billingCity | conditional | (sender) fundingParty.fundingAddress.city | 0-100 char. [a-z][A-Z][0-9] optional unless address1 is supplied | |
customer.billingPostcode | conditional | (sender) fundingParty.fundingAddress.postalCode | 0-15 char. [a-z][A-Z][0-9] mandatory for countries with post codes | |
customer.billingState | conditional | (sender) fundingParty.fundingAddress.state | 0-3 char. [a-z][A-Z][0-9] mandatory for US and CA, 2-3 character ISO code | |
customer.billingCountry | mandatory | (sender) fundingParty.fundingAddress.countryCode | 2 char. [A-Z] | |
customer.birthDate | optional | (recipient) fundingParty.fundingAddress.birthDate | YYYY-MM-DD | |
customer.billingPhone | optional | (recipient) fundingParty.fundingAddress.telephoneNumber | max. 30 char. | |
extraData.recipientAccountReference | mandatory | (recipient) fundingParty.accountReference | 0-50 char. [a-z][A-Z][0-9] spaces and special characters | |
extraData.recipientAccountType | mandatory | (recipient) fundingParty.accountReference accountType attribute |
see AccountType table | |
extraData.recipientFirstName | optional | (recipient) fundingParty.fullName.first | 0-35 char. [a-z][A-Z] | |
extraData.recipientLastName | conditional | (recipient) fundingParty.fullName.last | 0-35 char. [a-z][A-Z] mandatory if first name provided | |
extraData.recipientAddress1 | conditional | (recipient) fundingParty.fundingAddress.address1 | 0-255 char. [a-z][A-Z][0-9] optional unless city is supplied | |
extraData.recipientAddress2 | optional | (recipient) fundingParty.fundingAddress.address2 | 0-255 char. [a-z][A-Z][0-9] | |
extraData.recipientCity | conditional | (recipient) fundingParty.fundingAddress.city | 0-100 char. [a-z][A-Z][0-9] optional unless address1 is supplied | |
extraData.recipientZip | conditional | (recipient) fundingParty.fundingAddress.postalCode | 0-15 char. [a-z][A-Z][0-9] mandatory for countries with post codes | |
extraData.recipientState | conditional | (recipient) fundingParty.fundingAddress.state | 0-3 char. [a-z][A-Z][0-9] mandatory for US and CA, 2-3 character ISO code | |
extraData.recipientCountry | mandatory | (recipient) fundingParty.fundingAddress.countryCode | 2 char. [A-Z] | |
extraData.recipientBirthdate | optional | (recipient) fundingParty.fundingAddress.birthDate | YYYY-MM-DD | |
extraData.recipientPhone | optional | (recipient) fundingParty.fundingAddress.telephoneNumber | max. 30 char. |
*Required for transactions in Argentina, Bangladesh, Chile, Columbia, Jordan, Mexico, Thailand, UAE, India cross-border
Can be configured on the connector, sending extraData.fundingTransferType
overwrites the configuration
Type | Description |
---|---|
A | Account-to-account |
C | Cash |
D | Funds disbursement |
F | Funds transfer |
P | Person-to-person |
R | Payroll disbursement |
S | Business-to-business payment |
T | Top-up for prepaid loads |
O | Payment of own Bill |
Q | Rapid merchant settlement |
W | Staged Digital Wallet payment |
U | Top-up for debit loads |
Can be configured on the connector, sending extraData.paymentPurpose
overwrites the configuration
Type | Description |
---|---|
00 | Family Support |
01 | Regular labour transfers (expatriates) |
02 | Travel and tourism |
03 | Education |
04 | Hospitalisation and medical treatment |
05 | Emergency need |
06 | Savings |
07 | Gifts |
08 | Other |
09 | Salary |
10 | Crowd lending |
11 | Crypto currency |
Account | Type Value Description |
---|---|
01 | RTN + Bank account |
02 | IBAN |
03 | Card account |
04 | |
05 | Phone number |
06 | Bank Account Number (BAN) and Bank Identification Code (BIC) |
07 | Wallet ID |
08 | Social Network ID |
Parameter | Value |
---|---|
avs_result | Mapped from the field AVSResultCode . For possible values see Worldpay API Reference |
cvv_result | Mapped from the field CVCResultCode . For possible values see Worldpay API Reference |
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Wallet | Full-Page Redirect | Debit, Preauthorize, Capture, Void, Refund |
Wallet (Debit & Preauthorize)
Parameter | Type | Description |
---|---|---|
extraData.pickup | 0 or 1 | Whether this is a pickup order |
extraData.trackingUri | string | URI to tracking page of shipment |
extraData.trackingNumber | string | Tracking number of shipment |
extraData.trackingCarrier | 0 or 1 | Carrier used for shipment |
customer.extraData.title | true | Title of customer (Mr., Mrs. etc.) |
item.extraData.type | sku, tax, shipping or discount | Type of item |
item.extraData.item_uri | string | URI to product page |
item.extraData.image_uri | string | URI to product image (thumbnail) |
Wallet (Debit & Preauthorize)
Parameter | Required |
---|---|
items | true |
customer.firstName | true |
customer.lastName | true |
customer.email | true |
customer.billingAddress1 | true |
customer.billingCity | true |
customer.billingPostcode | true |
customer.billingState | true |
customer.billingCountry | true |
The integration from the Gateway works by default through the redirect flow
from ZipPayments. You can also integrate by using ZIP's Widget solution
("Lightbox Checkout Library"), but you have to handle the Javascript part on
your own. The Gateway returns you the following extraData
values upon the
initial Debit
or Preauthorize
call, which you will need for the ZIP Widget:
zipId
zipUri
zipRedirectUri
You will have to use these values within the HTTP endpoint which is called by the ZIP Widget:
{
"id": "value of extraData.zipId",
"uri": "value of extraData.zipUri",
"redirect_uri": "value of extraData.zipRedirectUri"
}
Payment Method | Transaction Flows | Transaction Types |
---|---|---|
Creditcard Redirect | Full-Page Redirect | Debit |
PSE | Full-Page Redirect | Debit |
ZonaPagos | Full-Page Redirect | Debit |
Parameter | Required | Description |
---|---|---|
description | true | string |
merchantMetaData | false | mapping to ZonaPagos parameter info_opcional2 |
extraData.idType | false | mapping to ZonaPagos parameter tipo_id . one of:1 for Citizenship Card. 2 for CE Immigration Card. 3 for NIT Nit Company. 4 for NUIP Unique Identification Number. 5 for Identity Card. 6 for Passport. 7 for IDC Unique Customer Identifier. 8 CEL case that the |
customer.identification | false | mapping to ZonaPagos parameter Id_cliente |
extraData.field3 | false | extra information, mapping to ZonaPagos parameter info_opcional3 |
extraData.taxAmount | false | numeric , default value if not set is "0" |
ZonaPagos method allows the user to select the payment method on the Zona Pagos hosted payment page. Which payment was selected is communicated through a webhook notification. The information can be found in extra_data
under field id_forma_pago
.
id_forma_pago value | Description |
---|---|
4 | Payment was made using the method: ACH-PSE. |
5 | Payment was made using the method: Online credit card |
Those extra data fields are mapped to the corresponding Forter Validation Request Parameters: https://portal.forter.com/app/developer/api/api/services-and-apis/validation-api#request
Example
{
"customer": {
"identification": "c0001",
"extraData": {
"FORTER_CUSTOMER_LAST_LOGINIP": "203.12.55.12",
"FORTER_CUSTOMER_BILLING_ADDRESS_TYPE": "HOME"
}
}
}
Name | Type | Example values |
---|---|---|
FORTER_CUSTOMER_PAST_ORDERS_COUNT |
optional integer | 0 |
FORTER_CUSTOMER_PAST_ORDERS_SUM_USD |
optional decmimal | 0.00 |
FORTER_CUSTOMER_LAST_LOGINIP |
string | 203.12.55.12 |
FORTER_CUSTOMER_REGISTRATION_IP |
string | 203.12.55.12 |
FORTER_CUSTOMER_BILLING_ADDRESS_TYPE conditional Possible values are: "HOME", "BUSINESS", "OTHER" |
string | HOME |
FORTER_CUSTOMER_BILLING_CREATION_TIME conditional Time item was first entered by customer in seconds since unix epoch (UTC, Jan 1, 1970) |
number | 1448549922 |
FORTER_CUSTOMER_BILLING_REMOVAL_TIME conditional Time item was removed by customer in seconds since unix epoch (UTC, Jan 1, 1970) |
number | 1448895522 |
FORTER_CUSTOMER_BILLING_SUGGESTED_CORRECT_ADDRESS conditional True if customer selected a corrected address suggested by merchant (For example in cases where customer entered wrong zipcode) |
boolean | 0/1 |
FORTER_CUSTOMER_BILLING_VERIFICATION_DOCUMENT_TYPE required ype of document (Passport, ID, Driving license) Maximum length is 35 characters. |
string | Passport |
FORTER_CUSTOMER_BILLING_VERIFICATION_DOCUMENT_SOURCE required Source of document (e.g. uploaded file, captured by camera, typed in by customer, etc.) Possible values are: "CAMERA_CAPTURED", "UPLOADED_FILE", "TYPED", "OTHER" |
string | UPLOADED_FILE |
FORTER_CUSTOMER_BILLING_VERIFICATION_NATIONALITY conditional Document holder's nationality |
string | US |
FORTER_CUSTOMER_BILLING_VERIFICATION_DOCUMENT_ISSUING_STATE conditional Document issuing state or region |
string | NY |
FORTER_CUSTOMER_BILLING_VERIFICATION_DOCUMENT_NUMBER conditional Official document's number (e.g. passport number, driving license number, etc.) |
string | 20439190 |
FORTER_CUSTOMER_BILLING_VERIFICATION_DOCUMENT_FIRSTNAME conditional First name as appears on the document |
string | John |
FORTER_CUSTOMER_BILLING_VERIFICATION_DOCUMENT_LASTNAME conditional Last name as appears on the document |
string | Smith |
FORTER_CUSTOMER_BILLING_VERIFICATION_DOCUMENT_DATEOFBIRTH conditional Date of birth as appears on the document. Use YYYY-MM-DD format. |
string | 1982-04-23 |
FORTER_CUSTOMER_BILLING_VERIFICATION_DOCUMENT_EXPIRATION conditional Document's exipration date. Use YYYY-MM-DD format. |
string | 2025-04-23 |
FORTER_CUSTOMER_BILLING_VERIFICATION_DOCUMENT_PAYLOAD conditional JSON Response payload received from 3rd party document verification |
string JSON | {} |
FORTER_CUSTOMER_SHIPPING_ADDRESS_TYPE conditional Possible values are: "HOME", "BUSINESS", "OTHER" |
string | HOME |
FORTER_CUSTOMER_SHIPPING_CREATION_TIME conditional Time item was first entered by customer in seconds since unix epoch (UTC, Jan 1, 1970) |
number | 1448549922 |
FORTER_CUSTOMER_SHIPPING_REMOVAL_TIME conditional Time item was removed by customer in seconds since unix epoch (UTC, Jan 1, 1970) |
number | 1448895522 |
FORTER_CUSTOMER_SHIPPING_SUGGESTED_CORRECT_ADDRESS conditional True if customer selected a corrected address suggested by merchant (For example in cases where customer entered wrong zipcode) |
boolean | 0/1 |
FORTER_CUSTOMER_SHIPPING_VERIFICATION_DOCUMENT_TYPE required ype of document (Passport, ID, Driving license) Maximum length is 35 characters. |
string | Passport |
FORTER_CUSTOMER_SHIPPING_VERIFICATION_DOCUMENT_SOURCE required Source of document (e.g. uploaded file, captured by camera, typed in by customer, etc.) Possible values are: "CAMERA_CAPTURED", "UPLOADED_FILE", "TYPED", "OTHER" |
string | UPLOADED_FILE |
FORTER_CUSTOMER_SHIPPING_VERIFICATION_NATIONALITY conditional Document holder's nationality |
string | US |
FORTER_CUSTOMER_SHIPPING_VERIFICATION_DOCUMENT_ISSUING_STATE conditional Document issuing state or region |
string | NY |
FORTER_CUSTOMER_SHIPPING_VERIFICATION_DOCUMENT_NUMBER conditional Official document's number (e.g. passport number, driving license number, etc.) |
string | 20439190 |
FORTER_CUSTOMER_SHIPPING_VERIFICATION_DOCUMENT_FIRSTNAME conditional First name as appears on the document |
string | John |
FORTER_CUSTOMER_SHIPPING_VERIFICATION_DOCUMENT_LASTNAME conditional Last name as appears on the document |
string | Smith |
FORTER_CUSTOMER_SHIPPING_VERIFICATION_DOCUMENT_DATEOFBIRTH conditional Date of birth as appears on the document. Use YYYY-MM-DD format. |
string | 1982-04-23 |
FORTER_CUSTOMER_SHIPPING_VERIFICATION_DOCUMENT_EXPIRATION conditional Document's exipration date. Use YYYY-MM-DD format. |
string | 2025-04-23 |
FORTER_CUSTOMER_SHIPPING_VERIFICATION_DOCUMENT_PAYLOAD conditional JSON Response payload received from 3rd party document verification |
string JSON | {} |
Name | Type | Example values |
---|---|---|
FORTER_TYPE optional, default WEB. Platform order was made through. Possible Values: "WEB", "PHONE", "MOBILE", "IOS", "ANDROID", "WAP", "STORE", "MAIL_ORDER", "AUTOMATIC_RENEWAL_OR_INSTALLMENT_PAYMENT", "UNKNOWN" |
string | WEB |
FORTER_TOKEN conditional Forter token cookie from request headers. Maximum length is 128 characters. |
string | 2315688945984 |
FORTER_USER_AGENT required when PaymentJS is not used, Customer's User agent. Maximum length is 4096 characters. |
string | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36 |
FORTER_CHECKOUT_TIME optional will use current timestamp if not provided. The time when the buyer completed the checkout process in the merchant website in SECONDS since unix epoch (Jan 1, 1970). |
number | 1415273168 |
FORTER_MOBILE_UID optional - mobile UID. The device identifier such as IMEI in android or identifier for vendor in iOS. This should match the deviceId sent via the mobile events API (for mobile transactions only) Maximum length is 128 characters. |
string | 6429751237891 |
FORTER_MERCHANT_DEVICE_IDENTIFIER conditional - A unique device identifier generated by merchant |
string | HGJ7512345H3 |
FORTER_MOBILE_APP_VERSION conditional - The version of the merchant application which is running on the user's device |
string | 2.9 |
FORTER_MOBILE_OS_TYPE conditional - The operating system running on the user's device (relevant for native app only) |
string | Android |
FORTER_MOBILE_DEVICE_BRAND conditional - The user's device brand (relevant for native app only) |
string | Samsung |
FORTER_MOBILE_DEVICE_MODEL conditional - The model of the user's device (relevant for native app only) |
string | Galaxy 3 |
FORTER_FULL_HEADERS_JSON conditional - A unique device identifier generated by merchant |
string JSON | "{"method":"GET / HTTP/1.1", "Host": "forter.com", "Connection": "keep-alive", "Accept": ...}" |
FORTER_DELIVERY_DETAILS_DELIVERY_TYPE optional default PHYSICAL - Type of delivery: PHYSICAL for any type of shipped goods. DIGITAL for non-shipped goods (services, gift cards etc.) Example: PHYSICAL Possible values are: "DIGITAL", "PHYSICAL", "HYBRID" |
string | DIGITAL |
FORTER_DELIVERY_DETAILS_DELIVERY_METHOD optional default POSTAL SERVICE - Delivery method chosen by customer such as postal service, email, in game transfer, etc. Example: USPS - Ground Mail |
string | Galaxy |
FORTER_DELIVERY_DETAILS_DELAYED_DELIVERY_DATE conditional - Use if customer chose to deliver the item at a later date (to arrive in time for a holiday, a birthday, etc.). Use YYYY-MM-DD format. |
string | 2018-10-12 |
FORTER_DELIVERY_DETAILS_CARRIER optional - The delivery carrier |
string | DHL |
FORTER_DELIVERY_DETAILS_DELIVERY_PRICE_AMOUNT conditional - same currency as transaction currency is assumed |
string | 5.00 |
FORTER_DELIVERY_DETAILS_TRACKING_EXTRA_CHARGE_AMOUNT conditional - same currency as transaction currency is assumed |
string | 1.00 |
FORTER_DELIVERY_DETAILS_EXPECTED_DELIVERY_DATE conditional - Date delivery is expected to arrive at destination. Use YYYY-MM-DD |
string | 2018-10-14 |
FORTER_DELIVERY_DETAILS_LEAVE_OUTSIDE optional - 1 if customer chose to allow shipment to be left outside or at a building lobby or reception area. |
integer | 1 |
FORTER_DELIVERY_DETAILS_SMS_UPDATES optional - 1 if customer asked to receive SMS updates regarding delivery. |
integer | 0 |
FORTER_DELIVERY_DETAILS_WAIT_TO_SHIP_TOGETHER conditional - 1 if customer asked to try and bundle shipments together to save costs. |
integer | 1 |
FORTER_DELIVERY_DETAILS_DELIVERY_COMMENTS conditional - Any comments or requests customer had for delivery |
string | Please call before arriving, Thanks! |
FORTER_IS_MERCHANT_OF_RECORD conditional - 1 if the Forter account owner is also the merchant of record |
string | 1 |
FORTER_PAYMENT_METHOD_NICKNAME conditional - Nickname assigned to this payment method by the user |
string | My Work Card |
FORTER_PAYMENT_CREDIT_USED_AMOUNT conditional - Store credit used to pay for purchase |
string | 1.00 |
FORTER_IS_DEFAULT_PAYMENT_METHOD conditional - 1 if this payment instrument is the default set by the customer. |
integer | 0 |
FORTER_NUMBER_OF_INSTALLMENTS conditional - Number of payments if customer chose to pay in several installments. integer |
string | 12 |
FORTER_DELAYED_CHARGE conditional - 1 if customer chose to pay at a later date. False if customer chose to pay in several installments as long as first payment is immediate. |
integer | 0 |
FORTER_DELAYED_CHARGE_DATE conditional - Date customer is due to pay. Use YYYY-MM-DD format. |
string | 2015-12-01 |
FORTER_PAYMENT_GATEWAY_ID conditional - Transaction identifier provided by the payment gateway |
string | SDS34653246346 |
FORTER_MERCHANT_ID conditional - Merchant unique identifier |
string | eh629dK9 |
FORTER_MERCHANT_DOMAIN conditional - Use if merchant operates several sites (such as a regular site and a related discount brand) |
string | HandbagsExpressDiscounts.com |
FORTER_MERCHANT_NAME conditional - Use if merchant operates several sites (such as a regular site and a related discount brand) |
string | Handbags Express Discounts |
FORTER_SITE_LOCALIZATION_COUNTRY conditional - Use if site has multiple localized versions |
string | FR |
FORTER_SITE_LOCALIZATION_LANGUAGE conditional - Site interface language chosen by customer, 2-letter ISO-639-1 language code |
string | EN |
FORTER_SITE_LOCALIZATION_CURRENCY conditional - Currency chosen by customer as default, 3-letter ISO-4217 format currency code |
string | USD |
FORTER_ITEM_DEFAULT_QUANTITY optional defaults to 1 |
integer | 1 |
FORTER_ITEM_DEFAULT_TYPE optional default to TANGIBLE - Tangible if physical item, non-tangible if any other product Example: TANGIBLE Possible values are: "TANGIBLE", "NON_TANGIBLE" |
string | NON_TANGIBLE |
FORTER_ITEM_DEFAULT_CREATED_TIME conditional - Time item was added to cart by customer in seconds since unix epoch (UTC, Jan 1, 1970) |
number | 1415273168 |
FORTER_ITEM_DEFAULT_SPECIFIC_DATA_JSON conditional - JSON with the format described here: https://portal.forter.com/app/developer/api/api/data-objects/ItemSpecificData |
string JSON | {"personalCustomization":false, ....} |
FORTER_BENEFICIARIES_FIRSTNAME[i] conditional - Required field in case Beneficiary object is being mapped |
string | John |
FORTER_BENEFICIARIES_LASTNAME[i] conditional - Required field in case Beneficiary object is being mapped |
string | Doe |
FORTER_BENEFICIEARIES_EMAIL[i] optional - Beneficiary email address |
string | [email protected] |
FORTER_BENEFICIARIES_USER_COMMENTS_TO_MERCHANT[i] optional - Message user is leaving to a merchant |
string | Please pack camera extra secure |
FORTER_BENEFICIARIES_MESSAGE_TO_BENEFICIARY[i] optional - Message to Beneficiary |
string | Message |
FORTER_BENEFICIARIES_MERCHANT_COMMENTS[i] optional - Merchant comments |
string | Merchant comments |
Name | Type | Example values |
---|---|---|
FORTER_ITEM_TYPE optional default to TANGIBLE - Tangible if physical item, non-tangible if any other product Example: TANGIBLE Possible values are: "TANGIBLE", "NON_TANGIBLE" |
string | NON_TANGIBLE |
FORTER_ITEM_PRODUCTID Unique identifier for item that is common to all identical items (such as SKU, ISBN, etc.) |
string | 324234 |
FORTER_ITEM_PRODUCTID_TYPE optional - Type of product ID used (SKU/ISBN/UPC/etc.) |
string | SKU |
FORTER_ITEM_CATEGORY optional - The item category |
string | Item Category |
FORTER_ITEM_COUPON_CODE_USED optional - The coupon code used |
string | FATHERSDAY2015 |
FORTER_ITEM_DISCOUNT_TYPE optional - Discount type |
string | COUPON |
FORTER_ITEM_SPECIFIC_DATA_JSON conditional - JSON with the format described here: https://portal.forter.com/app/developer/api/api/data-objects/ItemSpecificData |
string JSON | {"personalCustomization":false, ....} |
FORTER_ITEM_CREATED_TIME conditional - Time item was created in seconds since unix epoch (UTC, Jan 1, 1970) |
string | 1448549922 |
FORTER_ITEM_DELIVERY_TYPE conditional - Could be either PHYSICAL or DIGITAL. PHYSICAL by default |
string | PHYSICAL |
FORTER_ITEM_DELIVERY_METHOD optional - Should be used if items from the cart have different payment methods |
string | Store Pickup |
Those optional extra data fields are mapped to the corresponding FraudNet Transaction Check Parameters and may help to get much more accurate risk score from the FraudNet: https://api-docs.fraud.net/docs/public-apis/864cd23f8bebe-transaction-check
Name | Type | Example values |
---|---|---|
identification (customer) |
string | 123 |
Name | Type | Example values |
---|---|---|
FRAUDNET_CUSTOMER_REGION |
string | NY |
FRAUDNET_CUSTOMER_PHONE_2 If the phone provided is in not a US number, precede the number with country and city codes |
string | +43660501869 |
FRAUDNET_CUSTOMER_PHONE_3 If the phone provided is in not a US number, precede the number with country and city codes |
string | +43660501869 |
FRAUDNET_CUSTOMER_STARTED_ON Date/Time (ISO 8601) customer started |
string or null<date-time> | 2022-03-26T18:14:29Z |
FRAUDNET_CUSTOMER_TYPE Categorization of the account type |
string | NEW |
FRAUDNET_CUSTOMER_DOB The date of birth of the customer Format: (YYYY-MM-DD) |
string<date> | 1995-12-12 |
FRAUDNET_CUSTOMER_ANNUAL_INCOME |
string | 120000 |
Name | Type | Example values |
---|---|---|
FRAUDNET_TRANSACTION_TYPE Type of query that is being requested (usually sale, registration, payment, or authentication) |
string | sale |
FRAUDNET_TRANSACTION_ORDER_IS_DIGITAL Whether the order is for a digital product or service (digital payments, online games, airline tickets, etc) |
boolean | false |
FRAUDNET_TRANSACTION_EVENT Your order status or order event that you would like to track. This list can be as detailed and numerous as you would like, but each will generally need to be mapped to one of Fraud.net's statuses |
string | pending shipment |
FRAUDNET_TRANSACTION_ORDER_SOURCE Marketing channel that delivered the user to your site. If you would like to track detailed marketing channels, campaigns and media, please contact your customer success team member for instructions. |
string | google ppc |
FRAUDNET_TRANSACTION_ORDER_COUNT User's aggregate (lifetime) number of orders (optional) |
integer | 2 |
FRAUDNET_TRANSACTION_TOTAL_SPENT User's aggregate (lifetime) amount spent |
number | 420 |
FRAUDNET_TRANSACTION_SESSION_ID User's current session ID. Use this to link your website and cart events to your post transaction orders (optional) |
string | 1234ABC |
FRAUDNET_TRANSACTION_FIRST_PURCHASE Date the user first made a purchase |
string | 2020-01-06T13:46:46.718Z |
FRAUDNET_TRANSACTION_LAST_PURCHASE Date the user last made a purchase |
string | 2022-01-06T13:46:46.718Z |
FRAUDNET_TRANSACTION_USER_LOCALE Two-character country code for the transaction location, according to ISO 3166-1 alpha 2 |
string | US |
FRAUDNET_TRANSACTION_COUPON_CODE Coupon code, if a coupon was used |
string | r4124adsq2 |
FRAUDNET_TRANSACTION_ORDER_DISCOUNT Amount of discount |
number | 1 |
FRAUDNET_TRANSACTION_ORDER_SHIPPING Cost of shipping the order |
number | 10 |
FRAUDNET_TRANSACTION_ORDER_TAX Amount of taxes |
number | 5 |
FRAUDNET_TRANSACTION_AGENT_CODE Code for an internal agent who has made changes to the order |
string | AC775 |
FRAUDNET_TRANSACTION_AGENT_DEPT Department of internal agent |
string | ITD |
FRAUDNET_TRANSACTION_IDENT_ID Identification that the customer provided |
string | LZ3124125 |
FRAUDNET_TRANSACTION_IDENT_COUNTRY Country where the customer identification comes from |
string | Austria |
FRAUDNET_TRANSACTION_FEE Type of identification. Allowed values: "ssn", "drivers_lic", "national_id" |
string | ssn |
FRAUDNET_TRANSACTION_AGENT_DEPT Department of internal agent |
string | ITD |
FRAUDNET_TRANSACTION_FEE |
number | 12.00 |
FRAUDNET_TRANSACTION_GEO point of purchase [lat, lon]. Pattern: ^([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
string | 47.21746, -1.5476425 |
FRAUDNET_TRANSACTION_REFERENCE |
string | reference |
Name | Type | Example values |
---|---|---|
FRAUDNET_SELLER_ADDRESS1 Building number and street address for legal address of the company/seller |
string | 554 Main Street |
FRAUDNET_SELLER_ADDRESS2 Apartment/suite/unit number |
string | Suite 443 |
FRAUDNET_SELLER_CITY Address city |
string | New York City |
FRAUDNET_SELLER_COMPANY Seller company name |
string | ACME Inc |
FRAUDNET_SELLER_COUNTRY Two-digit country code , according to ISO 3166-1 alpha 2 |
string | US |
FRAUDNET_SELLER_EMAIL Seller's primary email |
string | [email protected] |
FRAUDNET_SELLER_INDUSTRY Industry in which the seller operates (using your taxonomy, if available) |
string | Retail |
FRAUDNET_SELLER_MCC_ID Merchant category code |
string | 125 |
FRAUDNET_SELLER_NAME Seller's Name |
string | Name |
FRAUDNET_SELLER_PHONE Seller's primary phone. If not a US number, precede the number with country and codes codes |
string | 212-289-1293 |
FRAUDNET_SELLER_POSTAL_CODE Zip or postal code |
string | 10001 |
FRAUDNET_SELLER_REGION Two-digit state or province code, according to ISO 3166-1 alpha 2 |
string | |
FRAUDNET_SELLER_SECTOR Sector in which the seller specializes |
string | Apparel > Shoes |
FRAUDNET_SELLER_TAX_ID Tax ID for this seller (optional) |
string | DE12345678911 |
FRAUDNET_SELLER_ACCOUNT_ID |
string | |
FRAUDNET_SELLER_ACCOUNT_TYPE |
string |
Name | Type | Example values |
---|---|---|
FRAUDNET_DEVICE_RESOLUTION legacy field |
string | 1024x768 |
FRAUDNET_DEVICE_USER_AGENT |
string | MOZILLA/5.0 (IPHONE; CPU IPHONE OS 7_1 LIKE MAC OS X) APPLEWEBKIT/537.51.2 |
FRAUDNET_DEVICE_SERVICE Allowed values: "fraudnet", "infoscore", "inauth", "none" |
string | none |
FRAUDNET_DEVICE_CLIENT_ID |
string | |
FRAUDNET_DEVICE_SESSION_ID |
string | 554 Main Street |
FRAUDNET_DEVICE_FINGERPRINT_ID |
string | |
FRAUDNET_DEVICE_IP_TYPE The remote IP address type. If a valid ip_address is supplied, this field's value will be overwritten to indicate the type of ip address sent. Allowed values: "v4", "v6" |
string | v4 |
FRAUDNET_DEVICE_PLUGIN_HASH The hash from the Device Fingerprint for browser plugins |
string | |
FRAUDNET_DEVICE_TIME_ZONE |
string | |
FRAUDNET_DEVICE_LANGUAGE |
string | en-GB |
FRAUDNET_DEVICE_IS_PROXY Flag that tells about a used proxy |
boolean | false |
FRAUDNET_DEVICE_HTTP_REFERER |
string | |
FRAUDNET_DEVICE_NUM_MIME_TYPES |
string | |
FRAUDNET_DEVICE_MIME_TYPES_HASH |
string | |
FRAUDNET_DEVICE_NUM_FONTS |
integer | |
FRAUDNET_DEVICE_FONTS_HASH |
string | |
FRAUDNET_DEVICE_NUM_PLUGINS |
integer | |
FRAUDNET_DEVICE_PLUGINS_HASH |
string | |
FRAUDNET_DEVICE_COLOR_DEPTH |
integer | |
FRAUDNET_DEVICE_FONT_SMOOTHING |
boolean | |
FRAUDNET_DEVICE_JAVA_SUPPORT |
boolean | |
FRAUDNET_DEVICE_TOUCH_SUPPORT |
boolean | |
FRAUDNET_DEVICE_COOKIE_SUPPORT |
boolean | |
FRAUDNET_DEVICE_CANVAS_FINGERPRINT_ID |
string | |
FRAUDNET_DEVICE_CANVAS_HEIGHT |
integer | |
FRAUDNET_DEVICE_CANVAS_WIDTH |
integer | |
FRAUDNET_DEVICE_SCREEN_HEIGHT |
integer | |
FRAUDNET_DEVICE_SCREEN_WIDTH |
integer | |
FRAUDNET_DEVICE_IS_TOR |
boolean | |
FRAUDNET_DEVICE_GEO Device location. Pattern: ^([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
string | 47.21746, -1.5476425 |
FRAUDNET_DEVICE_CITY |
string | |
FRAUDNET_DEVICE_COUNTRY |
string | |
FRAUDNET_DEVICE_POSTAL_CODE |
string | |
FRAUDNET_DEVICE_PROXY_TYPE Allowed values: "vpn", "tor", "dch", "pub", "web", "ses" |
string | vpn |
Name | Type | Example values |
---|---|---|
FRAUDNET_ACCOUNT_CURRENT_BALANCE Account balance at the time of current transaction |
number | 55 |
FRAUDNET_ACCOUNT_DAYS_LATE |
integer | |
FRAUDNET_ACCOUNT_DUE_ON Date the next account payment is due by. Format: ISO 8601 |
string<date-time> | 2022-03-26T18:14:29Z |
FRAUDNET_ACCOUNT_INC_COUNTRY Country the [business] account was incorporated. Format: <= 2 characters |
string | US |
FRAUDNET_ACCOUNT_INC_ON Date the [business] account was incorporated on |
string<date-time> | 2022-03-26T18:14:29Z |
FRAUDNET_ACCOUNT_INC_REGION Region or State the [business] account was incorporated on |
string | |
FRAUDNET_ACCOUNT_LABEL Merchant Specific name of the type of account |
string | |
FRAUDNET_ACCOUNT_LAST_BALANCE Account balance as of last statement |
string | |
FRAUDNET_ACCOUNT_LAST_LOGIN Date of the last account login. Format: ISO 8601 |
string<date-time> | 2022-03-26T18:14:29Z |
FRAUDNET_ACCOUNT_LAST_MIN_DUE The minimum amount due on last account statement |
string | |
FRAUDNET_ACCOUNT_LAST_PAYMENT_AMOUNT The last payment amount for the account |
number | |
FRAUDNET_ACCOUNT_LAST_PAYMENT_ON The date of the last account payment. Format: ISO 8601 |
string<date-time> | 2022-03-26T18:14:29Z |
FRAUDNET_ACCOUNT_MIN_DUE Minimum amount due on account at the time of current transaction |
number | |
FRAUDNET_ACCOUNT_OPENED_UP UTC date and time the transaction placed. Format: ISO 8601 |
string<date-time> | 2022-03-26T18:14:29Z |
FRAUDNET_ACCOUNT_TAX_ID Accounts's tax identification number |
string | |
FRAUDNET_ACCOUNT_TYPE Categorization of the account type |
string | |
FRAUDNET_ACCOUNT_UNBILLED_CHARGES Fees on account that have not been paid |
number | |
FRAUDNET_ACCOUNT_EXPOSURE_AMT The total exposure of the account |
number | |
FRAUDNET_ACCOUNT_AVAILABLE_FUNDS The available funds for the account |
number | |
FRAUDNET_ACCOUNT_CLOSED_ON The date the account was closed. Format: ISO 8601 |
string<date-time> | 2022-03-26T18:14:29Z |
FRAUDNET_ACCOUNT_CREDIT_LIMIT Credit limit for the account |
number | |
FRAUDNET_ACCOUNT_IS_ACTIVE Is the account active? |
boolean | |
FRAUDNET_ACCOUNT_IS_FRAUD Was the account closed for fraud reasons? |
boolean | |
FRAUDNET_ACCOUNT_LATE_STATUS_LABEL Merchant specific status for account delinquency |
string | |
FRAUDNET_ACCOUNT_STATUS Merchant specific term for account's current status |
string | |
FRAUDNET_ACCOUNT_PIN_CHANGE_ON Format: ISO 8601 |
string<date-time> | 2022-03-26T18:14:29Z |
FRAUDNET_ACCOUNT_EMAIL_CHANGE_ON Format: ISO 8601 |
string<date-time> | 2022-03-26T18:14:29Z |
FRAUDNET_ACCOUNT_ADDRESS_CHANGE_ON Format: ISO 8601 |
string<date-time> | 2022-03-26T18:14:29Z |
FRAUDNET_ACCOUNT_PASSWORD_CHANGE_ON Format: ISO 8601 |
string<date-time> | 2022-03-26T18:14:29Z |
FRAUDNET_ACCOUNT_PHONE_CHANGE_ON Format: ISO 8601 |
string<date-time> | 2022-03-26T18:14:29Z |
Name | Type | Example values |
---|---|---|
FRAUDNET_PAYMENT_CARD_STATUS The status of the card. Allowed values: "active", "cancelled", "decline", "deleted", "inactive", "lost", "new", "pick-up", "request", "restricted", "stolen", "suspended", "delinquency", "damaged", "expired" |
string | active |
FRAUDNET_PAYMENT_IS_ACTIVE Is the card for this transaction active? |
boolean | true |
FRAUDNET_PAYMENT_GIFT_CARD_NUMBERS |
string | G4216291 |
FRAUDNET_PAYMENT_GIFT_CARDS Single or list of gift card numbers used with order. |
array[string] | |
FRAUDNET_PAYMENT_INPUT_CAPABILITIES Code indicating card read capabilities. |
string | |
FRAUDNET_PAYMENT_SERVICE_CODE Service code for the payment. |
string | 123 |
FRAUDNET_PAYMENT_TRANSACTION_LABEL User defined label that categorizes the transaction. |
string | european_customer |
FRAUDNET_PAYMENT_TRANSACTION_TYPE User defined code specifying the type of Terminal at the Point of transaction. |
string | |
FRAUDNET_PAYMENT_ACTIVE_ON Format: ISO 8601 |
string<date-time> | 2022-03-26T18:14:29Z |