> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://ixopay.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://ixopay.ferndocs.com/_mcp/server.

# CheckoutCom

This page provides an overview of the payments methods provided by the CheckoutCom adapter in the IXOPAY platform. It also includes a full list of all configuration options available to you when integrating CheckoutCom within your payments landscape, as well as an overview of the parameters required when submitting a transaction via IXOPAY's API.

## Payment Methods

| 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                                                    |
| Bizum          | Server-To-Server                     | Debit, Refund                                                    |

## iDeal

### Additional Parameters

**Debit**

| Field                         | Required |
| ----------------------------- | -------- |
| description                   | **true** |
| billingCity                   | false    |
| ipAddress                     | false    |
| language (customer.extraData) | false    |

## Bizum

### Additional Parameters

**Debit**

| Field                          | Type   | Required | Info                                                                                                                                                                                                                |
| ------------------------------ | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| customer.extraData.countryCode | string | **true** | The international country calling code. [Checkout.com API field](https://api-reference.checkout.com/#operation/requestAPaymentOrPayout!path=0/customer/phone/country_code\&t=request) `customer.phone.country_code` |
| customer.extraData.phoneNumber | string | **true** | The phone number. [Checkout.com API field](https://api-reference.checkout.com/#operation/requestAPaymentOrPayout!path=0/customer/phone/number\&t=request) `customer.phone.number`                                   |

## Credit card

### Platform 1 - Payout Parameters

| 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 |

### Platform 2 - Payout Parameters

**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` |
| extraData.digitalGoods:type | string | conditional | May be one of `cryptocurrency` `cbdc` `stablecoin` `blockchain` `NFT`                                                                                                                                                                                                         |

### Account Funding Transfer Parameters

| 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                            |
| extraData.recipientDateOfBirth      | string | Recipient's date of birth                        |
| extraData.senderDateOfBirth         | string | Sender's date of birth                           |
| 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                                 |

### Level 2 & 3 Data

> **Note**
>
> Supported on Platform 2 only

**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                                          |

### Ramp provider affiliate Parameters

| Field                     | Type   | Description                                                                                                     |
| ------------------------- | ------ | --------------------------------------------------------------------------------------------------------------- |
| extraData.affiliateId     | string | Your unique identifier for the affiliate (\<= 15 characters)                                                    |
| extraData.affiliateUrl    | string | Affiliate Url                                                                                                   |
| extraData.purchaseCountry | string | Required to inform Visa of the affiliate’s country (either the same as, or different to the merchant’s country) |

### Risk / Device Session Parameters

Forwards the device fingerprint collected by the Checkout.com Risk SDK to the payment request. Only sent when the parameter is present.

| Field                         | Type   | Required | Description                                                                                                                                                                      |
| ----------------------------- | ------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| extraData.device\_session\_id | string | false    | Device session id generated by the Checkout.com Risk SDK, mapped to the Checkout.com API field `risk.device_session_id`. Used for Debit, Preauthorize and Register transactions. |

### Account Name Inquiry (ANI)

Enable the accountNameInquiryEnabled connector setting to have Checkout.com verify the cardholder name during a card verification (Register) transaction.

### Result Extra Data

| Parameter              | Value                                                                                                                                                                                                                                                                                                 |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| avs\_result            | Mapped from the field `avs_check`. For possible values see [Checkout.com API reference](https://api-reference.checkout.com/)                                                                                                                                                                          |
| cvv\_result            | Mapped from the field `cvv_check`. For possible values see [Checkout.com API reference](https://api-reference.checkout.com/)                                                                                                                                                                          |
| account\_name\_inquiry | Mapped from the field account\_holder.account\_name\_inquiry. Only returned for Register (card verification) transactions when Account Name Inquiry is enabled on the connector. For possible values see [Checkout.com ANI codes](https://www.checkout.com/docs/developer-resources/codes/ani-codes). |

### Merchant Advice Code Mapping

The merchant advice code is retrieved in following order from:

* `processing.partner_merchant_advice_code`
* `processing.recommendation_code`
* `recommendation_code`

The merchant advice code is only parsed for `processing.partner_merchant_advice_code`:

| CheckoutCom Merchant Advice Code | CheckoutCom Description                                                    | Parsed Code `returnData.parsedMerchantAdviceCode` | Parsed Code Description        |
| -------------------------------- | -------------------------------------------------------------------------- | ------------------------------------------------- | ------------------------------ |
| 01                               | New Account Information available                                          | 01                                                | Additional information needed. |
| 04                               | Token requirements not fulfilled for this token type                       | 01                                                | Additional information needed. |
| 02                               | Try again later                                                            | 02                                                | Try again later.               |
| 24                               | Retry after 1 hour                                                         | 02                                                | Try again later.               |
| 25                               | Retry after 24 hours                                                       | 02                                                | Try again later.               |
| 26                               | Retry after 2 days                                                         | 02                                                | Try again later.               |
| 27                               | Retry after 4 days                                                         | 02                                                | Try again later.               |
| 28                               | Retry after 6 days                                                         | 02                                                | Try again later.               |
| 29                               | Retry after 8 days                                                         | 02                                                | Try again later.               |
| 30                               | Retry after 10 days                                                        | 02                                                | Try again later.               |
| 31                               | Retry later (max 15 attempts in 30 day period)                             | 02                                                | Try again later.               |
| 03                               | Do not try again                                                           | 03                                                | Do not try again.              |
| 21                               | Recurring Payment Cancellation Service (the new fee applies with this one) | 03                                                | Do not try again.              |
| 22                               | Merchant does not qualify for product code                                 | 03                                                | Do not try again.              |