PCI Deposit Creation Endpoint
Learn how to use the PCI Deposit endpoint to create One Shot payments with credit cards
Deposit creation
POST
https://cc-api-stg.directa24.com/v3/deposits
This endpoint allows you to generate credit cards transactions by sending the Credit Card details.
Headers
Name | Type | Description |
---|---|---|
Content-Type | string |
|
X-Date | string | ISO8601 Datetime with Timezone:
|
X-Login | string | Merchant X-Login API Key |
Authorization | string | Authorization control hash |
X-Idempotency-Key | string | Unique idempotency key |
Request Body
Name | Type | Description |
---|---|---|
country* | string | Country of the transaction |
amount* | number | Amount of the transaction |
currency* | string | Currency of the amount specified |
invoice_id* | string | Unique deposit ID on the merchant end |
payer* | object | Object containing details about the customer. See "Payer object" section for details |
credit_card | object | Object containing the credit card details |
card_token | string | Card Token obtained from our Cards SDK |
description | string | Descriptor for the transaction |
client_ip* | string | Valid IPv4/v6 Address of the customer |
device_id | string | Unique customer's device ID created using our JS library |
fee_on_payer | boolean | Used to specify if you want to let the customer assume the deposit fee |
The usage of this endpoint is restricted to PCI Compliant merchants who have shared their PCI AOC certificate with their Account Manager.
V3 PCI Request
A request made through the PCI Deposit Creation endpoint works almost in the same way than the non-PCI Deposits endpoint does, with the difference being on the credit_card
object you need to send.
The transactions created using the V3 PCI endpoint will receive:
Synchronic answer confirming the result of the transaction (in case that no 3DS authentication is required), hence no notifications will be sent by default.
In case of requiring a 3DS Authentication of the payer, then the result of the transaction will be
PENDING_AUTHENTICATION
in order to trigger the corresponding flow. In this case a webhook notification will be sent to check the final status of the Deposit. Please visit Deposits with 3DS Authentication for more details.
Request Example
Response Example: Success/ Rejection / Pending Authentication
Response Fields
Field name | Format | Description |
| Integer | ID of the deposit generated on our end. Store this ID for future reference |
| String | ID of the user. If you didn't send it, it is generated by us |
| String | ID of the deposit on your end. If you didn't send it, it is generated by us |
| Object | Object containing the information about the payment |
| String | Type of transaction (Always CREDIT_CARD) |
| String | Status of the transaction: SUCCESS or REJECTED |
| String | Transaction result. Only shown in case of rejection |
| String | Code of the result. Only shown in case of rejection |
| String | Payment method code. See the list here. |
| String | Payment method name. See the list here. |
| number | Amount sent to the card acquirer |
| string | Currency of the amount sent to the card acquirer |
| string | Transaction date |
| URL | URL to display to the end-user in order to complete the 3DS Authentication. |
Response Example
For more information about Pending Authentication results, please visit Deposits with 3DS Authentication.
Response Example: Error
Response Fields
Field name | Format | Description |
| Number | Error code. See the list of error codes |
| String | Description of the error |
| String | Details about the errors. It is shown in case of invalid details |
| String | Error code name. It is not always shown. See the list of error codes |
Response Example
Status reasons
Along with every REJECTED transaction, we will provide you with a reason
and a reason_code
you can use to map the error codes on your end.
Transaction status | Reason code | Reason |
|
| The card issuer rejected the payment because of their anti-fraud rules |
|
| Transaction type is not supported for acquirer |
|
| Invalid credit card number |
|
| Invalid card holder |
|
| Invalid expiration date |
|
| Invalid CVV/CVV2 |
|
| Invalid card issuer |
|
| Invalid card pin |
|
| Payment duplicated |
|
| Max attempts reached for this user and card |
|
| Insufficient funds |
|
| The transaction was rejected because the user needs to call their bank to activate the card |
|
| Credit card bin number not found |
|
| Credit card expired |
|
| Card declined by issuer |
|
| Card reported as stolen |
|
| Card reported as lost |
|
| The card was blocked by the bank |
|
| The card is requested by the bank |
|
| Card blacklisted |
|
| Card disabled |
|
| Generic rejection reason |
Request Fields Description
Field name | Format | Description | Default | Validations | Required |
| string (length: 2) | Country code of the deposit in ISO 3166-1 alpha-2 code format | Yes | ||
| decimal (max decimals: 2) | Deposit amount in the currency specified | Number of up to 18 integers and 2 decimals places | Yes | |
| string (length: 3) | Currency code of the amount in ISO 4217 format |
| See Currencies | Yes |
| integer (max length: 2) | Number of installments in which the deposit will take place. *Check eligibility with your commercial contact. | Integer number between 1 and 12. | No | |
| string (max length: 128) | Unique deposit ID on the merchant end | random |
| Yes |
| object[] | Yes | |||
| object[] | No | |||
| string (max length: 100) | Transaction description. It could be shown on the customers credit card extract | String of up to 100 characters | No | |
| string | Valid IPv4 or IPv6 Address |
| Yes | |
| string (max length: 100) | Unique customer's device ID. Used to identify and prevent fraud. | String of up to 100 characters | No | |
| string (max length: 50) | Card Token generated with Cards SDK Without User Interface. | String of up to 50 characters | No | |
| boolean | Choose if the deposit's fee will be paid by the customer or debited from your balance |
|
| No |
| integer | Used to specify for which SubMerchant ID the deposit will be created. |
Request Objects
Credit Card Object
Field name | Format | Description | Validations | Required |
| String (max length: 4 digits) | Credit card CVV/CVV2 code |
size must be between 3 and 4 | Yes |
| String (max length: 16 digits) | The credit card number consisting of up to 16 digits | Yes | |
| String(length: 2) | Credit card expiration month |
| Yes |
| String(length: 2) | Credit card expiration year last two digits |
Valid year: 25 | Yes |
| String (max length: 256) | The name of the credit card owner | Valid name | Yes |
Payer Object
Field name | Format | Description | Default | Validations | Required |
| string (max length: 128) | Customer's ID generated on your end. Used to locate user's transaction on our Merchant Panel | If none is sent, we will autogenerate it |
| Recommended |
| string (max length: 30) | Customer's document ID. Ensure it is correct and the user can't change it every time he/she deposits | Yes | ||
| string (max length: 10) | Customer's document type. Optional, if sent must be a valid document type | Yes | ||
| string (max length: 255) | Valid customer's email address | Valid email address | Yes | |
| string (max length: 128) | Customer's first name | String of up to 128 characters | Yes | |
| string (max length: 128) | Customer's last name | String of up to 128 characters | Yes | |
| object[] | No | |||
| string (max length: 32) | Valid customer's phone number | No | ||
| string (max length: 8) | Customer's birthdate in format yyyyMMdd. E.g.: 19801027 | Numeric format expected: | No |
Payer.address Object
Field name | Format | Description | Validations | Required |
| string (max length: 255) | Customer's street | String of up to 255 characters | No |
| string (max length: 128) | Customer's city | String of up to 128 characters | No |
| string (max length: 3) | Customer's state code in ISO 3166-2 code format | Valid state code in ISO 3166-2 format. Check our States endpoint here | No |
| string (max length: 16) | Customer's zip code | No |
Card Numbers for Testing
In the following table you will find card numbers from specific brands to test different payment flows and our systems' responses.
For all Results:
Expiration date has to be in the future (
expiration_month
+expiration_year)
cvv
: any three numeric digits.holder_name
: any name.
For Success Results in STG: any card number not listed below, will simulate a success scenario. (For example, Card Number: 4111111111111111)
Visa
Card Number | Result |
4222222222222220 | Card Rejected. |
4000000000000060 | Card Expired. |
4444444444444440 | Insufficient funds. |
4000000000000110 | Card reported as stolen. |
4000000000000040 | The card issuer rejected the payment because of their anti-fraud rules. |
Mastercard
Card Number | Result |
5454545454545450 | Card Rejected. |
5555555555554440 | Card Expired. |
5105105105105100 | Insufficient funds. |
5451951574925480 | Card reported as stolen. |
5406251139676600 | The card issuer rejected the payment because of their anti-fraud rules. |
American Express
Card Number | Result |
340000000000009 | Card Rejected. |
373737373737374 | Card Expired. |
370000000000002 | Insufficient funds. |
343434343434343 | Card reported as stolen. |
341111111111111 | The card issuer rejected the payment because of their anti-fraud rules. |
JCB
Card Number | Result |
3530185156387080 | Card Rejected. |
3566002020360500 | Card Expired. |
3555555555555552 | Insufficient funds. |
3539189698635270 | Card reported as stolen. |
3588430314874690 | The card issuer rejected the payment because of their anti-fraud rules. |
Last updated