SolidGate API is a full host-to-host REST API. Parameters are transmitted via POST-method in the request body (JSON format). The payment form is hosted on the Merchant's end.
Only PCI DSS certified merchants are eligible for full API considering that merchant collects sensitive card data and hosts payment form.
In order to start working with SolidGate API, JSON requests shall be sent to:
API Endpoint URL - https://pay.solidgate.com/api/v1
SolidGate API has the following methods:
|
Please, note that all requests must be signed.
Charge request - basic operation of funds withdrawal from cardholder's account. This operation can be made via 3-D Secure. When the operation is successfully done, cardholder data is tokenized so that the subsequent payments can be made by token (recurring or tokenized transactions).
POST https://pay.solidgate.com/api/v1/charge
First payment without CVV
PCI DSS merchant can use flow if:
If you are integrated alternatively, this flow does not apply.
Our payment method (charge) is used to pay with the card data (card number and expiration date) without CVV:
Charge Request Body Parameters
Parameter | Mandatory | Type | Description | Example |
---|---|---|---|---|
order_id | Yes | string(100) | Order ID specified in the merchant system | 123443334 |
amount | Yes | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 1020 |
currency | Yes | string(3) | Order currency. 3 letter currency code under ISO-4217 | USD |
card_number | Yes | string(25) | Card number | 4411111111111111 |
card_exp_month | Yes | string(2) | Month of card expiration (2-digit format) | 1 |
card_exp_year | Yes | string(4) | Year of card expiration (4-digit format) | 2024 |
order_description | Yes | string(100) | Order description in UTF-8 code. | Premium package |
customer_email | Yes | string(100) | Customer email. | jondou@gmail.com |
ip_address | Yes | string(50) | Customer IP (only public ones). | 8.8.8.8 |
platform | Yes | string(6) | Customer platform at the moment of payment. Available values: WEB- desktop, MOB - mobile version, APP - application. | WEB |
card_holder | No | string(32) | Cardholder name | JOHN SNOW |
card_pin | No | string(4) | Card pin. Required for VERVE cardbrand only | 1111 |
card_cvv | No | string(4) | CVV2/CVC2 card - 3 or 4 digit code | 123 |
payment_type | No | string | Token transaction type. It should be provided for correct SCA routing. 1-click - customer-initiated payment/recurring - merchant-initiated subscription payment/retry - retry of the merchant-initiated subscription payment/installment - specific value for the Financial Institutions/rebill - not regular cash withdrawals (depending on the trigger, the frequency and amount of write-offs, in this case, is determined by the point of sale itself) | 1-click |
scheme_transaction_ID | No | string | Card scheme specific transaction ID required for payments that use stored card details, such as recurring payments. For payment_type with recurring/rebill/installment/retry type, specifying the parameter is highly recommended. | 1234567890 |
geo_country | No | string(3) | Customer country subject to ISO 3166-1 alpha-3. | GBR |
order_date | No | string(50) | Date of order creation in format YYYY-MM-DD-HH-MM-SS. | 2012-12-21 11:21:30 |
order_items | No | string(255) | Order description in UTF-8 code. | item 1, item 2 |
customer_account_id | No | string(100) | Customer ID in the merchant's system. | 4dad42f808 |
customer_first_name | No | string(100) | Customer first name. | John |
customer_last_name | No | string(100) | Customer last name. | Snow |
customer_phone | No | string(50) | Customer phone number. | 380111111111 |
customer_date_of_birth | No | string(50) | Birthdate in YYYY-MM-DD format. | 2000-11-21 |
geo_city | No | string(100) | Customer City. | New Castle |
language | No | string(2) | Customer language settings. Available values: RU - Russian, EN - English. | en |
fraudulent | No | boolean | Customer is detected by the merchant system to be suspicious one. The payment will be effected via 3DS. | TRUE |
fail_url | No | string(255) | URL of merchant page, which a customer will be redirected in case of failed payment | http://merchant.example/fail |
success_url | No | string(255) | URL of merchant page, which a customer will be redirected in case of successful payment | http://merchant.example/success |
verified | No | boolean | A user was verified on the shop side. | TRUE |
retry_attempt | No | integer | A number of retry payment. | 1 |
traffic_source | No | string(255) | Source of traffic. | |
transaction_source | No | string(255) | Source of transactions on site. | main_menu |
user_agent | No | string | User-agent of the customer. | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 |
device | No | string | Device of customer | iPhone 8 iOS 12.0 |
website | No | string(255) | Website from which transaction took place. | google.com |
order_number | No | integer | A number of payments by the user. | 1 |
address | No | string(100) | Address (mandatory parameter for USA location). | New York, 10005, 15 William St |
state | No | string(10) | State (mandatory parameter for USA location). | WA |
zip_code | No | string(10) | Parameter for identifying location (user billing zip code). Mandatory parameter for USA location. | 10005 |
city | No | string(100) | Customer city. (mandatory parameter for USA location) | New York |
force3ds | No | boolean | Routing payments flag for 3DS flow (enabled by Solid account manager) | FALSE |
header_accept | Yes - 3D 2.0 | string(255) | Header Accept. | text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng |
header_accept_language | Yes - 3D 2.0 | string(255) | Header Accept Language. | ru-RU,ru;q=0.9,en-US;q=0.8 |
browser_color_depth | Yes - 3D 2.0 | integer | Color depth of browser window. | 32 |
browser_screen_height | Yes - 3D 2.0 | integer | Height of browser window. | 1920 |
browser_screen_width | Yes - 3D 2.0 | integer | Width of browser window. | 1280 |
browser_java_enabled | Yes - 3D 2.0 | boolean | Is java enabled on User browser. | FALSE |
browser_javascript_enabled | Yes - 3D 2.0 | boolean | Is javascript enabled on User browser. | FALSE |
time_zone_offset | Yes - 3D 2.0 | integer | The time difference, in minutes, between UTC time and the local time of the cardholder's browser. | -1 |
type | No | string | The parameter for transaction-authorization | auth |
settle_interval | No | integer | Time (in hours) when auto-settle should be done. | 1 |
payment_type_data | No | object | Object with additional customer data to process payments in specific locations. The full list of additional fields is provided in Information section. | |
order_metadata | No | object | Metadata is useful for storing additional, structured information about an object. The object consists of a set of key-value pairs (e.g. “coupon_code”: “NY2018", “partner_id”: “123989"). The callback notification returns an order_metadata from the order in each state. The validation of up to 10 fields with an upper limit of 255 characters. |
{
"amount":1196,
"currency":"GBP",
"order_id":"v0k4v00x",
"order_description":"Purchase for order group",
"customer_email":"johngolt",
"customer_account_id":"6266eb7cbf2b0135b77c2f52",
"customer_first_name":"Sarah",
"customer_last_name":"Dickinson",
"geo_country":"GBR",
"ip_address":"8.8.8.8",
"language":"en",
"platform":"APP",
"success_url":"http://merchant.example/success",
"fail_url": "http://merchant.example/fail",
"force3ds":true,
"card_number":"5589800801939886",
"card_holder":"TRINITY SIMON",
"card_exp_month":"01",
"card_exp_year":"2029",
"card_cvv":"695", "header_accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"header_accept_language":"en-GB,en-US;q=0.9,en;q=0.8",
"browser_color_depth":24,
"browser_screen_height":869,
"browser_screen_width":412,
"browser_java_enabled":false,
"browser_javascript_enabled":true,
"time_zone_offset":-60,
"order_metadata": {
"coupon_code": "NY2018",
"partner_id": "123989",
"udf_client_type": "vipClient",
"udf_delivery_group": "fastDelivery"
}
}
Charge Response Body Parameters | Success
Parameter | Type | Description | Example |
---|---|---|---|
transactions | object | Object with information of transactions. | |
transactions:<transaction_id> | object | Transaction identification within the order. It contains an object with detailed information about the specified transaction. Order can contain several transactions. | 00016857481e16b07fc |
transactions:<transaction_id>:id | string | Transactions identification within the order. | 00016857481e16b07fc |
transactions:<transaction_id>:operation | string | Transaction type. | pay |
transactions:<transaction_id>:status | string | Transaction status within the order. Transaction statuses are described in respective directory. | success |
transactions:<transaction_id>:descriptor | string | The descriptor for the transaction | payhere.com |
transactions:<transaction_id>:amount | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 2575 |
transactions:<transaction_id>:currency | string | Transaction currency. | USD |
transactions:<transaction_id>:created_at | string | Transaction created DateTime | 2019-05-17 9:06:21 |
transactions:<transaction_id>:updated_at | string | Transaction updated DateTime | 2019-05-17 9:06:21 |
transactions:<transaction_id>:card | object | Object with information about the card. Present in payment transactions | |
transactions:<transaction_id>:card:bin | string | Card BIN | 411111 |
transactions:<transaction_id>:card:brand | string | Card Brand | VISA |
transactions:<transaction_id>:card:number | string | Masked card number | 411111XXXXXX1111 |
transactions:<transaction_id>:card:card_holder | string | Cardholder name | Test User |
transactions:<transaction_id>:card:bank | string | Bank emitent | STATE BANK |
transactions:<transaction_id>:card:country | string | Country of the bank | USA |
transactions:<transaction_id>:card:card_exp_month | string | A month of the expiration date on a card. (2-digit format) | 3 |
transactions:<transaction_id>:card:card_exp_year | integer | A year of the expiration date on a card. (4-digit format) | 2025 |
transactions:<transaction_id>:card:card_type | string | A type of the card | DEBIT |
order | object | Object with order information | |
order:order_id | string | Order ID specified in the merchant system | 123443334 |
order:order_description | string | Order description in UTF-8 code. | Premium package |
order:traffic_source | string | Source of traffic | |
order:customer_email | string | Customer email | jondou@gmail.com |
order:amount | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 2575 |
order:currency | string | Order currency (3 letter code under ISO 4217). | USD |
order:fraudulent | boolean | The customer was detected on the merchant end to be suspicious one. | TRUE |
order:marketing_amount | integer | The marketing amount of the order converted in USD (or other currency as agreed) at a publicly available rate at the time of the transaction. It can only be used for marketing forecasts. | 2575 |
order:marketing_currency | string | The currency of order amount for marketing analytics. | USD |
order:status | string | Status of payment processed. Types of order statuses are described in the respective directory. | created |
order:refunded_amount | integer | Amount of refund | 0 |
order:descriptor | string | The descriptor for the transaction | payhere.com |
transaction | object | Object with information on the transaction. | |
transaction:id | string | ID of the transaction inside the order. Order can contain several transactions | 02b988721b9e9ba89c7f75fbb8d21ceb5ea29550b75cd |
transaction:operation | string | Transaction type. Available values - pay. | pay |
transaction:status | string | Transaction status within the order. | created |
transaction:amount | integer | Transaction amount. | 2575 |
transaction:currency | string | Transaction currency. | USD |
transaction:created_at | string | Transaction created DateTime | 2019-05-17 9:06:21 |
transaction:updated_at | string | Transaction updated DateTime | 2019-05-17 9:06:21 |
transaction:card: | object | Object with information about the card. Present in payment transactions. | |
transaction:card:bin | string | Card BIN. | 411111 |
transaction:card:brand | string | Card Brand. | VISA |
transaction:card:country | string | Country of the bank. | USA |
transaction:card:number | string | Masked card number. | 411111XXXXXX1111 |
transaction:card:card_holder | string | Cardholder Name | Test User |
transaction:card:card_exp_month | string | A month of the expiration date on a card. (2-digit format) | 3 |
transaction:card:card_exp_year | integer | A year of the expiration date on a card. (4-digit format) | 2025 |
transaction:card:card_type | string | A type of the card. | DEBIT |
payment_adviser | object | The object that contains advice from payment adviser | |
payment_adviser:advise | string | Recommendation for next payment | pay / resign / recurring |
{
"transactions": {
"00016857481e16b07fc": {
"id": "00016857481e16b07fc",
"operation": "pay",
"status": "created",
"amount": 2575,
"currency": "USD",
"created_at": "2019-05-17 09:06:21",
"updated_at": "2019-05-17 09:06:32",
"card": {
"bank": "STATE BANK",
"bin": "411111",
"brand": "VISA",
"country": "USA",
"number": "411111XXXXXX1111",
"card_holder": "cardholder name",
"card_exp_month": "03",
"card_exp_year": 2025,
"card_type": "DEBIT"
}
}
},
"order": {
"order_id": "777",
"order_description":"Purchase for order group",
"customer_email":"jondou@gmail.com",
"traffic_source": "facebook",
"amount": 2575,
"currency": "USD",
"fraudulent": true,
"marketing_amount": 2575,
"marketing_currency": "USD",
"status": "created",
"refunded_amount": 0
},
"transaction": {
"id": "00016857481e16b07fc",
"operation": "pay",
"status": "created",
"amount": 2575,
"currency": "USD",
"created_at": "2019-05-17 09:06:21",
"updated_at": "2019-05-17 09:06:32",
"card": {
"bin": "411111",
"brand": "VISA",
"country": "USA",
"number": "411111XXXXXX1111",
"card_holder": "cardholder name",
"card_exp_month": "03",
"card_exp_year": 2025,
"card_type": "DEBIT"
}
},
"payment_adviser": {
"advise": "pay"
}
}
Charge Response Body Parameters | Decline
Parameter | Type | Description | Example |
---|---|---|---|
transactions | object | Object with information of transactions. | |
transactions:<transaction_id> | string | Transaction identification within the order. It contains an object with detailed information about the specified transaction. Order can contain several transactions. | 02b988721b9e9ba89c7f75fbb8d21ceb5ea29550b75cd |
transactions:<transaction_id>:id | string | Transactions identification within the order. | 02b988721b9e9ba89c7f75fbb8d21ceb5ea29550b75cd |
transactions:<transaction_id>:operation | string | Transaction type. | pay |
transactions:<transaction_id>:status | string | Transaction status within the order. | fail |
transactions:<transaction_id>:amount | int | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 1000 |
transactions:<transaction_id>:currency | string | Transaction currency. 3-letter currency code according to ISO-4217 | USD |
transactions:<transaction_id>:error | object | Object with the information regarding the error. | |
transactions:<transaction_id>:error:code | string | Error code. | 4.09 |
transactions:<transaction_id>:error:messages | string | Name of the attribute, in which the error was found. | "Solid antifraud engine" |
transactions:<transaction_id>:error:messages | array | An array of error messages related to this attribute | |
transactions:<transaction_id>:error:messages:<attribute_name> | array | An array of error messages related to this attribute | "Solid antifraud engine" |
transactions:<transaction_id>:created_at | string | Transaction created DateTime | 2020-04-24 7:29:20 |
transactions:<transaction_id>:updated_at | string | Transaction updated DateTime | 2020-04-24 7:29:20 |
transactions:<transaction_id>:marketing_currency | string | Currency of the order for marketing analytic | USD |
transactions:<transaction_id>:marketing_amount | int | The marketing amount of the order converted in USD (or other currency as agreed) at a publicly available rate at the time of the transaction. It can only be used for marketing forecasts. | 1000 |
transactions:<transaction_id>:billing_details | object | Object that contains payment data | |
transactions:<transaction_id>:billing_details:adress | string | Adress that was sent in the request | 21 Bedford Ave |
transactions:<transaction_id>:billing_details:zip | string | ZIP-code that was sent in the request | 91191 |
transactions:<transaction_id>:billing_details:country | string | ISO-code of the country that was sent in the request | USA |
transactions:<transaction_id>:billing_details:city | string | City name that was sent in the request | Boston |
transactions:<transaction_id>:billing_details:state | string | Code of the State that was sent in the request | NY |
transactions:<transaction_id>:card | object | An object that contains information about the bank card | |
transactions:<transaction_id>:card:bank | string | Bank, that issued the credit card | CITIZENS STATE BANK |
transactions:<transaction_id>:card:bin | string | BIN of the credit card | 453245 |
transactions:<transaction_id>:card:brand | string | Brand of the credit card | VISA |
transactions:<transaction_id>:card:country | string | Country of the credit card | USA |
transactions:<transaction_id>:card:number | string | Credit card number | 453245XXXXXX2692 |
transactions:<transaction_id>:card:card_exp_month | string | The month of card expiration (2-digit format) | 3 |
transactions:<transaction_id>:card:card_exp_year | int | Year of the credit card expiration | 2021 |
transactions:<transaction_id>:card:card_type | string | Type of the credit card | DEBIT |
transactions:<transaction_id>:card:card_holder | string | Name of the credit card owner | Kurt Snow |
transactions:error | object | Object with the information about the error | |
transactions:error:code | array | Error code. | 4.09 |
transactions:error:code:<message> | array | An array of error messages related to this attribute | Solid antifraud engine |
transactions:error:messages | object | Object with the messages regarding errors | |
transactions:error:messages:<message> | string | Name of the attribute in which the error was found | Solid antifraud engine |
transactions:error:recommended_message_for_user:<message> | array | An array of error messages related to this attribute | "Solid antifraud engine" |
order | object | Object with the information about an order | |
order:operation | string | Transaction type. | pay |
order:order_id | string | Order ID specified in the merchant system. | 02b988721b9e9ba89c7f75fbb8d21ceb5ea29550b75cd |
order:order_description | string | Order description in UTF-8 code. | Premium package |
order:traffic_source | string | Source of traffic | |
order:customer_email | string | Customer email | jondou@gmail.com |
order:status | string | Order status | fail |
order:amount | int | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 1000 |
order:refund_amount | int | Refund amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. | 0 |
order:currency | string | The currency of the order. 3-letter currency code according to ISO-4217 | USD |
order:marketing_amount | int | The marketing amount of the order converted in USD (or other currency as agreed) at a publicly available rate at the time of the transaction. It can only be used for marketing forecasts. | 1000 |
order:marketing_currency | string | The currency of order amount for marketing analytics | USD |
order:fraudulent | bool | The user was marked as fraudulent on the merchant's side | TRUE |
transaction | object | Object with data about the transaction | |
transaction:id | string | ID of the transaction inside the order. Order can contain several transactions | 02b988721b9e9ba89c7f75fbb8d21ceb5ea29550b75cd |
transaction:operation | string | Transaction type. Possible values: pay | pay |
transaction:status | string | Transaction status inside of the order. | fail |
transaction:amount | int | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 1000 |
transaction:currency | string | The currency of the order. 3-letter currency code according to ISO-4217 | USD |
transaction:error | object | Object with the information about the error | |
transaction:error:code | array | Error code. | 4.09 |
transaction:error:code:<message> | array | An array of error messages related to this attribute | Solid antifraud engine |
transaction:error:messages | object | Object with the messages regarding errors | |
transaction:error:messages:<message> | string | Name of the attribute in which the error was found | Solid antifraud engine |
transaction:error:recommended_message_for_user:<message> | array | An array of error messages related to this attribute | "Solid antifraud engine" |
transaction:created_at:<date_time> | string | Date and time of the order's creation | 2020-04-24 7:29:20 |
transaction:updated_at:<date_time> | string | Date and time of the last order update | 2020-04-24 7:29:20 |
transaction:marketing_currency | string | The currency of order amount for marketing analytics. | USD |
transaction:marketing_amount | int | The marketing amount of the order converted in USD (or other currency as agreed) at a publicly available rate at the time of the transaction. It can only be used for marketing forecasts. | 1000 |
transaction:billing_details | object | Object that contains payment data | |
transaction:billing_details:address | string | Address (mandatory parameter for USA location). | 21 Bedford Ave |
transaction:billing_details:zip | string | ZIP-code that was sent in the request | 91191 |
transaction:billing_details:country | string | ISO-code of the country that was sent in the request | USA |
transaction:billing_details:city | string | City name that was sent in the request | Boston |
transaction:billing_details:state | string | Code of the State that was sent in the request | NY |
transaction:card | object | Object with information about the card. Present in payment transactions | |
transaction:card:bank | string | Bank, that issued the credit card | CITIZENS STATE BANK |
transaction:card:bin | string | Card BIN | 453245 |
transaction:card:brand | string | Card Brand | VISA |
transaction:card:country | string | Country of the bank | USD |
transaction:card:number | string | Masked card number | 453245XXXXXX2692 |
transaction:card:card_exp_month | string | The month of card expiration (2-digit format) | 3 |
transaction:card:card_exp_year | int | Year of card expiration (4-digit format) | 2021 |
transaction:card:card_type | string | A type of card | DEBIT |
transaction:card:card_holder | string | Cardholder name | Kurt Snow |
payment_adviser | object | The object that contains advice from payment adviser | |
payment_adviser:advise: | array | An array with recommendations from the payment adviser | |
payment_adviser:advise:<advise> | string | Recommendations of the payment adviser | pay |
{
"transactions": {
"02b778721b9e9ba89c7f75fbb8d21ceb5ea29550b75cd": {
"id": "02b988721b9e9ba89c7f75fbb8d21ceb5ea29550b75cd",
"operation": "pay",
"status": "fail",
"amount": 1000,
"currency": "USD",
"error": {
"code": "4.09",
"messages": [
"Solid antifraud engine"
],
"recommended_message_for_user": "Solid antifraud engine"
},
"created_at": "2020-04-24 07:29:20",
"updated_at": "2020-04-24 07:29:20",
"marketing_currency": "USD",
"marketing_amount": 1000,
"billing_details": {
"address": "21 Bedford Ave",
"zip": "91191",
"country": "USA",
"city": "Boston",
"state": "NY"
},
"card": {
"bank": "CITIZENS STATE BANK",
"bin": "453245",
"brand": "VISA",
"country": "USA",
"number": "453245XXXXXX2692",
"card_exp_month": "03",
"card_exp_year": 2021,
"card_type": "DEBIT",
"card_holder": "Kurt Snow"
}
}
},
"error": {
"code": "4.09",
"messages": [
"Solid antifraud engine"
],
"recommended_message_for_user": "Solid antifraud engine"
},
"order": {
"order_id": "1587713359140",
"order_description":"Purchase for order group",
"customer_email":"jondou@gmail.com",
"traffic_source": "facebook",
"status": "declined",
"amount": 1000,
"refunded_amount": 0,
"currency": "USD",
"marketing_amount": 1000,
"marketing_currency": "USD",
"fraudulent": true
},
"transaction": {
"id": "02b988721b9e9ba89c7f75fbb8d21ceb5ea29550b75cd",
"operation": "pay",
"status": "fail",
"amount": 1000,
"currency": "USD",
"error": {
"code": "4.09",
"messages": [
"Solid antifraud engine"
],
"recommended_message_for_user": "Solid antifraud engine"
},
"created_at": "2020-04-24 07:29:20",
"updated_at": "2020-04-24 07:29:20",
"marketing_currency": "USD",
"marketing_amount": 1000,
"billing_details": {
"address": "21 Bedford Ave",
"zip": "91191",
"country": "USA",
"city": "Boston",
"state": "NY"
},
"card": {
"bank": "CITIZENS STATE BANK",
"bin": "453245",
"brand": "VISA",
"country": "USA",
"number": "453245XXXXXX2692",
"card_exp_month": "03",
"card_exp_year": 2021,
"card_type": "DEBIT",
"card_holder": "Kurt Snow"
}
},
"payment_adviser": {
"advise": "pay"
}
}
Charge Response Body Parameters | Fail
Parameter | Type | Description | Example |
---|---|---|---|
error | object | Object with the information about the error | |
error:code | string | Error code | 2.01 |
error:type | string | Type of en error | soft |
error:messages | object | Object with a list of error messages | |
error:messages:<attribute_name> | string | The name of the attribute in which the error was found | |
error:messages:<error_message> | array | Array of error messages related to this attribute | This value should not be blank. |
error:"recommended_message_for_user" | object | An object with a list of error messages displayed to the user | |
error:"recommended_message_for_user":<error_message> | string | Error displayed to the user during the decline. (Decline error) | "Order not found" |
{
"error": {
"code": "4.09",
"type": "soft",
"messages": [
"Solid antifraud engine"
],
"recommended_message_for_user": "Solid antifraud engine"
}
}
Operation of the recurring payment. In contrast to Charge, token previously received is to be sent in the request instead of cardholder data.
POST https://pay.solidgate.com/api/v1/recurring
Some recurring transactions (like one-click payments) can go through 3-D Secure verification. You should be ready to show a bank page (ACS URL) for a user. URL of bank page you can receive by notification or request of check order status.
Recurring Request Body Parameters
Parameter | Mandatory | Type | Description | Example |
---|---|---|---|---|
order_id | Yes | string(100) | Order ID specified in the merchant system | 123443334 |
amount | Yes | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 1020 |
currency | Yes | string(3) | Order currency. 3 letter currency code under ISO-4217 | USD |
recurring_token | Yes | string(255) | Card token | 7ats8da7sd8-a66dfa7-a9s9das89t |
order_description | Yes | string(100) | Order description in UTF-8 code | Premium package |
customer_email | Yes | string(100) | Customer email | jondou@gmail.com |
ip_address | Yes | string(50) | Customer IP (only public ones) | 8.8.8.8 |
platform | Yes | string(6) | Customer platform at the moment of payment. Available values: WEB- desktop, MOB - mobile version, APP - application | WEB |
geo_country | No | string(3) | Customer country subject to ISO 3166-1 alpha-3 | GBR |
order_date | No | string(50) | Date of order creation in format YYYY-MM-DD-HH-MM-SS | 2015-12-21 11:21:30 |
order_items | No | string(255) | Order description in UTF-8 code | item 1, item 2 |
customer_account_id | No | string(100) | Customer ID in the merchant's system | 4dad42f808 |
customer_first_name | No | string(100) | Customer first name | John |
customer_last_name | No | string(100) | Customer last name | Snow |
customer_phone | No | string(50) | Customer phone number | 380111111111 |
customer_date_of_birth | No | string(50) | Birthdate in YYYY-MM-DD format | 2000-11-21 |
geo_city | No | string(100) | Customer city | New Castle |
language | No | string(2) | Customer language settings. Available values: RU - Russian, EN - English | en |
fraudulent | No | boolean | The customer is detected by the merchant system to be suspicious one. The payment will be effected via 3DS | TRUE |
fail_url | No | string(255) | URL of the merchant's page, where response with payment result will be sent | http://merchant.example/fail |
success_url | No | string(255) | URL of merchant page, which a customer will be redirected in case of unsuccessful payment | http://merchant.example/success |
verified | No | boolean | The user was verified on the shop side | TRUE |
payment_type | No | string(25) | Type of recurring payment. Should be provided for correct SCA routing | 1-click || retry || recurring || rebill || installment |
retry_attempt | No | integer | Number of retry payment | 1 |
traffic_source | No | string(255) | Source of traffic | |
transaction_source | No | string(255) | Source of transactions on the website | main_menu |
order_number | No | integer | Number of payments by user | 2 |
user_agent | No | string | User-agent of customer | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 |
device | No | string | Device of customer | iPhone 8 iOS 12.0 |
website | No | string(255) | The website from which transaction took place | Google.com |
type | No | string | The parameter for transaction-authorization before a recurring payment | auth |
settle_interval | No | integer | Time (in hours) when auto-settle should be done. Value of null means that the client must request settle on its own. Minimum of 0 means that executed in the near future, and maximum value is 168 hours. | 1 |
force3ds | No | boolean | Routing payments flag for 3DS flow (enabled by Solid account manager) | FALSE |
header_accept | Yes - 3D 2.0 | string(255) | Header Accept | text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng |
header_accept_language | Yes - 3D 2.0 | string(255) | Header Accept Language | ru-RU,ru;q=0.9,en-US;q=0.8 |
browser_color_depth | Yes - 3D 2.0 | integer | The colour depth of the browser window | 32 |
browser_screen_height | Yes - 3D 2.0 | integer | Height of browser window | 1920 |
browser_screen_width | Yes - 3D 2.0 | integer | Width of the browser window | 1280 |
browser_java_enabled | Yes - 3D 2.0 | boolean | Is java enabled on the User's browser | FALSE |
browser_javascript_enabled | Yes - 3D 2.0 | boolean | Is javascript enabled on the User browser | FALSE |
time_zone_offset | Yes - 3D 2.0 | integer | The time difference, in minutes, between UTC time and the local time of the cardholder's browser | 60 |
payment_type_data | No | object | Object with additional customer data to process payments in specific locations. The full list of additional fields is provided in Information section. | |
order_metadata | No | object | Metadata is useful for storing additional, structured information about an object. The object consists of a set of key-value pairs (e.g. “coupon_code”: “NY2018", “partner_id”: “123989"). The callback notification returns an order_metadata from the order in each state. The validation of up to 10 fields with an upper limit of 255 characters. |
{
"amount": 2575,
"recurring_token": "7ats8da7sd8-a66dfa7-a9s9das89t",
"currency": "USD",
"customer_account_id": "user_id",
"customer_date_of_birth": "2000-11-21",
"customer_email": "example.user@example-email.com",
"customer_first_name": "John",
"customer_last_name": "Snow",
"customer_phone": "380000000000",
"fraudulent": true,
"geo_city": "New Castle",
"geo_country": "GBR",
"ip_address": "8.8.8.8",
"language": "en",
"order_date": "2015-12-21 11:21:30",
"order_description": "Premium package",
"order_id": "777",
"order_items": "item 1, item 2",
"platform": "WEB",
"success_url": "http://merchant.example/success",
"fail_url": "http://merchant.example/fail",
"verified": true,
"payment_type": "1-click",
"retry_attempt": "1",
"traffic_source": "facebook",
"transaction_source": "main_menu",
"device": "iPhone 8 iOS 12.0",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36",
"type": "auth",
"settle_interval": 1,
"header_accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng",
"header_accept_language": "ru-RU,ru;q=0.9,en-US;q=0.8",
"browser_color_depth": 32,
"browser_screen_height": 1920,
"browser_screen_width": 1280,
"browser_java_enabled": true,
"browser_javascript_enabled": true,
"time_zone_offset": 60,
"order_metadata": {
"coupon_code": "NY2018",
"partner_id": "123989",
"udf_client_type": "vipClient",
"udf_delivery_group": "fastDelivery"
}
}
Recurring Response Body Parameters | Success
Parameter | Type | Description | Example |
---|---|---|---|
order | object | An object with information of the transaction. | |
order:order_id | string | Order ID specified in the merchant system | 777 |
order:order_description | string | Order description in UTF-8 code. | Premium package |
order:traffic_source | string | Source of traffic | |
order:customer_email | string | Customer email | jondou@gmail.com |
order:amount | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 2575 |
order:currency | string | Order currency (3 letter code under ISO 4217) | USD |
order:fraudulent | boolean | The customer was detected on the merchant end to be a suspicious one | TRUE |
order:marketing_amount | integer | Order amount converted in USD (or any other currency agreed) under open FX sources at the moment of transaction. This can be applied only for marketing forecasting. | 2575 |
order:marketing_currency | string | The currency of the order amount for marketing analytics. | USD |
order:refunded_amount | integer | The amount which was refunded | 0 |
order:descriptor | string | The descriptor for the transaction | payhere.com |
order:status | string | Status of payment processed. Types of order statuses are described in the respective directory. | processing |
transaction | object | An object with information of the transaction. | |
transaction:id | string | Transaction identification within the order. The order can have several transactions. | 1495123020887591dc450088f1 |
transaction:operation | string | Transaction type. Available values - recurring. | recurring |
transaction:status | string | Transaction status within the order. | created |
transaction:amount | integer | Transaction amount. | 2575 |
transaction:currency | string | Transaction currency. | USD |
transaction:created_at | string | Transaction created DateTime | 2019-05-17 9:06:21 |
transaction:updated_at | string | Transaction updated DateTime | 2019-05-17 9:06:21 |
transaction:card | object | An object with information about the card. Present in payment transactions. | |
transaction:card:bank | string | Bank-emitent. | NATIONWIDE BUILDING SOCIETY |
transaction:card:bin | integer | Card BIN. | 444455 |
transaction:card:brand | string | Card Brand. | VISA |
transaction:card:country | string | Country of the bank. | USA |
transaction:card:number | string | Masked card number. | 444455XXXXXX6666 |
transaction:card:card_holder | string | Cardholder name | Test User |
transaction:card:card_exp_month | string | A month of the expiration date on the card. (2-digit format) | 3 |
transaction:card:card_exp_year | integer | A year of the expiration date on the card. (4-digit format) | 2025 |
transaction:card:card_type | string | A type of the card. | DEBIT |
transaction:card_token | object | ||
transaction:card_token:token | string | Card token to be used for recurring payments. It will be returned in case of successful payment. | b5ddb0a1c...1fc4da81ecdad52c0 |
transactions | object | An object with information of transactions. | |
transactions:<transaction_id> | object | Transaction identification within the order. It contains an object with detailed information about the specified transaction. The order can have several transactions. | 1495123020887591dc450088f1 |
transactions:<transaction_id>:id | string | Transactions identification within the order. | 1495123020887591dc450088f1 |
transactions:<transaction_id>:operation | string | Transaction type. | recurring |
transactions:<transaction_id>:status | string | Transaction status within the order. Transaction statuses are described in the respective directory. | created |
transactions:<transaction_id>:descriptor | string | The descriptor for the transaction | payhere.com |
transactions:<transaction_id>:amount | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 2575 |
transactions:<transaction_id>:currency | string | The currency of the order amount for marketing analytics. | USD |
transactions:<transaction_id>:created_at | string | Transaction created DateTime | 2019-05-17 9:06:21 |
transactions:<transaction_id>:updated_at | string | Transaction updated DateTime | 2019-05-17 9:06:21 |
transactions:<transaction_id>:card | object | An object with information about the card. Present in payment transactions. | |
transactions:<transaction_id>:card:bin | integer | Card BIN | 444455 |
transactions:<transaction_id>:card:brand | string | Card Brand | VISA |
transactions:<transaction_id>:card:number | string | Masked card number | 444455XXXXXX6666 |
transactions:<transaction_id>:card:card_holder | string | Cardholder Name | Test User |
transactions:<transaction_id>:card:bank | string | Issuer bank | NATIONWIDE BUILDING SOCIETY |
transactions:<transaction_id>:card:country | string | Country of bank | GBR |
transactions:<transaction_id>:card:card_exp_month | string | A month of expiration date on card. (2-digit format) | 3 |
transactions:<transaction_id>:card:card_exp_year | integer | A year of expiration date on card. (4-digit format) | 2025 |
transactions:<transaction_id>:card:card_type | string | A type of the card. | DEBIT |
transactions:<transaction_id>:card_token | object | ||
transactions:<transaction_id>:card_token:token | string | Card token to be used for recurring payments. It will be returned in case of successful payment. | 8b5ddb0a1c...1fc4da81ecdad52c0 |
payment_adviser | object | ||
payment_adviser:advise | string | Recommendation for next payment | pay / resign / recurring |
{
"transactions": {
"1495123020887591dc450088f1": {
"id": "1495123020887591dc450088f1",
"operation": "recurring",
"status": "created",
"amount": 2575,
"currency": "USD",
"created_at": "2019-05-17 09:06:21",
"updated_at": "2019-05-17 09:06:32",
"card": {
"bank": "STATE BANK",
"bin": 444455,
"brand": "VISA",
"country": "USA",
"number": "444455XXXXXX6666",
"card_holder": "cardholder name",
"card_exp_month": "03",
"card_exp_year": 2025,
"card_type": "DEBIT"
},
"card_token": {
"token": "8b5ddb087c38496bc23fb5a1ce82c9640e1b8128aa9fe5bf54574d10c8a0493c71a1fc4da81e3782397fdc7c142ccdad52c0"
}
}
},
"order": {
"order_id": "777",
"order_description":"Purchase for order group",
"customer_email":"jondou@gmail.com",
"traffic_source": "facebook",
"amount": 2575,
"currency": "USD",
"fraudulent": true,
"marketing_amount": 2575,
"marketing_currency": "USD",
"status": "processing",
"refunded_amount": 0
},
"transaction": {
"id": "1495123020887591dc450088f1",
"operation": "recurring",
"status": "created",
"amount": 100,
"currency": "USD",
"created_at": "2019-05-17 09:06:21",
"updated_at": "2019-05-17 09:06:32",
"card": {
"bin": 344940,
"bank": "NATIONWIDE BUILDING SOCIETY",
"brand": "AMEX",
"country": "USA",
"number": "344940XXXXXX1496",
"card_holder": "cardholder name",
"card_exp_month": "03",
"card_exp_year": 2025,
"card_type": "DEBIT"
},
"card_token": {
"token": "8c6ecf6a69fc58f45ead35ed7c2a8f6edde8d7eb20e82263cba3702fcfb8faee8c1684ab910f8bb0ecb69d98386a998bf2fd"
}
},
"payment_adviser": {
"advise": "pay"
}
}
In case you want to perform the recurring operation with a parameter type = `auth`, please be informed that availaibility of 2-step transaction flow for recurring payments should be previously confirmed with your Account Manager - it's not available in certain regions.
{
"amount": 100,
"currency": "USD",
"customer_account_id": "1234567",
"customer_email": "kurt.Cruickshank.toster@gmail.com",
"customer_phone": "+380954543322",
"geo_country": "USA",
"ip_address": "8.8.8.8",
"language": "en",
"order_description": "test",
"order_id": "1561453107326recurringCascade",
"order_items": "order_items",
"platform": "WEB",
"fraudulent": true,
"traffic_source": "onOff",
"recurring_token": "57f3be9f46dee46db195bad976f13cf5a9d682953b9c854ec20b7",
"type": "auth",
"order_metadata": {
"coupon_code": "NY2018",
"partner_id": "123989",
"udf_client_type": "vipClient",
"udf_delivery_group": "fastDelivery"
}
}
{
"transactions": {
"2e5432e30d1f0eb8fbde8f34604310f05d11e2337e9b0": {
"id": "2e5432e30d1f0eb8fbde8f34604310f05d11e2337e9b0",
"operation": "recurring-auth",
"status": "created",
"amount": 100,
"currency": "USD",
"created_at": "2019-06-25 08:58:27",
"updated_at": "2019-06-25 08:58:27",
"card": {
"bank": "SETEFI S P A",
"bin": 535572,
"brand": "MASTERCARD",
"country": "ITA",
"number": "535572XXXXXX1833",
"card_exp_month": "02",
"card_exp_year": 2022,
"card_type": "DEBIT",
"card_holder": "abigail wood"
},
"card_token": {
"token": "57f3be9f46dee46db195bad976f13cf5a9d682953b9c854ec20b7"
}
}
},
"order": {
"order_id": "1561453107326recurringCascade",
"order_description":"Purchase for order group",
"customer_email":"jondou@gmail.com",
"traffic_source": "facebook",
"status": "processing",
"amount": 100,
"refunded_amount": 0,
"currency": "USD",
"marketing_amount": 100,
"marketing_currency": "USD",
"fraudulent": true
},
"transaction": {
"id": "2e5432e30d1f0eb8fbde8f34604310f05d11e2337e9b0",
"operation": "recurring-auth",
"status": "created",
"amount": 100,
"currency": "USD",
"created_at": "2019-06-25 08:58:27",
"updated_at": "2019-06-25 08:58:27",
"card": {
"bank": "SETEFI S P A",
"bin": 535572,
"brand": "MASTERCARD",
"country": "ITA",
"number": "535572XXXXXX1833",
"card_exp_month": "02",
"card_exp_year": 2022,
"card_type": "DEBIT",
"card_holder": "abigail wood"
},
"card_token": {
"token": "57f3be9f46dee46db195bad976f13cf5a9d682953b9c854ec20b7"
}
}
}
{
"transactions": {
"2e5432e30d1f0eb8fbde8f34604310f05d11e2337e9b0": {
"id": "2e5432e30d1f0eb8fbde8f34604310f05d11e2337e9b0",
"operation": "recurring",
"status": "success",
"descriptor": "FAKE_PSP",
"amount": 100,
"currency": "USD",
"created_at": "2019-06-25 08:58:27",
"updated_at": "2019-06-25 08:58:28",
"card": {
"bank": "SETEFI S P A",
"bin": "535572",
"brand": "MASTERCARD",
"country": "ITA",
"number": "535572XXXXXX1833",
"card_exp_month": "02",
"card_exp_year": 2022,
"card_type": "DEBIT",
"card_holder": "abigail wood"
},
"card_token": {
"token": "57f3be9f46dee46db195bad976f13cf5a9d682953b9c854ec20b7"
}
}
},
"order": {
"order_id": "1561453107326recurringCascade",
"order_description":"Purchase for order group",
"customer_email":"jondou@gmail.com",
"traffic_source": "facebook",
"status": "approved",
"amount": 100,
"refunded_amount": 0,
"currency": "USD",
"marketing_amount": 100,
"marketing_currency": "USD",
"processing_amount": 100,
"processing_currency": "USD",
"descriptor": "FAKE_PSP",
"fraudulent": true,
},
"payment_adviser": {
"advise": "recurring"
}
}
Recurring Response Body Parameters | Fail
Parameter | Type | Description | Example |
---|---|---|---|
error | object | Object with the information about the error | |
error:"recommended_message_for_user" | object | An object with a list of error messages displayed to the user | |
error:"recommended_message_for_user":<error_message> | string | Error displayed to the user during the decline. (Decline error) | "Order not found" |
error:code | string | Error code | 2.01 |
error:messages | object | Object with a list of error messages | |
error:messages:<attribute_name> | string | The name of the attribute in which the error was found | |
error:messages:<error_message> | array | Array of error messages related to this attribute | This value should not be blank. |
error:type | string | Type of en error | soft |
{
"error": {
"code": "4.09",
"type": "soft",
"messages": [
"Solid antifraud engine"
],
"recommended_message_for_user": "Solid antifraud engine"
}
}
Solid can enable 3DS payments for recurring (tokenized) payments. In order to set up this option, you need to contact your account manager at Solid.
You should be ready to show the 3DS bank page (ACS URL) for a user after a recurring request, `verify_url` can be received from the following requests: Status or Notification.
Request for recurring 3DS is the same as for the recurring method.
By integrating Google Pay into your website or Android application, your customers can securely make one-touch payments using any credit or debit card connected to their Google account.
To start processing Google Pay™ payments, you must first register with Google. Once the integration is complete, you can add the 'Google Pay™' button to your checkout page and start requesting your customers' encrypted payment information.
For information on integrating with Google Pay, first, refer to the Google Pay API guide, Google Pay Web integration checklist, Google Pay Web Brand Guidelines, Google Pay Android integration checklist and Google Pay Android brand guidelines.
When you submit a payment data request to the Google API, be sure to include the following parameters:
'gateway': 'solid'
'gatewayMerchantId': '<replace with key from SOLID>'
{
apiVersion: 2,
apiVersionMinor: 0,
allowedPaymentMethods: [{
type: 'CARD',
parameters: {
allowedAuthMethods: ['PAN_ONLY', 'CRYPTOGRAM_3DS'],
allowedCardNetworks: ['AMEX', 'DISCOVER', 'MASTERCARD', 'VISA']
},
tokenizationSpecification: {
type: 'PAYMENT_GATEWAY',
parameters: {
'gateway': 'solid',
'gatewayMerchantId': ''
}
}
}]
}
POST https://pay.solidgate.com/api/v1/google-pay
Google Pay Request Body Parameters
Parameter | Mandatory | Type | Description | Example |
---|---|---|---|---|
order_id | yes | string(100) | Order ID specified in the merchant system. | 1526915864 |
amount | yes | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 2000 |
currency | yes | string(3) | Order currency. 3 letter currency code under ISO-4217. | USD |
order_description | yes | string(100) | Order description in UTF-8 code. | Example description
|
customer_email | yes | string(100) | Customer email. | example.test@test.com
|
ip_address | yes | string(50) | Customer IP (only public ones). | 8.8.8.8 |
platform | yes | string(6) | Customer platform at the moment of payment. Available values: WEB- desktop, MOB - mobile version, APP - application. | WEB |
geo_country | no | string(3) | Customer country subject to ISO 3166-1 alpha-3. | GBR |
order_date | no | string(50) | Date of order creation in format YYYY-MM-DD-HH-MM-SS. | 2015-12-21 11:21:30 |
order_items | no | string(255) | Order description in UTF-8 code. | item 1, item 2 |
customer_account_id | Yes, for the subscription workflow | string(100) | Customer ID in the merchant's system. | 4dad42f808 |
customer_first_name | no | string(100) | Customer first name. | John |
customer_last_name | no | string(100) | Customer last name. | Snow |
customer_phone | no | string(50) | Customer phone number. | 380111111111 |
customer_date_of_birth | no | string(50) | Birthdate in YYYY-MM-DD format. | 2000-11-21 |
geo_city | no | string(100) | Customer City. | New Castle |
language | no | string(2) | Customer language settings. Available values: RU - Russian, EN - English. | en |
fraudulent | no | boolean | Customer is detected by the merchant system to be suspicious one. The payment will be effected via 3DS. | TRUE |
verified | no | boolean | The user was verified on the shop side. | TRUE |
retry_attempt | no | integer | A number of retry payment. | 1 |
traffic_source | no | string(255) | Source of traffic. | |
transaction_source | no | string(255) | Source of transactions on site. | main_menu |
user_agent | no | string | User-agent of the customer. | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
|
order_number | no | integer | A number of payments by the user. | 1 |
address | no | string(100) | User billing address | New York, 10005, 15 William St |
state | no | string(10) | User billing state | WA |
zip_code | no | string(10) | Parameter for identifying location (user billing zip code). Mandatory parameter for USA location. | 10005 |
city | no | string(100) | User billing city | New York |
signedMessage | yes | string | A serialized JSON string containing the encryptedMessage, ephemeralPublicKey, and tag. To simplify the signature verification process, this value is serialized.
| |
protocolVersion | yes | string | Identifies which encryption/signing scheme this message has been created. In this way, the protocol can evolve over time if needed. If it is not set, assume ECv0.
| |
signature | yes | string | Verifies the message came from Google. The signature is created using ECDSA.
| |
device | No | string | Device of the customer. | iPhone 8 iOS 12.0
|
website | No | string(255) | Website from which transaction took place. | google.com |
header_accept | Yes - 3D 2.0 | string(255) | Header Accept. | text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng |
header_accept_language | Yes - 3D 2.0 | string(255) | Header Accept Language. | ru-RU,ru;q=0.9,en-US;q=0.8 |
browser_color_depth | Yes - 3D 2.0 | integer | Color depth of browser window. | 32 |
browser_screen_height | Yes - 3D 2.0 | integer | Height of browser window. | 1920 |
browser_screen_width | Yes - 3D 2.0 | integer | Width of browser window. | 1280 |
browser_java_enabled | Yes - 3D 2.0 | boolean | Is java enabled on User browser. | FALSE |
browser_javascript_enabled | Yes - 3D 2.0 | boolean | Is javascript enabled on User browser. | FALSE |
time_zone_offset | Yes - 3D 2.0 | integer | The time difference, in minutes, between UTC time and the local time of the cardholder's browser. | 1 |
success_url | No | string(255) | URL of merchant page, which a customer will be redirected in case of successful payment | http://merchant.example/success |
fail_url | No | string(255) | URL of merchant page, which a customer will be redirected in case of failed payment | http://merchant.example/fail |
force3ds | No | boolean | Routing payments flag for 3DS flow (enabled by Solid account manager) | FALSE |
payment_type_data | No | object | Object with additional customer data to process payments in specific locations. The full list of additional fields is provided in Information section. | |
order_metadata | No | object | Metadata is useful for storing additional, structured information about an object. The object consists of a set of key-value pairs (e.g. “coupon_code”: “NY2018", “partner_id”: “123989"). The callback notification returns an order_metadata from the order in each state. The validation of up to 10 fields with an upper limit of 255 characters. |
{
"order_id": "1530101603341",
"amount": 2000,
"currency": "USD",
"order_description": "Example description",
"customer_email": "googlepaytoster@gmail.com",
"ip_address": "8.8.8.8",
"platform": "WEB",
"geo_country": "CAN",
"order_date": "2015-12-21 11:21:30",
"order_items": "item 1, item 2",
"customer_account_id": "4dad42f808",
"customer_first_name": "John",
"customer_last_name": "Snow",
"customer_phone": "380111111111",
"customer_date_of_birth": "2000-11-21",
"geo_city": "New Castle",
"language": "en",
"fraudulent": true,
"force3ds": false,
"verified": true,
"retry_attempt": 1,
"traffic_source": "googlePay",
"transaction_source": "main_menu",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36",
"order_number": 1,
"signedMessage": "{S4pvoy+1bCgGkKC4j/3/n5T0CSITOPFkFdV/m0KWkytlc1SLlYs1+OVToxjSNTfdc/pyZ8/7mjqDPrGzi86uJenRYrgadPNw3hwM3rkxKDcHAZswKC2WEvRnU4BnF9LSnSxYslgq+pSzp+BsUBFKGPjMo1ZsdCQLqlavj+VbxQKg4cgknACwWQrnll+gk+dir3BN/jJB/uJwPKglCG79gAge2jeViJUob1NAyFfInEDbVEYiQovCZO3yuwDrNVaL1uAufpB/eogIQQz6LYjW07v3Xni1As9GjGWVZvkmjLUyY9aX02ecEqhCTKFTd4crMsX4Nm8vjgejzUGKvLWcU7vVS3xtVBNp87k3D5NJ6V3tuPJdIHeH0kEq43IQTgTQIku+RnBkU/8KLBWPNWW7FRNm0AGVL8ZcE1ym3f2avl6CkQEWv311NEkbC/NEVFBh/ZFqzezqLyyzaUgepGFD3RbclihwLGvx0WXwe7RPTVh3raCJpDJOofjHg2mMNNL8xSQOWtmZWrxyClp10atxNdrPdcB3YVmbEpWR1d48eOW+AgEDc3bmUg5}",
"protocolVersion": "ECv1",
"signature": "MEQCIHZ8oOEXz0DzZTO3uU+zdMfmihpb3OMr3pQQ0HHgVLyiAiBmWqUzv3FuTGQCLyZA20awLfydQiR0IcOUBJlj/ZlaHQ==",
"order_metadata": {
"coupon_code": "NY2018",
"partner_id": "123989",
"udf_client_type": "vipClient",
"udf_delivery_group": "fastDelivery"
}
}
Google 3DS going through a few steps :
1) Google request
2) Redirect to URL 3DS verification
Please, note, `verify_url` can be received from the following requests: Status or Notification.
Google Pay Response Body Parameters
Parameter | Type | Description | Example |
---|---|---|---|
transaction | object | An object with information of transactions. | |
transaction:id | object | Transaction identification within the order. It contains an object with detailed information about the specified transaction. Order can have several transactions. | 15301021459245b33818384a4e |
transaction:operation | string | Transaction type. | google-pay |
transaction:status | string | Transaction status within the order. Transaction statuses are described in respective directory. | created |
transaction:amount | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 100 |
transaction:currency | string | Transaction currency | USD |
transactions:<transaction_id>:card:card token:token | string | Card token | 551c1d70374af08b92cf6e91...087bc05 |
order | object | Object with order information. | |
order:order_id | string | Order ID specified in the merchant system. | 1530102145924 |
order:order_description | string | Order description in UTF-8 code. | Premium package |
order:traffic_source | string | Source of traffic | |
order:customer_email | string | Customer email | jondou@gmail.com |
order:amount | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 100 |
order:currency | string | Order currency (3 letter code under ISO 4217). | USD |
order:refunded amount | integer | Amount of refund | 0 |
order:fraudulent | boolean | The customer was detected on the merchant end to be suspicious one. | true |
order:marketing_amount | integer | Order amount converted in USD (or any other currency agreed) under open FX sources at the moment of transaction. This can be applied only for marketing forecasting. | 100 |
order:marketing_currency | string | The currency of order amount for marketing analytics. | USD |
order:status | string | Status of payment processed. Types of order statuses are described in the respective directory. | processing |
{
"order": {
"order_id": "155446XXXXXX5742",
"order_description": "Purchase for order group",
"customer_email": "jondou@gmail.com",
"traffic_source": "facebook",
"status": "processing",
"amount": 100,
"refunded_amount": 0,
"currency": "USD",
"marketing_amount": 100,
"marketing_currency": "USD",
"fraudulent": true
},
"transaction": {
"id": "155446XXXXXX7425ca743d4db1a1",
"operation": "google-pay",
"status": "created",
"amount": 100,
"currency": "USD"
}
}
Start seamlessly accepting credit card payments and eliminate the need for your customers to type card and shipping details manually. Apple Pay payments are authorized through Touch ID and Face ID.
The merchant must obtain its own Apple Pay certificate. The merchant must pay for and have an active Apple account, and an Apple merchant ID must be created. Below are the required actions to be completed in order to obtain the Apple pay certificates from Apple.
Login to https://developer.apple.com/
The identity certificate is needed when merchants want to process Apple Pay payments that originate from within a web page since Apple needs to verify the ownership of the domain from which the payment is initialized. One identity certificate may be used to identify multiple domains.
To use the “Apple Pay on the Web” each of the domains from which the payment request will be made should be verified. The verification is done by uploading a file on a specified location on the merchant’s website.
To process Apple Pay payments, you must configure your Apple Developer account, complete the certification process, and enhance your iOS app or website to have the capability to access Apple Pay payments.
For Apple Pay configuration resources, please refer to the following:
Devices that work with apple pay
Apple Pay transactions using Mastercard and American Express enjoy a liability shift to the card issuer — similar to 3-D secure transactions. Please be aware that although this is a known practice, the issuers are not bound by these terms and can change the liability agreement at any time.
POST https://pay.solidgate.com/api/v1/apple-pay
Apple Pay Request Body Parameters
Parameter | Mandatory | Type | Description | Example |
---|---|---|---|---|
order_id | yes | string(100) | Order ID specified in the merchant system. | 1526915864 |
amount | yes | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 2000 |
currency | yes | string(3) | Order currency. 3 letter currency code under ISO-4217. | USD |
order_description | yes | string(100) | Order description in UTF-8 code. | Example description
|
customer_email | yes | string(100) | Customer email. | example.test@test.com
|
ip_address | yes | string(50) | Customer IP (only public ones). | 8.8.8.8 |
platform | yes | string(6) | Customer platform at the moment of payment. Available values: WEB- desktop, MOB - mobile version, APP - application. | WEB |
geo_country | no | string(3) | Customer country subject to ISO 3166-1 alpha-3. | GBR |
order_date | no | string(50) | Date of order creation in format YYYY-MM-DD-HH-MM-SS. | 2015-12-21 11:21:30 |
order_items | no | string(255) | Order description in UTF-8 code. | item 1, item 2 |
customer_account_id | no | string(100) | Customer ID in the merchant's system. | 4dad42f808 |
customer_first_name | no | string(100) | Customer first name. | John |
customer_last_name | no | string(100) | Customer last name. | Snow |
customer_phone | no | string(50) | Customer phone number. | 380111111111 |
customer_date_of_birth | no | string(50) | Birthdate in YYYY-MM-DD format. | 2000-11-21 |
geo_city | no | string(100) | Customer City. | New Castle |
language | no | string(2) | Customer language settings. Available values: RU - Russian, EN - English. | en |
fraudulent | no | boolean | A customer is detected by the merchant system to be suspicious one. The payment will be effected via 3DS. | TRUE |
verified | no | boolean | The user was verified on the shop side. | TRUE |
retry_attempt | no | integer | A number of retry payment. | 1 |
traffic_source | no | string(255) | Source of traffic. | |
transaction_source | no | string(255) | Source of transactions on site. | main_menu |
user_agent | no | string | User-agent of the customer. | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 |
order_number | no | integer | A number of payments by the user. | 1 |
version | yes | string | Version information about the payment token. | EC_v1 |
data | yes | string | Encrypted payment data. | qIEHeSmLKw3C5...ZIuf2oPeLhQ1DCaQj
|
signature | yes | string | Signature of the payment and header data. The signature includes the signing certificate, its intermediate CA certificate, and information about the signing algorithm. | 1UdDwEB/wQEAwIHgDAPBgkqh...92ICIAR2
|
network | no | string | Card brand | VISA, MASTERCARD
|
header | yes | object | An object with header information.
| |
header : transactionId | yes | string | Transaction identifier, generated on the device. | 7126df4ff8ac61dc60278b5cd549cc98d16b8f41
|
header: publicKeyHash | yes | string | Hash of the X.509 encoded public key bytes of the merchant’s certificate. | mQaQhyhrXX3ZDSQv...ByX0iii0MVHthSQiXQ=
|
header: ephemeralPublicKey | yes/no | string | Ephemeral public key bytes. (Mandatory if the version is EC_v1 only) | wXtTDj1Cc....5sOXCi7FoVgay
|
header: applicationData | no | string | Hash of the applicationData property of the original PKPaymentRequest object.
| |
header: wrappedKey | yes/no | string | The symmetric key wrapped using your RSA public key. ( Mandatory if the version is RSA_v1 only)
| |
device | No | string | Device of customer | iPhone 8 iOS 12.0
|
website | No | string(255) | Website from which transaction took place. | google.com |
header_accept | Yes - 3D 2.0 | string(255) | Header Accept. | text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng |
header_accept_language | Yes - 3D 2.0 | string(255) | Header Accept Language. | ru-RU,ru;q=0.9,en-US;q=0.8 |
browser_color_depth | Yes - 3D 2.0 | integer | Color depth of browser window. | 32 |
browser_screen_height | Yes - 3D 2.0 | integer | Height of browser window. | 1920 |
browser_screen_width | Yes - 3D 2.0 | integer | Width of browser window. | 1280 |
browser_java_enabled | Yes - 3D 2.0 | boolean | Is java enabled on User browser. | FALSE |
browser_javascript_enabled | Yes - 3D 2.0 | boolean | Is javascript enabled on User browser. | FALSE |
time_zone_offset | Yes - 3D 2.0 | integer | The time difference, in minutes, between UTC time and the local time of the cardholder's browser. | 1 |
success_url | No | string(255) | URL of merchant page, which a customer will be redirected in case of successful payment | http://merchant.example/success |
fail_url | No | string(255) | URL of merchant page, which a customer will be redirected in case of failed payment | http://merchant.example/fail |
payment_type_data | No | object | Object with additional customer data to process payments in specific locations. The full list of additional fields is provided in Information section. | |
order_metadata | No | object | Metadata is useful for storing additional, structured information about an object. The object consists of a set of key-value pairs (e.g. “coupon_code”: “NY2018", “partner_id”: “123989"). The callback notification returns an order_metadata from the order in each state. The validation of up to 10 fields with an upper limit of 255 characters. |
{
"amount": 2000,
"version": "EC_v1",
"data": "ZJmKTt/Etfpu4zdOc02L6kTBAkUVUqKTsygYX3+sJVYJ1z0YW4i+c14gqSTcqIEHeSmLKw3C5...ZIuf2oPeLhQ1DCaQjw2j0F+56NoCxRjhwQ45HK7lGVy3jOS6ntMhR8=",
"signature": "MIAGCSqGSIb3DQEHAqCAMIACAQExDZiB1tL2FwcGxlYWljYTMuY3JsMA4GA1UdDwEB/wQEAwIHgDAPBgkqh...92ICIAR2zklUTV63nd8KYl/ZAleY/9HRrrq2m9G30eYy6pj1AAAAAAAA",
"header": {
"ephemeralPublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEwXtTDj1Cc....5sOXCi7FoVgayKwF+dMNAc6rF2m57yZg6HS841je82NRrGN7exAAuVmJg==",
"publicKeyHash": "mQaQhyhrXX3ZDSQv...ByX0iii0MVHthSQiXQ=",
"transactionId": "727126df4ff8ac61dc60278b5cd549cc98d16b8f41b0466e5e330178d14fdf38"
},
"currency": "USD",
"order_id": 1526915864,
"network": "MASTERCARD",
"platform": "WEB",
"geo_country": "GBR",
"customer_email": "example.test@test.com",
"ip_address": "8.8.8.8",
"order_description": "Example description",
"customer_first_name": "First Name",
"customer_last_name": "Last Name",
"customer_phone": "2124141241",
"language": "en",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36",
"order_metadata": {
"coupon_code": "NY2018",
"partner_id": "123989",
"udf_client_type": "vipClient",
"udf_delivery_group": "fastDelivery"
}
}
Apple Pay Response Body Parameters
Parameter | Type | Description | Example |
---|---|---|---|
transactions | object | An object with information of transactions.
| |
transactions:<transaction_id> | object | Transaction identification within the order. It contains an object with detailed information about the specified transaction. The order can have several transactions. | 15269093845b02c9c89391d |
transactions:<transaction_id>:id | string | Transactions identification within the order. | 15269093845b02c9c89391d |
transactions:<transaction_id>:operation | string | Transaction type. | apple-pay |
transactions:<transaction_id>:status | string | Transaction status within the order. Transaction statuses are described in the respective directory. | created |
transactions:<transaction_id>:amount | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 2000 |
transactions:<transaction_id>:currency | string | Transaction currency | USD |
order | object | An object with order information.
| |
order:order_id | string | Order ID specified in the merchant system. | 123443334 |
order:order_description | string | Order description in UTF-8 code. | Premium package |
order:traffic_source | string | Source of traffic | |
order:customer_email | string | Customer email | jondou@gmail.com |
order:amount | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 2575 |
order:refunded_amount | integer | Amount of refund | 0 |
order:currency | string | Order currency (3 letter code under ISO 4217). | USD |
order:fraudulent | boolean | The customer was detected on the merchant side to be suspicious one. | TRUE |
order:marketing_amount | integer | Order amount converted in USD (or any other currency agreed) under open FX sources at the moment of transaction. This can be applied only for marketing forecasting. | 2000 |
order:marketing_currency | string | The currency of the order amount for marketing analytics. | USD |
order:status | string | Status of payment processed. Types of order statuses are described in the respective directory. | created |
transaction | object | An object with information of the transaction. | |
transaction:id | string | Transaction identification within the order. The order can have several transactions. | 15269093845b02c9c89391d |
transaction:operation | string | Transaction type. Available values - pay. | apple-pay |
transaction:status | string | Transaction status within the order. | created |
transaction:amount | integer | Transaction amount. | 20 |
transaction:currency | string | Transaction currency. | USD |
payment_adviser | object | ||
payment_adviser:advise | string | Recommendation for the next payment | pay / resign / recurring |
{
"transactions": {
"15269093845b02c9c89391d": {
"id": "15269093845b02c9c89391d",
"operation": "apple-pay",
"status": "created",
"amount": 20,
"currency": "USD"
}
},
"order": {
"order_id": 1526909384,
"order_description": "Purchase for order group",
"customer_email": "jondou@gmail.com",
"traffic_source": "facebook",
"status": "processing",
"amount": 20,
"refunded_amount": 0,
"currency": "USD",
"marketing_amount": 20,
"marketing_currency": "USD",
"fraudulent": false
},
"transaction": {
"id": "15269093845b02c9c89391d",
"operation": "apple-pay",
"status": "created",
"amount": 20,
"currency": "USD"
},
"payment_adviser": {
"advise": "pay"
}
}
Resign 1-click allows you to perform transactions via token (1-click payments) but also requesting a CVV from the user to additionally verify the transaction.
Please note that this request is available only for PCI-DSS certified merchants.
POST https://pay.solidgate.com/api/v1/resign
Resign 3DS going through a few steps :
1) Resign request
2) Redirect to URL of 3-D Secure verification
Please, note, `verify_url` can be received from the following requests: Status or Notification.
Resign Request Body Parameters
Parameter | Mandatory | Type | Description | Example |
---|---|---|---|---|
order_id | Yes | string(100) | Order ID specified in the merchant system | 123443334 |
amount | Yes | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 1020 |
currency | Yes | string(3) | Order currency. 3 letter currency code under ISO-4217 | USD |
recurring_token | Yes | string(255) | Card token | 7ats8da7sd8-a66dfa7-a9s9das89t |
card_cvv | Yes | string(4) | CVV2/CVC2 of the card, 3 or 4 digits code | 123 |
order_description | Yes | string(100) | Order description in UTF-8 code | Premium package |
customer_email | Yes | string(100) | Customer email | jondou@gmail.com |
ip_address | Yes | string(50) | Customer IP (only public ones) | 8.8.8.8 |
platform | Yes | string(6) | Customer platform at the moment of payment. Available values: WEB- desktop, MOB - mobile version, APP - application. | WEB |
fail_url | No | string(255) | URL of merchant page, which a customer will be redirected in case of unsuccessful payment | http://merchant.example/fail |
success_url | No | string(255) | URL of merchant page, which a customer will be redirected in case of successful payment | http://merchant.example/success |
geo_country | No | string(3) | Customer country subject to ISO 3166-1 alpha-3 | GBR |
order_date | No | string(50) | Date of order creation in format YYYY-MM-DD-HH-MM-SS | 2015-12-21 11:21:30 |
order_items | No | string(255) | Order description in UTF-8 code | item 1, item 2 |
customer_account_id | No | string(100) | Customer ID in the merchant's system. | 4dad42f808 |
customer_first_name | No | string(100) | Customer's first name | John |
customer_last_name | No | string(100) | Customer last name | Snow |
customer_phone | No | string(50) | Customer phone number | 380111111111 |
customer_date_of_birth | No | string(50) | Birthdate in YYYY-MM-DD format | 2000-11-21 |
geo_city | No | string(100) | Customer City | New Castle |
language | No | string(2) | Customer language settings. Available values: RU - Russian, EN - English | en |
fraudulent | No | boolean | A customer is detected by the merchant system to be suspicious one. The payment will be effected via 3DS. | TRUE |
verified | No | boolean | A user was verified on the shop side. | TRUE |
retry_attempt | No | integer | Number of retry payment | 1 |
traffic_source | No | string(255) | Source of traffic. | |
transaction_source | No | string(255) | Source of transactions on the website. | main_menu |
user_agent | No | string | User-agent of customer | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 |
device | No | string | Device of customer | iPhone 8 iOS 12.0 |
website | No | string | The website from which transaction took place. | google.com |
type | No | string | The parameter for transaction-authorization | auth |
order_number | No | integer | Number of payments by user | 1 |
force3ds | No | boolean | Routing payments flag for 3DS flow (enabled by Solid account manager) | FALSE |
header_accept | Yes - 3D 2.0 | string(255) | Header Accept. | text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng |
header_accept_language | Yes - 3D 2.0 | string(255) | Header Accept Language. | ru-RU,ru;q=0.9,en-US;q=0.8 |
browser_color_depth | Yes - 3D 2.0 | integer | The colour depth of the browser window. | 32 |
browser_screen_height | Yes - 3D 2.0 | integer | Height of browser window. | 1920 |
browser_screen_width | Yes - 3D 2.0 | integer | Width of the browser window. | 1280 |
browser_java_enabled | Yes - 3D 2.0 | boolean | Is java enabled on User's browser. | FALSE |
browser_javascript_enabled | Yes - 3D 2.0 | boolean | Is javascript enabled on User's browser. | FALSE |
time_zone_offset | Yes - 3D 2.0 | integer | The time difference, in minutes, between UTC time and the local time of the cardholder's browser. | -1 |
settle_interval | No | integer | Time (in hours) when auto-settle should be done. Value of null means that the client must request settle on its own. Minimum of 0 means that executed in the near future, and maximum value is 168 hours. | 1 |
payment_type_data | No | object | Object with additional customer data to process payments in specific locations. The full list of additional fields is provided in Information section. | |
order_metadata | No | object | Metadata is useful for storing additional, structured information about an object. The object consists of a set of key-value pairs (e.g. “coupon_code”: “NY2018", “partner_id”: “123989"). The callback notification returns an order_metadata from the order in each state. The validation of up to 10 fields with an upper limit of 255 characters. |
Please, note, that `success_url` and `fail_url` is a mandatory field that is needed to redirect a user after completed 3-D Secure verification.
{
"amount": 2575,
"recurring_token": "7ats8da7sd8-a66dfa7-a9s9das89t",
"card_cvv": "123",
"currency": "USD",
"customer_account_id": "user_id",
"customer_date_of_birth": "2000-11-21",
"customer_email": "example.user@example-email.com",
"customer_first_name": "John",
"customer_last_name": "Snow",
"customer_phone": "380000000000",
"fraudulent": true,
"geo_city": "New Castle",
"geo_country": "GBR",
"ip_address": "8.8.8.8",
"language": "en",
"order_date": "2015-12-21 11:21:30",
"order_description": "Premium package",
"order_id": "777",
"order_items": "item 1, item 2",
"platform": "WEB",
"success_url": "http://merchant.example/success",
"fail_url": "http://merchant.example/fail",
"order_number": "1",
"header_accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng",
"header_accept_language": "ru-RU,ru;q=0.9,en-US;q=0.8",
"browser_color_depth": 32,
"browser_screen_height": 1920,
"browser_screen_width": 1280,
"browser_java_enabled": true,
"browser_javascript_enabled": true,
"time_zone_offset": 60,
"order_metadata": {
"coupon_code": "NY2018",
"partner_id": "123989",
"udf_client_type": "vipClient",
"udf_delivery_group": "fastDelivery"
}
}
Resign Response Body Parameters | Success
Parameter | Type | Description | Example |
---|---|---|---|
order | object | An object with order information | |
order:order_id | string | Order ID specified in the merchant system | 777 |
order:order_description | string | Order description in UTF-8 code. | Premium package |
order:traffic_source | string | Source of traffic | |
order:customer_email | string | Customer email | jondou@gmail.com |
order: amount | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 2575 |
order:currency | string | Order currency (3 letter code under ISO 4217) | USD |
order:fraudulent | boolean | A customer was detected on the merchant end to be a suspicious one | TRUE |
order:marketing_amount | integer | Order amount converted in USD (or any other currency agreed) under open FX sources at the moment of transaction. This can be applied only for marketing forecasting. | 2575 |
order:marketing_currency | string | The currency of the order amount for marketing analytics. | USD |
order:status | string | Status of payment processed. Types of order statuses are described in the respective directory. | created |
order:refunded_amount | integer | An amount which was refunded | 0 |
order:descriptor | string | The descriptor for the transaction | payhere.com |
transactions | object | An object with information of transactions. | |
transactions:<transaction_id> | object | Transaction identification within order. It contains an object with detailed information of specified transaction. Order can have several transactions. | 00016857481e16b07fc |
transactions:<transaction_id>:id | string | Transactions identification within order. | 00016857481e16b07fc |
transactions:<transaction_id>:operation | string | Transaction type. | pay |
transactions:<transaction_id>:status | string | Transaction status within order. Transaction statuses are described in respective directory. | created |
transactions:<transaction_id>:descriptor | string | The descriptor for the transaction | payhere.com |
transactions:<transaction_id>:amount | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 2575 |
transactions:<transaction_id>:currency | string | Transaction currency. | USD |
transactions:<transaction_id>:created_at | string | Transaction created DateTime | 2019-05-17 9:06:21 |
transactions:<transaction_id>:updated_at | string | Transaction updated DateTime | 2019-05-17 9:06:21 |
transactions:<transaction_id>:card | object | An object with information about the card. Present in payment transactions. | |
transactions:<transaction_id>:card:bin | string | Card BIN | 444455 |
transactions:<transaction_id>:card:brand | string | Card Brand | VISA |
transactions:<transaction_id>:card:number | string | Masked card number | 444455XXXXXX6666 |
transactions:<transaction_id>:card:card_holder | string | Cardholder name | Test User |
transactions:<transaction_id>:card:bank | string | Bank emitent | STATE BANK |
transactions:<transaction_id>:card:country | string | Country of bank | USA |
transactions:<transaction_id>:card:card_exp_month | string | A month of card expiration (2-digit format). | 3 |
transactions:<transaction_id>:card:card_exp_year | integer | A year of card expiration (4-digit format). | 2025 |
transactions:<transaction_id>:card:card_type | string | A type of the card. | DEBIT |
transactions:<transaction_id>:card_token | object | ||
transactions:<transaction_id>:card_token:token | string | Card token to be used for recurring payments. It will be returned in case of successful payment. | 22f1cdc766a318...e8fa3a68f |
transaction | object | An object with information of the transaction. | |
transaction:id | string | Transaction identification within the order. The order can have several transactions. | 00016857481e16b07fc |
transaction:operation | string | Transaction type. Available values - pay. | pay |
transaction:status | string | Transaction status within the order. | created |
transaction:amount | integer | Transaction mount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 2575 |
transaction:currency | string | Transaction currency. | USD |
transaction:created_at | string | Transaction created DateTime | 2019-05-17 9:06:21 |
transaction:updated_at | string | Transaction updated DateTime | 2019-05-17 9:06:21 |
transaction:card | object | An object with information about the card. Present in payment transactions. | |
transaction:card:bank | string | A bank that issued the card. | STATE BANK |
transaction:card:bin | string | Card BIN. | 444455 |
transaction:card:brand | string | Card Brand. | VISA |
transaction:card:country | string | Country of the bank. | USA |
transaction:card:number | string | Masked card number. | 444455XXXXXX6666 |
transaction:card:card_holder | string | Cardholder Name | Test User |
transaction:card:card_exp_month | string | The month of card expiration (2-digit format). | 3 |
transaction:card:card_exp_year | integer | Year of card expiration (4-digit format). | 2025 |
transaction:card:card_type | string | A type of the card. | DEBIT |
transaction:card_token | object | ||
transaction:card_token: token | string | Card token to be used for recurring payments. It will be returned in case of successful payment. | 22f1cdcb8a318...e8fae0a68f |
payment_adviser | object | ||
payment_adviser:advise | string | Recommendation for next payment | pay / resign / recurring |
{
"transactions": {
"00016857481e16b07fc": {
"id": "00016857481e16b07fc",
"operation": "resign",
"status": "created",
"amount": 2575,
"currency": "USD",
"created_at": "2019-05-17 09:06:21",
"updated_at": "2019-05-17 09:06:32",
"card": {
"bank": "STATE BANK",
"bin": "444455",
"brand": "VISA",
"country": "USA",
"number": "444455XXXXXX6666",
"card_holder": "cardholder name",
"card_exp_month": "03",
"card_exp_year": 2025,
"card_type": "DEBIT"
},
"card_token": {
"token": "22f1cdcb85fbd81ac6766a318d03432f862a310a104c4a39fcc9e881a8d07cdc1afa0d3801628c5cc938338e8fae0963a68f"
}
}
},
"order": {
"order_id": "777",
"order_description": "Purchase for order group",
"customer_email": "jondou@gmail.com",
"traffic_source": "facebook",
"amount": 2575,
"currency": "USD",
"fraudulent": true,
"marketing_amount": 2575,
"marketing_currency": "USD",
"refunded_amount": 0,
"status": "created"
},
"transaction": {
"id": "00016857481e16b07fc",
"operation": "resign",
"status": "created",
"amount": 2575,
"currency": "USD",
"created_at": "2019-05-17 09:06:21",
"updated_at": "2019-05-17 09:06:32",
"card": {
"bank": "STATE BANK",
"bin": "444455",
"brand": "VISA",
"country": "USA",
"number": "444455XXXXXX6666",
"card_holder": "cardholder name",
"card_exp_month": "03",
"card_exp_year": 2025,
"card_type": "DEBIT"
},
"card_token": {
"token": "22f1cdcb85fbd81ac6766a318d03432f862a310a104c4a39fcc9e881a8d07cdc1afa0d3801628c5cc938338e8fae0963a68f"
}
},
"payment_adviser": {
"advise": "pay"
}
}
Resign Status Response Body Parameters | 3Ds
Parameter | Type | Description | Example |
---|---|---|---|
order | object | An object with information of the transaction | |
order:order_id | string | Order ID specified in the merchant system | 777 |
order:order_description | string | Order description in UTF-8 code. | Premium package |
order:traffic_source | string | Source of traffic | |
order:customer_email | string | Customer email | jondou@gmail.com |
order:status | string | Status of processed payment. Types of order statuses are described in respective directory | approved |
order:amount | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 2575 |
order:refunded_amount | integer | The amount which was refunded | 0 |
order:currency | string | Order currency (3 letter code under ISO 4217) | USD |
order:marketing_amount | integer | Order amount converted in USD (or any other currency agreed) under open FX sources at the moment of transaction. This can be applied only for marketing forecasting | 2575 |
order:marketing_currency | string | The currency of the order amount for marketing analytics | USD |
order:processing_currency | string | The currency of the order amount for marketing analytics | USD |
order:processing_amount | integer | The amount in processing currency | 2575 |
order:descriptor | string | The descriptor for the transaction | payhere.com |
order:fraudulent | boolean | The customer is detected by the merchant system to be suspicious one | TRUE |
transactions | object | An object with information of transactions | |
transactions:<transaction_id> | string | Transaction identification within order. It contains an object with detailed information of specified transaction. Order can have several transactions | 1495123020887591dc450088f1 |
transactions:<transaction_id>:id | string | Transactions identification within order | 1495123020887591dc450088f1 |
transactions:<transaction_id>:operation | string | Transaction type | resign |
transactions:<transaction_id>:status | string | Transaction status within order. Transaction statuses are described in respective directory. | success |
transactions:<transaction_id>:descriptor | string | The descriptor for the transaction | payhere.com |
transactions:<transaction_id>:amount | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 2575 |
transactions:<transaction_id>:currency | string | USD | |
transactions:<transaction_id>:created_at | string | Transaction created DateTime | 2019-05-17 9:06:21 |
transactions:<transaction_id>:updated_at | string | Transaction updated DateTime | 2019-05-17 9:06:21 |
transactions:<transaction_id>:card | object | Object with information about card. Present in payment transactions | |
transactions:<transaction_id>:card:bank | string | Bank emitent | STATE BANK |
transactions:<transaction_id>:card:bin | string | Card BIN | 444455 |
transactions:<transaction_id>:card:brand | string | Card Brand | VISA |
transactions:<transaction_id>:card:number | string | Masked card number | 444455XXXXXX6666 |
transactions:<transaction_id>:card:card_holder | string | Cardholder name | Test User |
transactions:<transaction_id>:card:card_exp_month | string | A month of card expiration (2-digit format) | 3 |
transactions:<transaction_id>:card:card_exp_year | integer | A year of card expiration (4-digit format) | 2025 |
transactions:<transaction_id>:card:card_type | string | A type of the card | DEBIT |
transactions:<transaction_id>:card:card_token | object | ||
transactions:<transaction_id>:card:card_token:token | string | Card token to be used for recurring payments. It will be returned in case of successful payment | 4056cd8cccf96...40015a997d74 |
transactions:<transaction_id>:card_token | object | ||
transactions:<transaction_id>:card_token:token | string | The old card token which was used by previous payments | 7926cd8cccf96...400415a217d74 |
verify_url | string | Url for 3DS verification | https://acs.solidgate.com/api/v1/verify-3ds/554293692/96454d39ed80f256e9f77bb36271b2aff0c2af3ec769911dfd |
{
"transactions": {
"15027983907575992e23bec0c8": {
"id": "15027983907575992e23bec0c8",
"operation": "resign",
"status": "success",
"descriptor": "descriptor",
"amount": 2575,
"currency": "USD",
"created_at": "2019-05-17 09:06:21",
"updated_at": "2019-05-17 09:06:32",
"card": {
"bank": "STATE BANK",
"bin": "453245",
"brand": "VISA",
"country": "USA",
"number": "453245XXXXXX2692",
"card_holder": "cardholder name",
"card_exp_month": "03",
"card_exp_year": 2025,
"card_type": "DEBIT",
"card_token": {
"token": "36657ccf9d36a00b13e8f4af47e8e2c041b16458bc83cb7aaa36fd236d2d474d211636b20c51a7a713b4881ae7cc516be6"
}
},
"card_token": {
"token": "126cc63b62dbb98c314562da1fabb0056747dcfffAeec75bf50d5d7a091b556888a95fdd39b38027daee0db7bcbf7c1714cd"
}
}
},
"verify_url": "https://acs.solidgate.com/api/v1/verify-3ds/554293692/96454d39ed80f256e9f77bb36271b2aff0c2af3ec769911dfd",
"order": {
"order_id": "1502798390757",
"order_description": "Purchase for order group",
"customer_email": "jondou@gmail.com",
"traffic_source": "facebook",
"status": "approved",
"refunded_amount": 0,
"amount": 2575,
"currency": "USD",
"descriptor": "descriptor",
"fraudulent": false,
"marketing_amount": 2575,
"marketing_currency": "USD",
"processing_amount": 2575,
"processing_currency": "USD"
}
}
Check order status is a request for getting current order status.
POST https://pay.solidgate.com/api/v1/status
Check Order Status Request Body Parameters
Parameter | Mandatory | Type | Description | Example |
---|---|---|---|---|
order_id | Yes | string(255) | Order ID specified in the merchant system | 123443334 |
{
"order_id": "123443334"
}
Status Response Body Parameters | Success
Parameter | Type | Description | Example |
---|---|---|---|
order | object | An object with information of the transaction. | |
order:order_id | string | Order ID specified in the merchant system | 123443334 |
order:order_description | string | Order description in UTF-8 code. | Premium package |
order:traffic_source | string | Source of traffic | |
order:customer_email | string | Customer email | jondou@gmail.com |
order:amount | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 2575 |
order:currency | string | Order currency (3 letter code under ISO 4217) | USD |
order:descriptor | string | The descriptor for the transaction | payhere.com |
order:fraudulent | boolean | The customer is detected by the merchant system to be suspicious one. | TRUE |
order:marketing_amount | integer | Order amount converted in USD (or any other currency agreed) under open FX sources at the moment of transaction. This can be applied only for marketing forecasting. | 2575 |
order:marketing_currency | string | The currency of the order amount for marketing analytics. | USD |
order:processing_amount | integer | Processing amount of the order | 2575 |
order:processing_currency | string | Processing currency of the order | USD |
order:status | string | Status of processed payment. Types of order statuses are described in respective directory | created |
order:subscription_id | string | The ID of the user’s subscription | 83b19018-cbc4-4df0-899a-dda84fd2705e |
order:refunded_amount | integer | The amount which was refunded | 500 |
transactions | object | An object with information of transactions. | 83b11418-cbc4-4df0-899a-dda84fd2705e |
transactions:<transaction_id> | object | Transaction identification within order. It contains an object with detailed information of specified transaction. Order can have several transactions. | 1495123020887591dc450088f1 |
transactions:<transaction_id>:id | string | Transactions identification within order. | 1495123020887591dc450088f1 |
transactions:<transaction_id>:operation | string | Transaction type. Transaction types are described in respective directory. | pay |
transactions:<transaction_id>:status | string | Transaction status within order. Transaction statuses are described in respective directory. | success |
transactions:<transaction_id>:descriptor | string | The descriptor for the transaction | payhere.com |
transactions:<transaction_id>:amount | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 2575 |
transactions:<transaction_id>:currency | string | Processing currency of order | USD |
transactions:<transaction_id>:created_at | string | Transaction created DateTime | 2019-05-17 9:06:21 |
transactions:<transaction_id>:updated_at | string | Transaction updated DateTime | 2019-05-17 9:06:21 |
transactions:<transaction_id>:card | object | Object with information about card. Present in payment transactions. | |
transactions:<transaction_id>:card:bin | string | Card BIN | 444455 |
transactions:<transaction_id>:card:brand | string | Card Brand | VISA |
transactions:<transaction_id>:card:number | string | Masked card number | 444455XXXXXX6666 |
transactions:<transaction_id>:card:card_holder | string | Cardholder name | Test User |
transactions:<transaction_id>:card:bank | string | Bank emitent | BUILDING SOCIETY |
transactions:<transaction_id>:card:country | string | Country of bank | GBR |
transactions:<transaction_id>:card:card_exp_month | string | A month of card expiration (2-digit format). | 3 |
transactions:<transaction_id>:card:card_exp_year | integer | A year of card expiration (4-digit format). | 2025 |
transactions:<transaction_id>:card:card_type | string | A type of the card. | DEBIT |
transactions:<transaction_id>:card:card_token | object | ||
transactions:<transaction_id>:card:card_token:token | string | Card token to be used for recurring payments. It will be returned in case of successful payment. | 4056cd8cccf96...40015a997d74 |
billing_details | object | Billing Details | |
billing_details:address | string | Address of the billing | 8th Ave, Bowie Lane |
billing_details:zip | string | ZIP for the billing | 10001 |
billing_details:country | string | Country of the billing | USA |
billing_details:city | string | City of the billing | New York |
billing_details:state | string | State of the billing | FL |
verify_url | string | Url for 3DS verification | https://acs.solidgate.com/api/v1/verify-3ds/554293692/96454d39ed80f256e9f77bb36271b2aff0c2af3ec769911dfd |
chargebacks | object | The object with information of the chargeback. | |
chargebacks:<chargebacks_id> | string | Chargeback identification within order. It contains an object with detailed information of specified chargeback. | 2 |
chargebacks:<chargebacks_id> :id | integer | Chargeback identification within order. | 2 |
chargebacks:<chargebacks_id> :dispute_date | string | The date on which the chargeback was created by the Issuer. | 2017-07-04 |
chargebacks:<chargebacks_id> :settlement_date | string | The date on which the chargeback was financially settled. | 2017-07-04 |
chargebacks:<chargebacks_id> :amount | integer | Chargeback amount | 1000 |
chargebacks:<chargebacks_id> :currency | string | Chargeback currency | USD |
chargebacks:<chargebacks_id> :reason_code | string | Reason code of chargeback | 10.4 |
chargebacks:<chargebacks_id>: reason_group | string | Chargeback Reason Group | Fraud |
chargebacks:<chargebacks_id>: reason_description | string | Chargeback Reason Description | Fraud – Card-Absent Environment |
chargebacks:<chargebacks_id> :status | string | Status chargeback | in_progress, document_sent, reversed, accepted, reversed, resolved, resolved_reversal |
chargebacks:<chargebacks_id>: type | string | Stage of the chargeback flow | 1st_chb, 2nd_chb, arbitration |
chargebacks:<chargebacks_id> :chargeback_flow | object | Chargeback operations | |
chargebacks:<chargebacks_id> :chargeback_flow: <id> | object | Chargeback identification within chb operations. | 269323 |
chargebacks:<chargebacks_id> :chargeback_flow: <id>:id | integer | Unique id for the chargeback flow | 269323 |
chargebacks:<chargebacks_id> :chargeback_flow: <id>:amount | integer | Amount as an integer without fractions (i.e cents) | 100 |
chargebacks:<chargebacks_id> :chargeback_flow: <id>:dispute_amount | integer | The amount which would be disputed as an integer without fractions (i.e. in cents) in the chb_currency | 100 |
chargebacks:<chargebacks_id> :chargeback_flow: <id>: currency | string | 3 letter currency code under ISO 4217 | USD |
chargebacks:<chargebacks_id> :chargeback_flow: <id>: type | string | Stage of the chargeback flow | 1st_chb, 2nd_chb, arbitration |
chargebacks:<chargebacks_id> :chargeback_flow: <id>: status | string | Status of the chargeback flow in the chargeback cycle | in_progress, document_sent, reversed, accepted, reversed, resolved, resolved_reversal |
chargebacks:<chargebacks_id> :chargeback_flow: <id>: date | string | Settlement date | 2019-06-14 |
chargebacks:<chargebacks_id> :chargeback_flow: <id>: updated_date | string | Date when the chargeback flow was updated | 2019-06-14 |
chargebacks:<chargebacks_id> :chargeback_flow: <id>: deadline_date | string | Date till the chargeback flow should be updated or decision made | 2019-06-14 |
chargebacks:<chargebacks_id> :chargeback_flow: <id>: arn_code | string | Acquirer reference number for the chargeback | 21edw |
payment_adviser | object | ||
payment_adviser:advise | string | Recommendation for next payment | pay / resign / recurring |
device_info | object | ||
device_info:user_agent | string | Device user agent info | Mozilla/5.0 (Linux; U; Android 4.4.2; zh-cn; GT-I9500 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.0 QQ-URL-Manager Mobile Safari/537.36 |
{
"transactions": {
"1499079426595a2302db936": {
"id": "1499079426595a2302db936",
"operation": "pay",
"status": "success",
"descriptor": "descriptor",
"amount": 10000,
"currency": "EUR",
"created_at": "2019-05-17 09:06:21",
"updated_at": "2019-05-17 09:06:32",
"card": {
"bank": "STATE BANK",
"bin": "453245",
"brand": "VISA",
"country": "USA",
"number": "453245XXXXXX2692",
"card_holder": "cardholder name",
"card_exp_month": "03",
"card_exp_year": 2025,
"card_type": "DEBIT",
"card_token": {
"token": "64edcaea1441e2bde37b8afd0d0160dbd8d9db0abedf685af7b4fd0e529c8caf19abf3acd0b9b7e0bb884c85d7a21c0926a4"
},
"billing_details": {
"address": "11437 Woodmeadow Pkwy",
"zip": "85001",
"country": "USA",
"city": "New Delhi",
"state": "TX"
}
},
"1499079426595b4ade6e24b": {
"id": "1499079426595b4ade6e24b",
"operation": "refund",
"status": "success",
"descriptor": "descriptor",
"amount": 10000,
"currency": "EUR",
}
},
"chargebacks": {
"2": {
"id": 2,
"dispute_date": "2017-07-04",
"settlement_date": "2017-07-04",
"amount": 1000,
"currency": "EUR",
"reason_code": "222",
"status": "approved"
}
},
"order": {
"order_id": "1499079426",
"order_description": "Purchase for order group",
"customer_email": "jondou@gmail.com",
"traffic_source": "facebook",
"status": "refunded",
"amount": 10000,
"refunded_amount": 10000,
"currency": "EUR",
"marketing_amount": 11415,
"marketing_currency": "USD",
"processing_amount": 10000,
"processing_currency": "EUR",
"subscription_id": "74345ef8-d511-4506-91e1-1c785553b8bd",
"descriptor": "qwerty",
"fraudulent": true
},
"chargebacks":{
"494531":{
"id":494531,
"dispute_date":"2021-07-13",
"settlement_date":"2021-07-13",
"amount":1200,
"status":"accepted",
"reason_code":"4853",
"currency":"USD",
"type":"1st_chb",
"chargeback_flow":{
"759854":{
"id":759854,
"amount":1200,
"currency":"USD",
"type":"1st_chb",
"status":"accepted",
"date":"2021-07-13",
"updated_date":"2021-07-13",
"deadline_date":"2021-07-23",
"arn_code":"21edw"
}
}
}
},
"payment_adviser": {
"advise": "pay"
},
"device_info": {
"user_agent": "Mozilla/5.0 (Linux; U; Android 4.4.2; zh-cn; GT-I9500 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.0 QQ-URL-Manager Mobile Safari/537.36"
}
}
{
"transactions": {
"15009770463205977179b0ca46": {
"id": "15009770463205977179b0ca46",
"operation": "pay",
"status": "verify",
"descriptor": "descriptor.com",
"amount": 50,
"currency": "EUR",
"created_at": "2019-05-17 09:06:21",
"updated_at": "2019-05-17 09:06:32",
"card": {
"bank": "CB BANK",
"bin": "411118",
"brand": "VISA",
"country": "UKR",
"number": "411118XXXXXX4220",
"card_holder": "cardholder name",
"card_exp_month": "03",
"card_exp_year": 2025,
"card_type": "DEBIT"
},
"billing_details": {
"address": "11437 Woodmeadow Pkwy",
"zip": "85001",
"country": "USA",
"city": "New Delhi",
"state": "TX"
}
},
"verify_url": "https://acs.solidgate.com/api/v1/verify-3ds/554293692/96454d39ed80f256e9f77bb36271b2aff0c2af3ec769911dfd7",
"order": {
"amount": 50,
"currency": "EUR",
"descriptor": "descriptor.com",
"fraudulent": true,
"marketing_amount": 59,
"marketing_currency": "USD",
"processing_amount": 59,
"processing_currency": "USD",
"order_id": "1500977046320",
"order_description": "Purchase for order group",
"customer_email": "jondou@gmail.com",
"traffic_source": "facebook",
"status": "3ds_verify"
},
"payment_adviser": {
"advise": "pay"
},
"device_info": {
"user_agent": "Mozilla/5.0 (Linux; U; Android 4.4.2; zh-cn; GT-I9500 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.0 QQ-URL-Manager Mobile Safari/537.36"
}
}
Check Order Status Response Body Parameters | Fail
Parameter | Type | Description | Example |
---|---|---|---|
order | object | An object with information of the order | |
order:order_id | string | Order ID specified in the merchant system | 777 |
order:order_description | string | Order description in UTF-8 code. | Premium package |
order:traffic_source | string | Source of traffic | |
order:customer_email | string | Customer email | jondou@gmail.com |
order:amount | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 2575 |
order:currency | string | Order currency (3 letter code under ISO 4217) | USD |
order:descriptor | string | The descriptor for the transaction | payhere.com |
order:fraudulent | boolean | The customer was detected on the merchant end to be a suspicious one | TRUE |
order:marketing_amount | integer | Order amount converted in USD (or any other currency agreed) under open FX sources at the moment of transaction. This can be applied only for marketing forecasting | 2575 |
order:marketing_currency | string | The currency of the order amount for marketing analytics | USD |
order:status | string | Status of payment processed. Types of statuses are described in respective directories | created |
order:refunded_amount | integer | The amount which was refunded | 500 |
order:processing_amount | integer | Processing amount of the order | 2575 |
order:processing_currency | string | Processing currency of the order | USD |
transactions | object | An object with information of transactions | |
transactions:<transaction_id> | string | Transaction identification within order. It contains an object with detailed information of specified transaction. Order can have several transactions | 1495123020887591dc450088f1 |
transactions:<transaction_id>:id | string | Transaction identification within order | 1495123020887591dc450088f1 |
transactions:<transaction_id>:operation | string | Transaction type. Transaction types are described in respective directory | pay |
transactions:<transaction_id>:status | string | Transaction status within order. Transaction statuses are described in respective directory | success |
transactions:<transaction_id>:descriptor | string | The descriptor for the transaction | payhere.com |
transactions:<transaction_id>:amount | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 2575 |
transactions:<transaction_id>:currency | string | USD | |
transactions:<transaction_id>:created_at | string | Transaction created DateTime | 2019-05-17 9:06:21 |
transactions:<transaction_id>:updated_at | string | Transaction updated DateTime | 2019-05-17 9:06:21 |
transactions:<transaction_id>:card | object | Object with information about card. Present in payment transactions | |
transactions:<transaction_id>:card:bank | string | Bank-emitent | BUILDING SOCIETY |
transactions:<transaction_id>:card:bin | string | Card BIN | 444455 |
transactions:<transaction_id>:card:brand | string | Card brand | VISA |
transactions:<transaction_id>:card:number | string | Masked card number | 444455XXXXXX6666 |
transactions:<transaction_id>:card:card_holder | string | Cardholder name | Test User |
transactions:<transaction_id>:card:country | string | Country of bank | GBR |
transactions:<transaction_id>:card:card_exp_month | string | A month of card expiration (2-digit format). | 3 |
transactions:<transaction_id>:card:card_exp_year | integer | A year of card expiration (4-digit format). | 2025 |
transactions:<transaction_id>:card:card_type | string | A type of the card. | DEBIT |
transactions:<transaction_id>:card:card_token | object | ||
transactions:<transaction_id>:card:card_token:token | string | Card token to be used for recurring payments. | 4056cd8cccf96...40015a997d74 |
error | object | Object with information on errors | |
error:code | string | Error code | 3.02 |
error: messages | array | Object with error list | Insufficient funds |
error:recommended_message_for_user | string | Recommended error message for the user | Insufficient funds |
payment_adviser | object | ||
payment_adviser:advise | string | Recommendation for the next payment | pay / resign / recurring |
verify_url | string | Url for 3DS verification | https://acs.solidgate.com/api/v1/verify-3ds/554293692/96454d39ed80f256e9f77bb36271b2aff0c2af3ec769911dfd |
chargebacks | object | The object with information of the chargeback | |
chargebacks:<chargebacks_id> | string | Chargeback identification within order. It contains an object with detailed information of specified chargeback | 2 |
chargebacks:<chargebacks_id> :id | integer | Chargeback identification within order | 2 |
chargebacks:<chargebacks_id> :dispute_date | string | The date on which the chargeback was created by the Issuer | 2017-07-04 |
chargebacks:<chargebacks_id> :settlement_date | string | The date on which the chargeback was financially settled | 2017-07-04 |
chargebacks:<chargebacks_id> :amount | integer | Chargeback amount | 1000 |
chargebacks:<chargebacks_id> :currency | string | Chargeback currency | USD |
chargebacks:<chargebacks_id> :reason_code | string | Reason code of chargeback | 222 |
chargebacks:<chargebacks_id> :status | string | Status chargeback | approved |
payment_adviser | object | ||
payment_adviser:advise | string | Recommendation for next payment | pay / resign / recurring |
device_info | object | ||
user_agent | string | Device user agent info | Mozilla/5.0 (Linux; U; Android 4.4.2; zh-cn; GT-I9500 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.0 QQ-URL-Manager Mobile Safari/537.36 |
{
"order": {
"amount": 1,
"currency": "USD",
"descriptor": "DESCRIPTOR",
"fraudulent": false,
"refunded_amount": 0,
"marketing_amount": 1,
"marketing_currency": "USD",
"processing_amount": 0,
"processing_currency": "EUR",
"order_id": "1495182314822",
"order_description": "Purchase for order group",
"customer_email": "jondou@gmail.com",
"traffic_source": "facebook",
"status": "declined"
},
"error": {
"code": "3.02",
"messages": [
"Insufficient funds"
],
"recommended_message_for_user": "Insufficient funds"
},
"transactions": {
"1495182314822591eabeec4198": {
"id": "1495182314822591eabeec4198",
"operation": "pay",
"status": "fail",
"descriptor": "DESCRIPTOR",
"amount": 1,
"currency": "USD",
"created_at": "2019-05-17 09:06:21",
"updated_at": "2019-05-17 09:06:32",
"card": {
"bank": "STATE BANK",
"bin": "444455",
"brand": "VISA",
"country": "USA",
"number": "444455XXXXXX6666",
"card_holder": "cardholder name",
"card_exp_month": "03",
"card_exp_year": 2025,
"card_type": "DEBIT"
},
"billing_details": {
"address": "11437 Woodmeadow Pkwy",
"zip": "85001",
"country": "USA",
"city": "New Delhi",
"state": "TX"
}
},
"payment_adviser": {
"advise": "pay"
},
"device_info": {
"user_agent": "Mozilla/5.0 (Linux; U; Android 4.4.2; zh-cn; GT-I9500 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.0 QQ-URL-Manager Mobile Safari/537.36"
}
}
Refund is a request for transferring funds back to the cardholder. Refunds can be made only for successful transactions.
POST https://pay.solidgate.com/api/v1/refund
Refund Request Body Parameters
Parameter | Mandatory | Type | Description | Example |
---|---|---|---|---|
order_id | Yes | string(100) | Order ID specified in the merchant system | 123443334 |
amount | Yes | integer | Refund amount - integer without fractional component (i.e cents). For instance, 1020 (USD) means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 1020 |
refund_reason_code | No | string | Refund reason - 4 digit code, specified in the refund reason list | 0012 |
{
"order_id": "777",
"amount": 2575
}
Refund Response Body Parameters | Success
Parameter | Type | Description | Example |
---|---|---|---|
order | object | Object with information on transactions | |
order:order_id | string | Order ID specified in the merchant system | 777 |
order:order_description | string | Order description in UTF-8 code. | Premium package |
order:traffic_source | string | Source of traffic | |
order:customer_email | string | Customer email | jondou@gmail.com |
order:amount | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 2575 |
order:currency | string | Order currency (3 letter code under ISO 4217) | USD |
order:descriptor | string | The descriptor for the transaction | payhere.com |
order:fraudulent | boolean | The customer was detected on the merchant end to be suspicious one | TRUE |
order:marketing_amount | integer | Order amount converted in USD (or any other currency agreed) under open FX sources at the moment of transaction. This can be applied only for marketing forecasting | 2575 |
order:marketing_currency | string | The currency of order amount for marketing analytics | USD |
order:processing_amount | integer | Amount in processing currency | 2575 |
order: processing_currency | string | Processing currency | USD |
order:status | string | Status of payment processed. Types of statuses are described in respective directories | created |
order:refunded_amount | integer | The amount which was refunded | 500 |
transaction | object | Object with information on the transaction | |
transaction:id | string | Transaction identification within the order. Order can have several transactions | 1495123020887591dc450088f1 |
transaction:operation | string | Transaction type. Available values - refund | refund |
transaction:status | string | Transaction status within the order | created |
transaction: descriptor | string | The descriptor for the transaction | payhere.com |
transaction:amount | integer | Transaction amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 2575 |
transaction:currency | string | Transaction currency | USD |
transaction:refund_reason | string | Reason of the refund | System Error - PSP |
transaction:refund_reason_code | string | Reason code as specified in the refund reason list | 12 |
transaction:created_at | string | Transaction created DateTime | 2019-05-17 9:06:21 |
transaction:updated_at | string | Transaction updated DateTime | 2019-05-17 9:06:21 |
transactions | object | Object with information on transactions | |
transactions:<transaction_id> | string | Transaction identification within order. It contain an object with detailed information of specified transaction. Order can have several transactions | 1495123020887591dc450088f1 |
transactions:<transaction_id>:id | string | Transaction identification within order | 1495123020887591dc450088f1 |
transactions:<transaction_id>:operation | string | Transaction type. Transaction types are described in respective directory | pay |
transactions:<transaction_id>:status | string | Transaction status within order. Transaction statuses are described in respective directory | success |
transactions:<transaction_id>:descriptor | string | The descriptor for the transaction | payhere.com |
transactions:<transaction_id>:amount | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cent. For example, if the currency is JPY, then 1000 means 1000 JPY. | 2575 |
transactions:<transaction_id>:currency | string | Currency of transaction - 3 letter code under ISO 4217. | USD |
transactions:<transaction_id>:refund_reason | string | Reason of the refund | System Error - PSP |
transactions:<transaction_id>:refund_reason_code | string | Reason code as specified in the refund reason list | 12 |
transactions:<transaction_id>:created_at | string | Transaction created DateTime | 2019-05-17 9:06:21 |
transactions:<transaction_id>:updated_at | string | Transaction updated DateTime | 2019-05-17 9:06:21 |
transactions:<transaction_id>:card | object | Object with information about the card. Present in payment transactions | |
transactions:<transaction_id>:card:bin | string | Card BIN | 444455 |
transactions:<transaction_id>:card:brand | string | Card brand | VISA |
transactions:<transaction_id>:card:number | string | Masked card number | 444455XXXXXX6666 |
transactions:<transaction_id>:card:card_holder | string | Cardholder name | Test User |
transactions:<transaction_id>:card:card_exp_month | string | A month of expiration date on a card. (2-digit format) | 3 |
transactions:<transaction_id>:card:card_exp_year | integer | A year of expiration date on a card. (4-digit format) | 2025 |
transactions:<transaction_id>:card:card_type | string | A type of the card | DEBIT |
transactions:<transaction_id>:card:card_token | object | ||
transactions:<transaction_id>:card:card_token:token | string | Card token to be used for recurring payments. It will be returned in case of successful payment | 4056cd8cccf96...40015a997d74 |
{
"order": {
"order_id": "777",
"order_description": "Purchase for order group",
"customer_email": "jondou@gmail.com",
"traffic_source": "facebook",
"amount": 2575,
"currency": "USD",
"fraudulent": true,
"marketing_amount": 2575,
"marketing_currency": "USD",
"processing_amount": 2575,
"processing_currency": "USD",
"status": "refunded",
"refunded_amount": 50
},
"transaction": {
"id": "149310695572758ff0116380f7",
"operation": "refund",
"status": "success",
"descriptor": "DESCRIPTOR",
"amount": 2575,
"currency": "USD",
"refund_reason": "System Error - PSP",
"refund_reason_code": "0012",
"created_at": "2019-05-17 09:06:21",
"updated_at": "2019-05-17 09:06:32",
},
"transactions": {
"149310695572758ff0116380f7": {
"id": "149310695572758ff0116380f7",
"operation": "refund",
"status": "success",
"descriptor": "DESCRIPTOR",
"amount": 2575,
"currency": "USD",
"refund_reason": "System Error - PSP",
"refund_reason_code": "0012",
"created_at": "2019-05-17 09:06:21",
"updated_at": "2019-05-17 09:06:32",
},
"149310695572758ff010f5d352": {
"id": "149310695572758ff010f5d352",
"operation": "pay",
"status": "success",
"descriptor": "DESCRIPTOR",
"amount": 2575,
"currency": "USD",
"created_at": "2019-05-17 09:06:21",
"updated_at": "2019-05-17 09:06:32",
"card": {
"bin": "444455",
"brand": "VISA",
"country": "USA",
"number": "444455XXXXXX6666",
"card_holder": "cardholder name",
"card_exp_month": "03",
"card_exp_year": 2025,
"card_type": "DEBIT"
"card_token": {
"token": "140dc2f1bd02c...f806d4db669ef"
}
}
}
}
}
The VOID request is used for voiding a previously performed AUTH transactions.
POST https://pay.solidgate.com/api/v1/void
Void Request Body Parameters
Parameter | Mandatory | Type | Description | Example |
---|---|---|---|---|
order_id | Yes | string(100) | Order ID specified in the merchant system |
{
"order_id": "123443334"
}
Void Response Body Parameters | Success
Parameter | Type | Description | Example |
---|---|---|---|
order | object | An object with information of the transaction | |
order:order_id | string | Order ID specified in the merchant system | 1517501959601 |
order:order_description | string | Order description in UTF-8 code. | Premium package |
order:traffic_source | string | Source of traffic | |
order:customer_email | string | Customer email | jondou@gmail.com |
order:status | string | Status of processed payment . Types of order statuses are described in respective directory | void_ok |
order:amount | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 2575 |
order:currency | string | Order currency (3 letter code under ISO 4217) | USD |
order:descriptor | string | The descriptor for the transaction | payhere.com |
order:fraudulent | boolean | A customer is detected by the merchant system to be suspicious one | true |
order:marketing_amount | integer | Order amount converted in USD (or any other currency agreed) under open FX sources at the moment of transaction. This can be applied only for marketing forecasting | 2575 |
order:marketing_currency | string | The currency of the order amount for marketing analytics | USD |
order:processing_amount | integer | Amount of order for marketing analytics | 2575 |
order:processing_currency | string | Processing amount of order | USD |
order:refunded_amount | integer | Refunded amount | 0 |
transactions | object | An object with information on transactions | |
transactions:<transaction_id> | object | Transaction identification within the order. It contains an object with detailed information about the specified transaction. Order can have several transactions | 15175019596015a733f7a4f91a |
transactions:<transaction_id>:id | string | Transactions identification within the order | 15175019596015a733f7a4f91a |
transactions:<transaction_id>:operation | string | Transaction type. Transaction types are described in respective directory | void |
transactions:<transaction_id>:status | string | Transaction status within the order. Transaction statuses are described in respective directory | success |
transactions:<transaction_id>:descriptor | string | The descriptor for the transaction | payhere.com |
transactions:<transaction_id>:amount | integer | Transactions amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents | 2575 |
transactions:<transaction_id>:currency | string | Transactions currency | USD |
transactions:<transaction_id>:created_at | string | Transaction created DateTime | 2019-05-17 09:06:21 |
transactions:<transaction_id>:updated_at | string | Transaction updated DateTime | 2019-05-17 09:06:21 |
transactions:<transaction_id>:card | object | An object with information about the card. Present in payment transactions | |
transactions:<transaction_id>:card:bin | string | Card BIN | 411111 |
transactions:<transaction_id>:card:brand | string | Card Brand | VISA |
transactions:<transaction_id>:card:number | string | Masked card number | 411111XXXXXX1111 |
transactions:<transaction_id>:card:card_holder | string | Cardholder name | Test User |
transactions:<transaction_id>:card:bank | string | Bank that issues the card | STATE BANK |
transactions:<transaction_id>:card:country | string | Country of bank | USA |
transactions:<transaction_id>:card:card_exp_month | string | A month of expiration date on a card. (2-digit format) | 03 |
transactions:<transaction_id>:card:card_exp_year | integer | A year of expiration date on a card. (4-digit format) | 2025 |
transactions:<transaction_id>:card:card_type | string | A type of the card | DEBIT |
transactions:<transaction_id>:card:card_token | object | ||
transactions:<transaction_id>:card:card_token:token | string | Card token to be used for recurring payments. It will be returned in case of successful payment | 86c1b0416c3...e2c99a20 |
transaction | object | An object with information on the transaction | |
transaction:id | string | Transaction identification within the order. The order can have several transactions | 00016857481e16b07fc |
transaction:operation | string | Transaction type | void |
transaction: status | string | Transaction status within the order | created |
transaction: descriptor | string | The descriptor for the transaction | payhere.com |
transaction:amount | integer | Transaction amount | 2575 |
transaction:currency | string | Transaction currency. | USD |
transaction:created_at | string | Transaction created DateTime | 2019-05-17 09:06:21 |
transaction:updated_at | string | Transaction updated DateTime | 2019-05-17 09:06:21 |
{
"transactions": {
"15175019596015a733f7a4f91a": {
"id": "15175019596015a733f7a4f91a",
"operation": "void",
"status": "success",
"descriptor": "DESCRIPTOR",
"amount": 2575,
"currency": "USD",
"created_at": "2019-05-17 09:06:21",
"updated_at": "2019-05-17 09:06:32"
},
"15175019596015a733e0929df7": {
"id": "15175019596015a733e0929df7",
"operation": "auth",
"status": "success",
"descriptor": "DESCRIPTOR",
"amount": 2575,
"currency": "USD",
"created_at": "2019-05-17 09:06:21",
"updated_at": "2019-05-17 09:06:32",
"card": {
"bank": "STATE BANK",
"bin": "411111",
"brand": "VISA",
"country": "USA",
"number": "411111XXXXXX1111",
"card_holder": "cardholder name",
"card_exp_month": "03",
"card_exp_year": 2025,
"card_exp_type": "DEBIT",
"card_token": {
"token": "86c1b0416c3088a6ca3de9998f934c6be2a3f7964ba883c4f67886041898584747d361116832107b563790ea99a5e2c99a20"
}
}
}
},
"order": {
"order_id": "1517501959601",
"order_description": "Purchase for order group",
"customer_email": "jondou@gmail.com",
"traffic_source": "facebook",
"status": "void_ok",
"amount": 2575,
"refunded_amount": 0,
"currency": "USD",
"marketing_amount": 2575,
"marketing_currency": "USD",
"processing_amount": 2575,
"processing_currency": "USD",
"descriptor": "DESCRIPTOR",
"fraudulent": true
},
"transaction": {
"id": "15175019596015a733f7a4f91a",
"operation": "void",
"status": "success",
"descriptor": "DESCRIPTOR",
"amount": 2575,
"currency": "USD",
"created_at": "2019-05-17 09:06:21",
"updated_at": "2019-05-17 09:06:32"
}
}
The Settle method is used for settling an authorized transaction that was previously performed.
POST https://pay.solidgate.com/api/v1/settle
Settle Request Body Parameters
Parameter | Mandatory | Type | Description | Example |
---|---|---|---|---|
order_id | Yes | string(100) | Order ID specified in merchant system | 1517502021714 |
amount | Yes | integer | Settle amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 2575 |
Please, note, if the subsequent Settle amount is less than the amount of initial AUTH transaction - the difference will be returned to the cardholder's account.
{
"order_id": "1517502021714",
"amount": 2575
}
Settle Response Body Parameters | Success
{
"transactions": {
"15175020217145a73465797e66": {
"id": "15175020217145a73465797e66",
"operation": "settle",
"status": "success",
"descriptor": "DESCRIPTOR",
"amount": 2575,
"currency": "USD",
"created_at": "2019-05-17 09:06:21",
"updated_at": "2019-05-17 09:06:32"
},
"15175020217145a733e4756ba3": {
"id": "15175020217145a733e4756ba3",
"operation": "auth",
"status": "success",
"descriptor": "DESCRIPTOR",
"amount": 2575,
"currency": "USD",
"created_at": "2019-05-17 09:06:21",
"updated_at": "2019-05-17 09:06:32",
"card": {
"bank": "STATE BANK",
"bin": "411111",
"brand": "VISA",
"country": "USA",
"number": "411111XXXXXX1111",
"card_holder": "cardholder name",
"card_exp_month": "03",
"card_exp_year": 2025,
"card_type": "DEBIT",
"card_token": {
"token": "d89f0b146fdffd94f7a7a906e6194a34edas452fdf681111695a597317d3602942d9014175c63bf88751198b6d5d076"
}
}
}
},
"order": {
"order_id": "1517502021714",
"order_description": "Purchase for order group",
"customer_email": "jondou@gmail.com",
"traffic_source": "facebook",
"status": "settle_ok",
"amount": 2575,
"refunded_amount": 0,
"currency": "USD",
"marketing_amount": 2575,
"marketing_currency": "USD",
"processing_amount": 2575,
"processing_currency": "USD",
"descriptor": "DESCRIPTOR",
"fraudulent": true
},
"transaction": {
"id": "15175020217145a73465797e66",
"operation": "settle",
"status": "success",
"descriptor": "DESCRIPTOR",
"amount": 2575,
"currency": "USD",
"created_at": "2019-05-17 09:06:21",
"updated_at": "2019-05-17 09:06:32"
}
}
Request for receiving ARN code.
POST https://pay.solidgate.com/api/v1/arn-code
Receive ARN Request Body Parameters
Parameter | Mandatory | Type | Description | Example |
---|---|---|---|---|
order_id | Yes | string(255) | Order ID specified in the merchant system | 123443334 |
ARN is available only for refunded transactions.
{
"order_id": "123443334"
}
Receive ARN Response Body Parameters | Success
Parameter | Type | Description | Example |
---|---|---|---|
arn_codes | object | Array data with information about ARN codes corresponding to the order requested | |
arn_codes:arn_code | string | ARN code for a refund transaction. If PSP hasn't assigned ARN code yet, the value is equal to null. It can take up to 48 hours for a payment provider to assign ARN code for the transaction | 74208328039016341469667 |
arn_codes:amount_refunded | integer | Order amount - integer without fractional components (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY | 1020 |
arn_codes:currency | string | Order currency (3 letter code under ISO 4217) | USD |
arn_codes:transaction_status | string | Transaction status of a refund within the order. Transaction statuses are described in transaction status directory | success |
arn_codes:sp_transaction_id | string | The ID of respective SP transaction if matched. If a refund is performed through PSP's admin-panel, it's difficult to establish a direct link with SP transaction in our system | 2045 |
arn_codes:created_at | string | Date and time of refund performed on the PSP end | 2018-02-07 12:42:09 |
{
"arn_codes":[
{
"transaction_status":"success",
"arn_code":"74208328039016341469667",
"amount_refunded":100,
"currency":"USD",
"sp_transaction_id":2045,
"created_at":"2018-02-07 12:42:09"
}
]
}
{
"arn_codes":[
{
"transaction_status":"success",
"arn_code":null,
"amount_refunded":100,
"currency":"USD",
"sp_transaction_id":2045,
"created_at":"2018-02-07 12:42:09"
}
]
}
Iframe for resign-payment is generated according to the following parameters:
Merchant - this is the unique merchant ID, provided to you during the integration process;
Form_Data - encrypted aes-cbc-256 string of JSON request data with random IV and the key is first 16bytes of merchant private key encrypted in AEC key - first 15 bytes of the private key.
Signature - Signature of request. It allows verifying whether the request from the merchant is genuine on the payment gateway server. In this case, it’s generated not from JSON, but from Form_data.
GET https://form.solidgate.com/api/v1/form/resign?merchant={merchant_id}&signature={signature}&form_data={form_data}
Resign Form Request Body Parameters
Parameter | Mandatory | Type | Description | Example |
---|---|---|---|---|
order_id | Yes | string(100) | Order ID specified in the merchant’s system | 123443334 |
amount | Yes | integer | Order amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents. For example, if the currency is JPY, then 1000 means 1000 JPY. | 1020 |
currency | Yes | string(3) | Order currency. 3 letter currency code under ISO-4217 | USD |
recurring_token | Yes | string(255) | Card token | 7ats8da7sd8-a66dfa7-a9s9das89t |
order_description | Yes | string(100) | Order description in UTF-8 code | Premium package |
customer_email | Yes | string(100) | Customer email | jondou@gmail.com |
ip_address | Yes | string(50) | Customer IP (only public ones) | 8.8.8.8 |
platform | Yes | string(6) | Customer platform at the moment of payment. Available values: WEB- desktop, MOB - mobile version, APP - application | WEB |
fail_url | No | string(255) | URL of merchant page, which a customer will be redirected in case of unsuccessful payment | http://merchant.example/fail |
success_url | No | string(255) | URL of merchant page, which a customer will be redirected in case of successful payment | http://merchant.example/success |
geo_country | No | string(3) | Customer’s country subject to ISO 3166-1 alpha-3 | GBR |
order_date | No | string(50) | Date of the order creation in format YYYY-MM-DD-HH-MM-SS | 2015-12-21 11:21:30 |
order_items | No | string(255) | Order description in UTF-8 code | item 1, item 2 |
customer_account_id | No | string(100) | Customer ID in the merchant's system. | 4dad42f808 |
customer_first_name | No | string(100) | Customer’s first name | John |
customer_last_name | No | string(100) | Customer’s last name | Snow |
customer_phone | No | string(50) | Phone number of the customer | 380111111111 |
customer_date_of_birth | No | string(50) | Birthdate in YYYY-MM-DD format | 2000-11-21 |
geo_city | No | string(100) | Customer’s City | New Castle |
language | No | string(2) | Customer’s language settings. Available values: RU - Russian, EN - English | en |
fraudulent | No | boolean | Customer is detected by the merchant’s system to be suspicious one. The payment will be effected via 3DS | TRUE |
verified | No | boolean | A user was verified on the shop side | TRUE |
type | No | string | The parameter for transaction-authorization | auth |
website | No | string(255) | The website from which transaction took place | Google.com |
retry_attempt | No | integer | Number of retry payment | 1 |
traffic_source | No | string(255) | Source of traffic | |
transaction_source | No | string(255) | Source of the transactions on the website | main_menu |
user_agent | No | string | User-agent of customer | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 |
device | No | string | Device of customer | iPhone 8 iOS 12.0 |
order_number | No | integer | Number of payments by a user | 1 |
force3ds | No | boolean | Routing payments flag for 3DS flow (enabled by Solid account manager) | FALSE |
header_accept | Yes - 3D 2.0 | string(255) | Header Accept | text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng |
header_accept_language | Yes - 3D 2.0 | string(255) | Header Accept-Language | ru-RU,ru;q=0.9,en-US;q=0.8 |
browser_color_depth | Yes - 3D 2.0 | integer | Colour depth of browser window | 32 |
browser_screen_height | Yes - 3D 2.0 | integer | Height of browser window | 1920 |
browser_screen_width | Yes - 3D 2.0 | integer | Width of the browser window | 1280 |
browser_java_enabled | Yes - 3D 2.0 | boolean | Is java enabled on User's browser | FALSE |
browser_javascript_enabled | Yes - 3D 2.0 | boolean | Is javascript enabled on User's browser | FALSE |
time_zone_offset | Yes - 3D 2.0 | integer | The time difference, in minutes, between UTC time and the local time of the cardholder's browser | 1 |
In case of the successful response, you will receive a short version of the payment form, where the cardholder will need to enter CVV only.
If a card payment operation (charge operation) fails, it can be due to various reasons such as insufficient funds on the card, incorrect data entry, banking system issues, etc. However, if a payment is unsuccessful, it is not always necessary to cancel the entire transaction and refund the money to a customer. Instead, a retry payment attempt can be made using a payment token. A payment token is a unique identifier generated during a charge operation and used to identify data (such as credit card information) for future transactions.
Charge - basic operation of funds withdrawal from cardholder's account. This operation can be performed with additional cardholder verification via 3-D Secure. When an operation is successfully done, cardholder data is tokenized so that the subsequent payments can be made by token (tokenized payment).
If the payment fails due to a network error or a decline from the issuing bank, a recurring request needs to be made using the token from the unsuccessful first attempt. This allows for a seamless experience for the customer and can increase the chances of a successful transaction.
It is important to note that:
|
There are several key points to implementing retry logic in a first payment with token parameters:
It is important to note that the retry logic must be implemented with caution to ensure that the customer's payment details are secure and to avoid any unexpected charges. The retry logic can improve the success rate of the transactions and provide a better user experience. It is always recommended to test the retry logic and monitor it in production to make sure it is working as expected. If you're using the recurring method for payment retries, you need to pass the corresponding value in the traffic_source field (please inform your manager of the value you'll be using). We can suggest using the value retry for the traffic_source field, but the client should inform us of what they will specify in this field, and we will configure our processing cards accordingly. This is necessary so that we can differentiate between regular recurring payments and payment retry attempts. |
The system can include error handling mechanisms to handle any errors that occur during the retry process and to ensure that the customer is informed of the issue and provided with an appropriate resolution. You should identify the reason for the decline when a payment is declined. There could be several reasons for a decline, such as insufficient funds, expired cards, or invalid card details.
Here is an example of certain reasons for a declined transaction, where there is still a chance of a successful payment:
However, it is important to note that after the first attempt, the probability of a successful payment may decrease by up to three times.
Based on the reviewed statistics, we can recommend not retrying transactions for the following reasons:
As if these data have not changed, the payment will still be unsuccessful.
When implementing retry logic for payments, you can customize the rules for retrying based on specific error codes or payment methods, for:
In order to customize retry rules for specific error codes or payment methods, you will need to implement some additional logic in your code.
For example, via using Solidgate create() method to create a recurring. If a solidgate.error.CardError is raised, check the code attribute of the exception to see if it is "Authentication failed". If it is, we retry the payment using the same payment method. If it is not, we do not retry the payment and instead raise the exception. |
To implement retry logic for specific payment methods, you could add a check before retrying the payment.
For example, via checking the type attribute of the payment_method object to see if it is a "card" before retrying the payment. |