Alternative Payments Methods

SolidGate is a unique gateway for online payments. Both means of payment are available: cards and alternative payment methods such as bank transfers, USSD, Boleto etc.

Simple integration gets an opportunity to start working at once.

API Endpoint URL - https://gate.solidgate.com/api/v1/

SolidGate methods

  • Init Payment - operation of order initiating. This performs order creation and transaction is ready for payment.
  • Status - request for receiving current order status.
  • Refund - request for transferring funds back. Refunds are available for successfully paid orders. Only one refund can be effected per order.

Please, note that all requests must be signed.

SolidGate Init-Payment

Operation of order initiating. It shall be used while working with a payment form.

This operation deems to create order in the system and return token being applied while calling payment form.

POST https://gate.solidgate.com/api/v1/init-payment

 

     Init Payment Request Body Parameters

ParameterMandatoryTypeDescriptionValue sample
amountYesIntegerOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents1020
currencyYesString(3)Order currency. 3 letter currency code under ISO-4217USD
payment_methodNoStringPayment method ( "przelewy24", "trustly", "bancontact", "giropay", "paysafecard", "sepa", "sofort", "ideal", "paypal", "yandex_money", "dcb", "paysms", "alipay")paypal
payment_type_dataNoObjectObject with payment type data 
payment_type_data:phoneNoStringThe phone number for Mobile Carrier Billing (paysms) 
payment_type_data:cpfNoStringCPF - individual taxpayer registry identification, a number attributed by the Brazilian Federal Revenue. Mandatory for method boleto42243309114
customer_account_idNoStringCustomer ID in the merchant's system. Required for Subscription Payments 4dad42f808
customer_date_of_birthNoStringCustomer birth date in format YYYY-MM-DD2000-11-21
customer_emailYesStringCustomer emailjondou@gmail.com
customer_first_nameNoStringCustomer's first nameJohn
customer_last_nameNoStringCustomer last nameSnow
customer_phoneNo/YesStringCustomer telephone  (Mandatory for locations: UGA, KEN, TZA, GHA)380111111111
geo_countryNoString(3)Customer country. Code shall be in ISO 3166-1 alpha-3 format. GBR
geo_cityNoStringCustomer cityNew Castle
ip_addressYesStringCustomer IP (only public ones)8.8.8.8
languageNoString(2)Customer language settings. Available values: RU - Russian, EN - Englishen
order_idYesStringOrder ID specified in merchant system123443334
order_dateNoStringDate of order creation in format YYYY-MM-DD-HH-MM-SS2015-12-21 11:21:30
order_descriptionYesStringOrder description in UTF-8 codePremium package
platformYesStringCustomer platform at the moment of payment. Available values: WEB- desktop, MOB - mobile version, APP - applicationWEB
callback_urlNoStringURL of merchant page, where response with payment result will be senthttp://merchant.example/callback
return_urlNoStringURL of merchant page, to which a customer will be redirected after payment is completehttp://merchant.example/return
success_urlNoStringURL of merchant page, to which a customer will be redirected after success paymenthttp://merchant.example/success
fail_urlNoStringURL of merchant page, to which a customer will be redirected after unsuccess paymenthttp://merchant.example/fail

Init Payment Request Sample


{
  "amount": 2575,
  "payment_method": "paypal",
  "callback_url": "http://merchant.example/callback",
  "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",
  "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",
  "platform": "WEB"
}

 

    Init Payment Response Body Parameters

ParameterTypeDescriptionValue sample
orderObjectObject with information of the order 
order: order_idStringOrder ID specified in merchant system777
order: amountIntegerOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents.2575
order: currencyStringOrder currency (3 letter code under ISO 4217)USD
order: statusStringOrder statuscreated
pay_formObjectObject with data payment form data 
pay_form: tokenStringPayment form token5849cf0468afc0ac4be4963c619b776eee75271d56e3c6621ab21
pay_form: return_url StringURL of merchant page, to which a customer will be redirected to complete a paymenthttps://www.paypal.com/ca/cgi-bin/merchantpaymentweb?cmd=_express-checkout&token=EC-1LX20314LJ600731B
payment_type_dataObject  
payment_type_data:idStringTicket id109/18369953-0
payment_type_data:numberStringTicket number34191091803699530044354689940002780050000015476
payment_type_data:expiration_dateStringTicket expiration date2019-09-08T02:59:00+0000
payment_type_data:barcodeStringTicket barcode34197800500000154761091836995300445468994000

Init Payment Response Body | Success

{
 "order": {
 "amount": 5000,
 "currency": "USD",
  "order_id": "1504269591134TEST",
  "status": "created"
  },
 "pay_form": {
 "token": "6de603708b5b4c33a681dc1e47b20ad3",
 "return_url": "https://www.paypal.com/ca/cgi-bin/merchantpaymentweb?cmd=_express-checkout&token=EC-1LX20314LJ601741A"
  }
}

SolidGate Init-Payment PayPal

Operation of order initiating. It shall be used while working with a payment widget. 

This operation deems to create order in the system and return token being applied while calling paypal button. After that, you may use recurring token for further payments.

POST https://gate.solidgate.com/api/v1/init-payment

Init Payment Request Body Parameters | PayPal

ParameterMandatoryTypeDescriptionValue sample
amountYesIntegerOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents.1020
currencyYesString(3)Order currency. 3 letter currency code under ISO-4217USD
product_idYesString(36)The ID of the predefined productfaf3b86a-1fe6-4ae5-84d4-ab0651d75db2
payment_methodYesStringPayPal Vaultpaypal-vault
customer_account_idNoStringCustomer ID in the merchant's system. Required for Subscription Payments user_id
order_idYesStringOrder ID specified in merchant systemtestPayPal777
order_descriptionYesStringOrder description in UTF-8 codePremium package
platformYesStringCustomer platform at the moment of payment. Available values: WEB- desktop, MOB - mobile version, APP - application.WEB
customer_emailYesStringAn email that belongs to a customerjondou@gmail.com
geo_countryNoString(3)Customer’s country. Code shall be in ISO 3166-1 alpha-3 format. GBR
ip_addressYesStringIP address (only public ones)8.8.8.8
customer_date_of_birthNoStringCustomer birth date in format YYYY-MM-DD2000-11-21
customer_first_nameNoStringCustomer’s first nameJohn
customer_last_nameNoStringCustomer’s last nameSnow
customer_phoneNoStringCustomer’s telephone380000000000
geo_cityNoStringCustomer’s cityNew Castle
languageNoString(2)Customer’s language settings. Available values: RU - Russian, EN - Englishen
order_dateNoStringDate of order creation in format YYYY-MM-DD-HH-MM-SS2015-12-21 11:21:30
callback_urlNoStringURL of merchant page, where response with payment result will be senthttp://merchant.example/callback
subscription_callback_urlNoStringSubscription callback addresshttp://merchant.example/subscription_callback
return_urlNoStringURL of merchant page, to which a customer will be redirected after payment is completehttp://merchant.example/return
success_urlNoStringURL of merchant page, to which a customer will be redirected after success paymenthttp://merchant.example/success
fail_urlNoStringURL of merchant page, to which a customer will be redirected after unsuccess paymenthttp://merchant.example/fail

Init Payment Request Body | PayPal

{
  "amount": 2575,
  "currency": "USD",
  "payment_method": "paypal-vault",
  "callback_url": "http://merchant.example/callback",
  "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",
  "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": "testPayPal777",
  "platform": "WEB"
}

 Init Payment Response Body Parameters | PayPal

ParameterTypeDescriptionValue sample
orderObjectObject with information of the order 
order: methodStringA method that is used for the subscription paymentpaypal-vault
order: order_idStringOrder ID specified in merchant systemtestPayPal777
order: amountIntegerOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents.999
order: currencyStringOrder currency (3 letter code under ISO 4217)USD
order: statusStringOrder statuscreated
pay_formObjectObject with data payment form data 
pay_form: tokenStringA token that is used in recurring charge3e74d293f47e4c7899613ba37e38ee43
pay_form: script_urlStringPayPal Button Scripthttps://gate.solidgate.com/widget/7d0d148742af492ea075e1972779df78

Init Payment Response Body | PayPal Success

{
    "order": {
        "amount": 999,
        "currency": "USD",
        "order_id": "testPayPal777",
        "status": "created",
        "method": "paypal-vault"
    },
    "pay_form": {
        "token": "3e74d293f47e4c7899613ba37e38ee43",
        "script_url": "https://gate.solidgate.com/widget/3e74d293f47e4c7899613ba37e38ee43"
    }
}

PayPal Button elements on page

<div id="paypal-button"></div>
<script>
    var elem = document.getElementById('paypal-button');
    elem.addEventListener('order-started-processing', function (e) {
        console.log('order-started-processing',e);
    }, false);
    elem.addEventListener('order-processed', function (e) {
        console.log('order-processed',e);
    }, false);
    elem.addEventListener('order-already-processed', function (e) {
        console.log('order-already-processed', e)
    }, false);
    elem.addEventListener('button-ready', function (e) {
        console.log('button-ready', e)
    }, false);
    elem.addEventListener('button-error', function (e) {
        console.log('button-error',e);
    }, false);
</script>
<script type="text/javascript"
        src="https://gate.solidgate.com/widget/e403827025c44f0893baac3d760d3a3c"
        data-script=" "
        data-btn-id="solid_pay_btn"
        data-overlay="true"
        data-tittle="Tittle for payment widget"
        data-description="widget.data-description">
</script>
EventsValueDescription
EVENT_BUTTON_READYbutton-readyThe button is ready to be used
EVENT_BUTTON_ERRORbutton-errorThere is an error with the button rendering
EVENT_ORDER_STARTED_PROCESSINGorder-started-processingOrder is in processing
EVENT_ORDER_PROCESSEDorder-processedOrder is processed
EVENT_ORDER_ALREADY_PROCESSEDorder-already-processedAppears if the user goes on the page with the order creation again

Event Order-Processed Sample | Success

bubbles: false
cancelBubble: false
cancelable: false
composed: false
currentTarget: null
defaultPrevented: false
detail:
data:
{
  "order": {
    "amount": 100,
    "currency": "USD",
    "order_id": "1595234886934init",
    "status": "approved",
    "method": "paypal-vault",
    "token": "6c441e1117978dad8c47f1985420f55c4884a323fdf35dfcb8d3dc35ccb5d09b369b0fd89d00f054cce34b3c6a854184b995",
    "customer_email": "kurt.Cruickshank.toster@gmail.com",
    "ip_address": "8.8.8.8",
    "created_at": "2020-07-20 08:48:07",
    "updated_at": "2020-07-20 08:49:19"
  },
  "pay_form": {
    "token": "fb124ba2d884427d8724c1a78ad304de",
    "script_url": "https://gate.solidgate.com/widget/fb124ba2d884427d8724c1a78ad304de"
  },
  "transactions": [
    {
      "status": "success",
      "method": "paypal-vault",
      "amount": 100,
      "currency": "USD",
      "type": "pay"
    }
  ]
}
__proto__: Object
eventPhase: 0
isTrusted: false
path: (10) [div#paypal-button, div.intro-box__inner-footer, div.intro-box__inner, div.intro-box__content, div.intro-box, div.app, body.en.ab_var_a.obv3, html..no-touchevents, document, Window]
returnValue: true
srcElement: div#paypal-button
target: div#paypal-button
timeStamp: 66495.45000000035
type: "order-processed"
__proto__: CustomEvent

Event Order-Processed Sample | Decline

bubbles: false
cancelBubble: false
cancelable: false
composed: false
currentTarget: null
defaultPrevented: false
detail:
data: 
{
  "order": {
    "amount": 100,
    "currency": "EUR",
    "order_id": "1595234705069init",
    "status": "declined",
    "method": "paypal-vault",
    "customer_email": "kurt.Cruickshank.toster@gmail.com",
    "ip_address": "8.8.8.8",
    "created_at": "2020-07-20 08:45:05",
    "updated_at": "2020-07-20 08:46:27"
  },
  "pay_form": {
    "token": "a48fcc6c3abf425eaa61b2289675f489",
    "script_url": "https://gate.solidgate.com/widget/a48fcc6c3abf425eaa61b2289675f489"
  },
  "error": {
    "code": "0.01",
    "messages": [
      "General decline"
    ],
    "recommended_message_for_user": "General decline"
  },
  "transactions": [
    {
      "status": "fail",
      "method": "paypal-vault",
      "amount": 100,
      "currency": "EUR",
      "type": "pay"
    }
  ]
}
__proto__: Object
eventPhase: 0
isTrusted: false
path: (10) [div#paypal-button, div.intro-box__inner-footer, div.intro-box__inner, div.intro-box__content, div.intro-box, div.app, body.en.ab_var_a.obv3, html..no-touchevents, document, Window]
returnValue: true
srcElement: div#paypal-button
target: div#paypal-button
timeStamp: 46688.41500000053
type: "order-processed"
__proto__: CustomEvent 

SolidGate Init-Payment AliPay

Operation of order initiating. It shall be used while working with a payment widget. 

This operation deems to create order in the system and return token being applied while calling a payment widget.

POST https://gate.solidgate.com/api/v1/init-payment

 

    Init Payment Request Body Parameters | AliPay

ParameterMandatoryTypeDescriptionValue sample
amountYesIntegerOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents1020
currencyYesString(3)Order currency. 3 letter currency code under ISO-4217USD
payment_methodNoStringPayment method ( "przelewy24", "trustly", "bancontact", "giropay", "paysafecard", "sepa", "sofort", "ideal", "paypal", "yandex_money", "dcb", "paysms", "alipay")AliPay
payment_type_dataNoObjectObject with payment type data 
payment_type_data:phoneNoStringPhone number380000000000
customer_account_idNoStringCustomer ID in the merchant's system. Required for Subscription Payments 4dad42f808
customer_date_of_birthNoStringCustomer birth date in format YYYY-MM-DD2000-11-21
customer_emailYesStringCustomer emailjondou@gmail.com
customer_first_nameNoStringCustomer's first nameJohn
customer_last_nameNoStringCustomer last nameSnow
customer_phoneNo/YesStringCustomer telephone (Mandatory for locations: UGA, KEN, TZA, GHA)380111111111
geo_countryNoString(3)Customer country. Code shall be in ISO 3166-1 alpha-3 format. GBR
geo_cityNoStringCustomer cityNew Castle
ip_addressYesStringCustomer IP (only public ones)8.8.8.8
languageNoString(2)Customer language settings. Available values: RU - Russian, EN - Englishen
order_idYesStringOrder ID specified in merchant system123443334
order_dateNoStringDate of order creation in format YYYY-MM-DD-HH-MM-SS2015-12-21 11:21:30
order_descriptionYesStringOrder description in UTF-8 codePremium package
platformYesStringCustomer platform at the moment of payment. Available values: WEB- desktop, MOB - mobile version, APP - applicationWEB
callback_urlNoStringURL of merchant page, where response with payment result will be senthttp://merchant.example/callback
return_urlNoStringURL of merchant page, to which a customer will be redirected after payment is completehttp://merchant.example/return
success_urlNoStringURL of merchant page, to which a customer will be redirected after success paymenthttp://merchant.example/success
fail_urlNoStringURL of merchant page, to which a customer will be redirected after unsuccess paymenthttp://merchant.example/fail

Init Payment Request Sample | AliPay

{
  "amount": 2575,
  "payment_method": "A",
  "callback_url": "http://merchant.example/callback",
  "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",
  "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",
  "platform": "WEB"
}

 

    Init Payment Response Body Parameters | AliPay

ParameterTypeDescriptionValue sample
orderObjectObject with information of the order 
order: order_idStringOrder ID specified in merchant system777
order: amountIntegerOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents2575
order: currencyStringOrder currency (3 letter code under ISO 4217)USD
order: statusStringOrder statuscreated
pay_formObjectObject with data payment form data 
pay_form: tokenStringPayment form token5849cf0468afc0ac4be4963c619b776eee75271d56e3c6621ab21
pay_form: return_urlStringURL of merchant page, to which a customer will be redirected to complete a paymenthttps://www.returnurl.com
payment_type_dataObject  
payment_type_data:idStringTicket id109/18369953-0
payment_type_data:numberStringTicket number34191091803699530044354689940002780050000015476
payment_type_data:expiration_dateStringTicket expiration date2019-09-08T02:59:00+0000
payment_type_data:barcodeStringTicket barcode34197800500000154761091836995300445468994000

Init Payment Response Sample | AliPay

{
 "order": {
 "amount": 5000,
 "currency": "USD",
  "order_id": "1504269591134TEST",
  "status": "created"
  },
 "pay_form": {
 "token": "6de603708b5b4c33a681dc1e47b20ad3",
 "return_url": "https://www.returnurl.com"
  } 
}

SolidGate Init-Payment Sofort

Operation of order initiating. It shall be used while working with a payment widget. 

This operation deems to create order in the system and return token being applied while calling payment widget.

POST https://gate.solidgate.com/api/v1/init-payment

 

            Init Payment Request Body Parameters | Sofort

ParameterMandatoryTypeDescriptionValue sample
amountYesIntegerOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents1020
currencyYesString(3)Order currency. 3 letter currency code under ISO-4217USD
payment_methodNoStringPayment method ( "przelewy24", "trustly", "bancontact", "giropay", "paysafecard", "sepa", "sofort", "ideal", "paypal", "yandex_money", "dcb", "paysms", "alipay")sofort
payment_type_dataNoObjectObject with payment type data 
payment_type_data:phoneNoStringPhone number380000000000
customer_account_idNoStringCustomer ID in the merchant's system. Required for Subscription Payments 4dad42f808
customer_date_of_birthNoStringCustomer birth date in format YYYY-MM-DD2000-11-21
customer_emailYesStringCustomer emailjondou@gmail.com
customer_first_nameNoStringCustomer's first nameJohn
customer_last_nameNoStringCustomer last nameSnow
customer_phoneNo/YesStringCustomer telephone (Mandatory for locations: UGA, KEN, TZA, GHA)380111111111
geo_countryNoString(3)Customer country. Code shall be in ISO 3166-1 alpha-3 format. GBR
geo_cityNoStringCustomer cityNew Castle
ip_addressYesStringCustomer IP (only public ones)8.8.8.8
languageNoString(2)Customer language settings. Available values: RU - Russian, EN - Englishen
order_idYesStringOrder ID specified in merchant system123443334
order_dateNoStringDate of order creation in format YYYY-MM-DD-HH-MM-SS2015-12-21 11:21:30
order_descriptionYesStringOrder description in UTF-8 codePremium package
platformYesStringCustomer platform at the moment of payment. Available values: WEB- desktop, MOB - mobile version, APP - applicationWEB
callback_urlNoStringURL of merchant page, where response with payment result will be senthttp://merchant.example/callback
return_urlNoStringURL of merchant page, to which a customer will be redirected after payment is completehttp://merchant.example/return
success_urlNoStringURL of merchant page, to which a customer will be redirected after success paymenthttp://merchant.example/success
fail_urlNoStringURL of merchant page, to which a customer will be redirected after unsuccess paymenthttp://merchant.example/fail

Init Payment Request Sample | Sofort

{
  "amount": 2575,
  "payment_method": "Sofort",
  "callback_url": "http://merchant.example/callback",
  "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",
  "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",
  "platform": "WEB"
}

 

    Init Payment Response Body Parameters | Sofort

ParameterTypeDescriptionValue sample
orderobjectObject with information of the order 
order: order_idstringOrder ID specified in merchant system777
order: amountintegerOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents2575
order: currencystringOrder currency (3 letter code under ISO 4217)USD
order: statusstringOrder statuscreated
pay_formobjectObject with data payment form data 
pay_form: tokenstringPayment form token5849cf0468afc0ac4be4963c619b776eee75271d56e3c6621ab21
pay_form: return_urlstringURL of merchant page, to which a customer will be redirected to complete a paymenthttps://www.returnurl.com
payment_type_dataobject  
payment_type_data:idstringTicket id109/18369953-0
payment_type_data:numberstringTicket number34191091803699530044354689940002780050000015476
payment_type_data:expiration_datestringTicket expiration date2019-09-08T02:59:00+0000
payment_type_data:barcodestringTicket barcode34197800500000154761091836995300445468994000

Init Payment Response Sample | Sofort

{
 "order": {
 "amount": 5000,
 "currency": "USD",
  "order_id": "1504269591134TEST",
  "status": "created"
  },
 "pay_form": {
 "token": "6de603708b5b4c33a681dc1e47b20ad3",
 "return_url": "https://www.returnurl.com"
  } 
}

SolidGate Init-Payment iDeal

Operation of order initiating. It shall be used while working with a payment widget. 

This operation deems to create order in the system and return token being applied while calling a payment widget.

The current flow of work with iDeal goes as follows:

  1. User is presented with bank selection. Merchant will match bank and BIC;
  2. The merchant sends init-request to Solid. It should contain all mandatory fields (BIC, etc…);
  3. In response, Solid provides a URL of the payment page;
  4. The merchant provides the redirect_page for a user with iDeal payment form;
  5. User will execute payment or decline it;
  6. After this, he will return to success or fail URL, in response to the status of the transaction.

POST https://gate.solidgate.com/api/v1/init-payment

Request parameters

ParameterMandatoryTypeDescriptionValue sample
amountYesIntegerOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents.1020
currencyYesString(3)Order currency. 3 letter currency code under ISO-4217
EUR only
EUR
payment_methodNoStringPayment method ( "przelewy24", "trustly", "bancontact", "giropay", "paysafecard", "sepa", "sofort", "ideal", "paypal", "yandex_money", "dcb", "paysms", "alipay")ideal
payment_type_dataYesObjectObject with payment type data 
payment_type_data:bicYesStringA BIC code is an international bank code that identifies particular banks worldwide.ABNANL2A
payment_type_data:phoneNoStringPhone number.380000000000
customer_account_idNoStringCustomer ID in the merchant's system. Required for Subscription Payments 4dad42f808
customer_date_of_birthNoStringCustomer birth date in format YYYY-MM-DD2000-11-21
customer_emailYesStringCustomer emailjondou@gmail.com
customer_first_nameNoStringCustomer's first nameJohn
customer_last_nameNoStringCustomer last nameSnow
customer_phoneNo/YesStringCustomer telephone (Mandatory for locations: UGA, KEN, TZA, GHA)380111111111
geo_countryNoString(3)Customer country. Code shall be in ISO 3166-1 alpha-3 format. GBR
geo_cityNoStringCustomer cityNew Castle
ip_addressYesStringCustomer IP (only public ones)8.8.8.8
languageNoString(2)Customer language settings. Available values: RU - Russian, EN - Englishen
order_idYesStringOrder ID specified in merchant system123443334
order_dateNoStringDate of order creation in format YYYY-MM-DD-HH-MM-SS2015-12-21 11:21:30
order_descriptionYesStringOrder description in UTF-8 codePremium package
platformYesStringCustomer platform at the moment of payment. Available values: WEB- desktop, MOB - mobile version, APP - application.WEB
callback_urlNoStringURL of merchant page, where response with payment result will be senthttp://merchant.example/callback
return_urlNoStringURL of merchant page, to which a customer will be redirected after payment is completehttp://merchant.example/return
success_urlNoStringURL of merchant page, to which a customer will be redirected after success paymenthttp://merchant.example/success
fail_urlNoStringURL of merchant page, to which a customer will be redirected after unsuccess paymenthttp://merchant.example/fail

Request sample

{
  "amount": 2575,
  "payment_method": "ideal",
  "payment_type_data": {
    "bic": "ABNANL2A"
  },
  "callback_url": "http://merchant.example/callback",
  "currency": "EUR",
  "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",
  "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",
  "platform": "WEB"
}

Parameters of the successful response

ParameterTypeDescriptionValue sample
orderObjectObject with information of the order 
order: order_idStringOrder ID specified in merchant system777
order: amountIntegerOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents.2575
order: currencyStringOrder currency (3 letter code under ISO 4217)
EUR only
EUR
order: statusStringOrder statuscreated
pay_formObjectObject with data payment form data 
pay_form: tokenStringPayment form token5849cf0468afc0ac4be4963c619b776eee75271d56e3c6621ab21
pay_form: return_urlStringURL of merchant page, to which a customer will be redirected to complete a paymenthttps://www.returnurl.com
payment_type_dataObject  
payment_type_data:idStringTicket id109/18369953-0
payment_type_data:numberStringTicket number34191091803699530044354689940002780050000015476
payment_type_data:expiration_dateStringTicket expiration date2019-09-08T02:59:00+0000
payment_type_data:barcodeStringTicket barcode34197800500000154761091836995300445468994000

Parameters of the successful response

{
 "order": {
 "amount": 5000,
 "currency": "EUR",
  "order_id": "1504269591134TEST",
  "status": "created"
  },
 "pay_form": {
 "token": "6de603708b5b4c33a681dc1e47b20ad3",
 "return_url": "https://www.returnurl.com"
  } 
}

List of available BIC providers

Issuer’s nameBIC
ABN AMROABNANL2A
ASN BankASNBNL21
bunqBUNQNL2A
HandelsbankenHANDNL2A
INGINGBNL2A
KnabKNABNL2H
MoneyouMOYONL21
RabobankRABONL2U
RegioBankRBRBNL21
SNSSNSBNL2A
Triodos BankTRIONL2U
Van LanschotFVLBNL22

SolidGate Refund

This is a request for transferring funds back to the cardholder.

Refunds are applicable only for successful orders.

POST https://gate.solidgate.com/api/v1/refund

 

    Request Body Parameters

ParameterMandatoryTypeDescriptionValue sample
order_idYesstring(255)Order ID specified in merchant system777
amountYesintegerRefund amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents2575

Request sample

{
  "order_id": "1511285499878WIDGET",
  "amount": 2000
}

 

    Response Body Parameters

Parameter TypeDescriptionExample
orderobjectObject with information about the order 
order: order_idstringOrder ID specified in merchant system777
order: amountintegerOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents2575
order: currencystringOrder currency. 3 letter currency code under ISO-4217NGN
order: statusstringTransaction statusrefunded
order: methodstringPayment methodsolid-cards
order:processing_amountstringAmount in processing currency2575
order: processing_currencystringProcessing currencyNGN
pay_formobject  
pay_form: tokenstringCard token being applied for recurring payments. It's returned in case of successful payment4056cd8cccf96...40015a997d74
card_tokenobject  
card_token:tokenstringCard token being applied for recurring payments. It's returned in case of successful payment ae7ab1407317e77d9d1002cb41512c5e15def5d8b1
card_token: card_numberstringCard number in an encrypted format453245XXXXXX2692
card_token: card_brandstringCard brandVISA
card_token: card_countrystringCountry of card originNGN
card_token: card_bankstringIssuing bankCITIZENS STATE BANK
transactionsobject  
transactions: statusstringTransaction statusapproved
transactions: methodstringPayment methodsolid-cards
transactions: amountstringOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents2575
transactions: currencystringOrder currency. 3 letter currency code under ISO-4217NGN
transactions: typestringType of transactionrefund

Successful response sample

{
  "order": {
    "amount": 2575,
    "currency": "NGN",
    "order_id": "777",
    "status": "refunded",
    "method": "solid-cards",
    "processing_amount": "2575",
    "processing_currency": "NGN"
  },
  "card_token": {
    "token": "8a50381475ef122ed870dceb3b378cc976a53d1cbe92cdcdeaae7ec6c4e1659e1440c232d924b8a57645a2b56b4d099180bb",
    "card_number": "453245XXXXXX2692",
    "card_brand": "VISA",
    "card_country": "USA",
    "card_bank": "CITIZENS STATE BANK"
  },
  "pay_form": {
    "token": "2cf4d230f79943a49d695091bb919268"
  },
  "transactions": [
    {
      "status": "approved",
      "method": "solid-cards",
      "amount": 2575,
      "currency": "NGN",
      "type": "pay"
    },
    {
      "status": "refunded",
      "method": "solid-cards",
      "amount": 2575,
      "currency": "NGN",
      "type": "refund"
    }
  ]
}

SolidGate Status

Request in order to get current order status.

POST https://gate.solidgate.com/api/v1/status

Request parameters

ParameterMandatoryTypeDescriptionValue sample
order_idYesstring(255)Order ID specified in merchant system123443334

Request sample

{
  "order_id": "777"
}

 

    Response Body Parameters | Success

ParameterTypeDescriptionExample
orderobjectObject with information about the order 
order: order_idstringOrder ID specified in merchant system777
order: amountintegerOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents2575
order: currencystringOrder currency. 3 letter currency code under ISO-4217USD
order: statusstringOrder statuscreated
order: methodstringPayment methodsolid-cards
order: created_at StringWhen the order was created2020-07-02 23:39:06
order: updated_atStringThe last time the order was updated2020-07-08 01:40:44
order: customer_emailStringEmail of the customertest@gmail.com
order: ip_addressStringIP of the customer70.65.246.237
pay_formobject  
pay_form: tokenstringCard token being applied for recurring payments. It's returned in case of successful payment4056cd8cccf96...40015a997d74
card_tokenobject  
card_token: tokenstringCard token being applied for recurring payments. It's returned in case of successful payment ae7ab1407317e77d9d1002cb41512c5e15def5d8b1
card_token: card_numberstringCard number in an encrypted format453245XXXXXX2692
card_token: card_brandstringCard brandVISA
card_token: card_countrystringCountry of card originUSA
card_token: card_bankstringIssuing bankSTATE BANK
transactionsobjectObject with information about the transaction 
transactions: statusstringTransaction statusapproved
transactions: methodstringTransaction Payment methodsolid-cards
transactions: amountintegerTransaction amount1500
transactions: currencystringTransaction currencyNGN
transactions: typestringTransaction typepay

Response Body Sample

{
  "order": {
    "amount": 1500,
    "currency": "NGN",
    "order_id": "1513005352925widget",
    "status": "approved",
    "method": "solid-cards",
    "created_at": "2020-07-02 23:39:06",
    "updated_at": "2020-07-08 01:40:44",
    "customer_email": "test@gmail.com",
    "ip_address": "8.8.8.8",
  },
  "card_token": {
    "token": "805c558d57f50befc2d8bca4c3dcc04afcb211870637984cc6c96bd3b4e376f61c7fd2dc0ec409451c40fde7323abf54a8bf",
    "card_number": "453245XXXXXX2692",
    "card_brand": "VISA",
    "card_country": "USA",
    "card_bank": "STATE BANK"
  },
  "pay_form": {
    "token": "57c70aed87c94c6cb50cb68e64cffa91"
  },
  "transactions": [
    {
      "status": "approved",
      "method": "solid-cards",
      "amount": 1500,
      "currency": "NGN",
      "type": "pay"
    }
  ]
}

SolidGate Recurring

Operation of order initiating. It shall be used while working with a payment form.

This operation deems to create order in the system and return token being applied while calling payment form.

POST https://gate.solidgate.com/api/v1/recurring

 

    Request Body Parameters

ParameterMandatoryTypeDescriptionValue sample
amountYesintegerOrder amount - integer without fractional component (i.e., cents). For instance, 1020 means 10 USD and 20 cents1020
currencyYesstring(3)Order currency. 3 letter currency code under ISO-4217USD
payment_methodNostring(255)Payment method ( "przelewy24", "trustly", "bancontact", "giropay", "paysafecard", "sepa", "sofort", "ideal", "paypal", "yandex_money", "dcb")paypal
tokenYesstring(255)Card token that can be used for future transactions afsdgrg34g34g34g34g
customer_account_idNostring(100)Customer ID in the merchant's system. Required for Subscription Payments 4dad42f808
customer_date_of_birthNostring(50)Customer birth date in format YYYY-MM-DD2000-11-21
customer_emailYesstring(100)Customer emailjondou@gmail.com
customer_first_nameNostring(100)Customer-first nameJohn
customer_last_nameNostring(100)Customer last nameSnow
customer_phoneNostring(50)Customer telephone380111111111
geo_countryNostring(3)Customer country. Code shall be in ISO 3166-1 alpha-3 formatGBR
geo_cityNostring(100)Customer cityNew Castle
ip_addressYesstring(50)Customer IP (only public ones)8.8.8.8
languageNostring(2)Customer language settings. Available values: RU - Russian, EN - Englishen
order_idYesstring(255)Order ID specified in merchant system123443334
order_dateNostring(50)Date of order creation in format YYYY-MM-DD-HH-MM-SS2015-12-21 11:21:30
order_descriptionYesstring(255)Order description in UTF-8 codePremium package
platformYesstring(6)Customer platform at the moment of payment. Available values: WEB- desktop, MOB - mobile version, APP - applicationWEB
callback_urlNostring(255)URL of merchant page, where response with payment result will be senthttp://merchant.example/callback
return_urlNostring(255)URL of merchant page, which a customer will be redirected after completed paymenthttp://merchant.example/return
success_urlNostring(255)URL of merchant page, to which a customer will be redirected after success paymenthttp://merchant.example/success
fail_urlNostring(255)URL of merchant page, to which a customer will be redirected after unsuccess paymenthttp://merchant.example/fail

Request sample

{
  "amount": 2575,
  "payment_method": "paypal",
  "callback_url": "http://merchant.example/callback",
  "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",
  "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",
  "platform": "WEB"
}


    Response Body Parameters | Success

ParameterTypeDescriptionValue sample
orderobjectObject with information on the order 
order: order_idstringOrder ID specified in merchant system777
order: amountintegerOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents2575
order: currencystringOrder currency (3 letter code under ISO 4217)USD
order: statusstringOrder statuscreated
pay_formobjectObject with data payment form data 
pay_form: tokenstringPayment form token5849cf0468afc0ac4be4963c619b776eee75271d56e3c6621ab21

Response Body Sample | Success

{
 "order": {
 "amount": 5000,
 "currency": "USD",
  "order_id": "1504269591134TEST",
  "status": "created"
  },
 "pay_form": {
 "token": "6de603708b5b4c33a681dc1e47b20ad3"
  }
}

SolidGate - Boleto

Voucher payments and the way Brazilians pay

The Boleto Bancário is a printable voucher that Brazilians use to pay for their monthly bills, such as water and energy, or even governmental taxes or fines, and has become one of the preferred payment methods for online purchases in Brazil. Customers can pay the boleto in cash in more than 200K payment locations, or through internet banking.
 

71,1% of Brazilians who pay online with boleto do have a checking account. This shows that using this voucher is a matter of preference rather than a necessity.

38,8% of them pay with boleto because they fear credit card fraud.

/media/23/download/09-04%2012-54-47.png?v=1&inline=0

POST https://gate.solidgate.com/api/v1/init-payment

Request parameters

ParameterMandatoryTypeDescriptionValue sample
amountYesintegerOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents1000
currencyYesstring(3)Order currency. 3 letter currency code under ISO-4217BRL
customer_account_idNostringCustomer ID in the merchant's system. Required for Subscription Payments 4dad42f808
customer_date_of_birthNostringCustomer birth date in format YYYY-MM-DD2000-11-21
customer_emailYesstringCustomer email 
customer_first_nameNostringCustomer-first nameJohn
customer_last_nameNostringCustomer last nameSnow
customer_phoneNostringCustomer telephone380111111111
geo_countryNostring(3)Customer country. Code shall be in ISO 3166-1 alpha-3 formatBRA
geo_cityNostringCustomer cityNew Castle
ip_addressYesstringCustomer IP (only public ones)8.8.8.8
languageNostring(2)Customer language settings. Available values: RU - Russian, EN - Englishen
order_idYesstringOrder ID specified in merchant system123443334
order_dateNostringDate of order creation in format YYYY-MM-DD-HH-MM-SS2015-12-21 11:21:30
order_descriptionYesstringOrder description in UTF-8 codePremium package
platformYesstringCustomer platform at the moment of payment. Available values: WEB- desktop, MOB - mobile version, APP - application.WEB
payment_type_dataYesobjectObject with payment type data 
payment_type_data:brazil_cpfYesstringCPF - individual taxpayer registry identification, a number attributed by the Brazilian Federal Revenue42243309114
payment_methodYesstringPayment methodboleto
callback_urlNostringURL of merchant page, where response with payment result will be senthttp://merchant.example/callback
return_urlNostringURL of merchant page, to which a customer will be redirected after payment is completehttp://merchant.example/return
success_urlNostringURL of merchant page, to which a customer will be redirected after success paymenthttp://merchant.example/success
fail_urlNostringURL of merchant page, to which a customer will be redirected after unsuccess paymenthttp://merchant.example/fail

Request Body Sample

{
  "amount": 2500,
  "currency": "BRL",
  "customer_account_id": "1567491958095widget",
  "customer_email": "kurt.Cruickshank.toster@gmail.com",
  "customer_first_name": "John",
  "customer_last_name": "Snow",
  "customer_phone": "+380954543322",
  "geo_country": "BRA",
  "ip_address": "8.8.8.8",
  "language": "en",
  "order_description": "test",
  "order_id": "1567491958095widget",
  "order_items": "order_items",
  "platform": "WEB",
  "payment_method": "boleto",
  "payment_type_data": {
    "brazil_cpf": "42243309114"
  },
  "callback_url": "http://merchant.example/callback"
}

 

    Response Body Parameters | Success

ParameterTypeDescriptionValue sample
orderobjectObject with information of the order 
order: order_idstringOrder ID specified in merchant system777
order: amountintegerOrder amount - integer without fractional component (i.e., cents). For instance, 1020 means 10 USD and 20 cents2575
order: currencystringOrder currency (3 letter code under ISO 4217)USD
order: statusstringOrder statuscreated
pay_formobjectObject with data payment form data 
pay_form: tokenstringPayment form token5849cf0468afc0ac4be4963c619b776eee75271d56e3c6621ab21
payment_type_dataobject  
payment_type_data:idstringTicket id109/18369953-0
payment_type_data:numberstringTicket number34191091803699530044354689940002780050000015476
payment_type_data:expiration_datestringTicket expiration date2019-09-08T02:59:00+0000
payment_type_data:barcodestringTicket barcode34197800500000154761091836995300445468994000
transactionsarrayAn object with information of transactions 
transactions: statusstringTransaction status processing
transactions: methodstringTransaction methodboleto
transactions: amountintegerTransaction amount2500
transactions: currencystringTransaction currencyBRL
transactions: typestringTransaction typepay

Response Body Sample | Success

{
  "payment_type_data": {
    "id": "109/18414522-8",
    "number": "34191091804145228044354689940002880060000002500",
    "expiration_date": "2019-09-09T02:59:00+0000",
    "barcode": "34198800600000025001091841452280445468994000"
  },
  "order": {
    "amount": 2500,
    "currency": "BRL",
    "order_id": "1567491958095widget",
    "status": "processing",
    "method": "boleto"
  },
  "pay_form": {
    "token": "885262c417834dfbb8b1dfceaf119aff"
  },
  "transactions": [
    {
      "status": "processing",
      "method": "boleto",
      "amount": 2500,
      "currency": "BRL",
      "type": "pay"
    }
  ]
}

Responsive Boleto for Mobile Devices

Thinking of increasing mobile conversions, Solid improved the mobile user experience by creating a boleto 100% optimized for mobile devices.

Example of appearance for user

/media/24/download/09-04%2013-02-42.png?v=1&inline=0

Barcode needs to have the Interleaved 2 of 5 (ITF) format in order to be recognized by all Boleto Bancario barcode readers.

Refund

This is a request for transferring funds back to the cardholder.

Refunds are applicable only for successful orders.

POST https://gate.solidgate.com/api/v1/refund

 

    Request Body Parameters

ParameterMandatoryTypeDescriptionValue sample
amountYesintegerRefund amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents2575
order_idYesstring(255)Order ID specified in merchant system777
refund_type_dataYesobject  
refund_type_data:beneficiary_nameYesstring(255)User's full nameEmilia Dark
refund_type_data:bank_accountYesstring(255)User's bank account number 
refund_type_data:bank_branchYesstring(255)User's bank branch name 
refund_type_data:bankYesstring(255)User's bank name 
refund_type_data:bank_account_typeYesstring(255)Type of bank account. C: for Current accounts; S: for Savings accounts; I: International accountsC
refund_type_data:descriptionNostring(255)Description of the refund 

Request Sample

{
  "amount": 2575,
  "order_id": "777",
  "payment_type_data": {},
  "refund_type_data": {
    "beneficiary_name": "Emilia Dark",
    "bank_account": "account",
    "bank_branch": "branch",
    "bank": "bank",
    "bank_account_type": "C",
    "description": "description"
  }
}

 

    Response Body Parameters

ParameterTypeDescriptionValue sample
orderobjectObject with information about the order 
order: order_idstringOrder ID specified in merchant system777
order: amountintegerOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents2575
order: currencystringOrder currency. 3 letter currency code under ISO-4217BRL
order: statusstringTransaction statusrefunded
order: methodstringPayment methodsolid-cards
order:processing_amountstringAmount in processing currency2575
order: processing_currencystringProcessing currencyBRL
pay_formobject  
pay_form: tokenstringCard token being applied for recurring payments. It's returned in case of successful payment4056cd8cccf96...40015a997d74
card_tokenobject  
card_token:tokenstringCard token being applied for recurring payments. It's returned in case of successful payment. ae7ab1407317e77d9d1002cb41512c5e15def5d8b1
card_token: card_numberstringCard number in an encrypted format.453245XXXXXX2692
card_token: card_brandstringCard brandVISA
card_token: card_countrystringCountry of card originNGN
card_token: card_bankstringIssuing bankCITIZENS STATE BANK
transactionsobject  
transactions: statusstringTransaction statusapproved
transactions: methodstringPayment methodsolid-cards
transactions: amountstringOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents.2575
transactions: currencystringOrder currency. 3 letter currency code under ISO-4217BRL
transactions: typestringType of transactionrefund
payment_type_dataobject  
payment_type_data: idstringTicket id109/32588901-5
payment_type_data: numberstringTicket number34191093215889015044254689940002681130000050000
payment_type_data: expiration_datestringTicket expiration date2019-12-25T01:59:00+0000
payment_type_data: barcodestringTicket barcode34196811300000500001093258890150445468994000

Response Sample | Success

{
  "payment_type_data": {
    "id": "109/32588901-5",
    "number": "34191093215889015044254689940002681130000050000",
    "expiration_date": "2019-12-25T01:59:00+0000",
    "barcode": "34196811300000500001093258890150445468994000"
  },
  "order": {
    "amount": 2575,
    "currency": "BRL",
    "order_id": "1576766096183widget",
    "status": "refunded",
    "method": "boleto"
  },
  "pay_form": {
    "token": "7df93d046e76442aa585bddbf6d8d44b"
  },
  "transactions": [
    {
      "status": "success",
      "method": "boleto",
      "amount": 2575,
      "currency": "BRL",
      "type": "pay"
    },
    {
      "status": "success",
      "method": "boleto",
      "amount": 2575,
      "currency": "BRL",
      "type": "refund"
    }
  ]
}

SolidGate - OXXO

/media/42/download/OXXO_big.png?v=1&inline=0

The payment method OXXO gives you access to the redirect solution. The API returns a return_url, for redirection of the user to a Solid-hosted page. The user will be able to see the ticket to pay or print it.

During using the Redirect method, the payment will have the "status = Pending" until the user pays the ticket, and Solid gets notified about it.

POST https://gate.solidgate.com/api/v1/init-payment

Reuest Body Parametrs | OXXO

ParameterMandatoryTypeDescriptionValue sample
order_idYesStringOrder ID specified in merchant system123443334
amountYesIntegerOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 MXN and 20 cents1020
currencyYesString(3)Order currency. 3 letter currency code under ISO-4217MXN
payment_methodYesStringPayment method — "OXXO"OXXO
payment_type_dataYesobjectObject with information about the payment 
payment_type_data:mexico_curpYesStringUnique Population Registry CodeZAZD801124MBSYQN13
customer_emailYesStringCustomer emailjondou@gmail.com
ip_addressYesStringCustomer IP (only public ones)8.8.8.8
order_descriptionYesStringOrder description in UTF-8 codePremium package
platformYesStringCustomer platform at the moment of payment. Available values: WEB - desktop, MOB - mobile version, APP - applicationWEB
geo_countryYesString(3)Customer country. Code shall be in ISO 3166-1 alpha-3 format.MX

Reuest Sample | OXXO

{
"order_id": "123443334"
"amount": 1020
"currency": "MXN"
"payment_method": "OXXO"
"payment_type_data": {
"mexico_curp": "ZAZD801124MBSYQN13"
},
"customer_email": "jondou@gmail.com"
"ip_address": "8.8.8.8"
"order_description": "Premium package"
"platform": "WEB"
"geo_country": "MX"
}

Response Body Parameters | OXXO

ParameterTypeDescriptionValue sample
orderobjectObject with information about the order 
order: order_idstringOrder ID specified in merchant system123443334
order: amountintegerOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents1020
order: currencystringOrder currency. 3 letter currency code under ISO-4217MXN
order: statusstringTransaction statusprocessing
order: methodstringPayment methodOXXO
order: customer_emailStringCustomer emailjondou@gmail.com
order: ip_addressStringCustomer IP (only public ones)8.8.8.8
order: order_descriptionStringOrder description in UTF-8 codePremium package
order: created_atStringDate of payment creation2021-11-02 14:27:53
order: updated_atStringDate of payment update2021-11-02 14:27:54
transactionsobject  
transactions: idstringTransaction ID123456789
transactions: statusstringTransaction statusprocessing
transactions: methodstringPayment methodsolid-cards
transactions: amountstringOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents.1020
transactions: currencystringOrder currency. 3 letter currency code under ISO-4217MXN
transactions: typestringType of transactionpay
transactions: created_atstringDate of payment creation2021-11-02 14:27:53
return_urlstringreturn_url is used to redirect the user to a Solid-hosted pagehttps://solid.return_url.com

Response Sample | OXXO

{
order":
"amount": 1020
"currency": "MXN"
"order_id": "123443334"
"status": "processing"
"method": "oxxo"
"customer_email": "jondou@gmail.com"
"ip_address": "8.8.8.8"
"order_description": "Premium package"
"created_at": "2021-11-02 14:27:53"
"updated_at": "2021-11-02 14:27:54"
"transactions": [
"id": "123456789"
"status": "processing"
"method": "oxxo"
"amount": 1020
"currency": "MXN"
"type": "pay"
"created_at": "2021-11-02 14:27:53"
"return_url": "https://solid.return_url.com"
]
}

SolidGate - Callbacks

SolidGate can notify merchants about different events taking place with orders. Callback notification shall be sent with a POST request to URL specified by merchant. The JSON format is applicable.

The following notification types are applicable:

Order status Callback - notification about any order status change

In order to apply the function of notification on status changes, the merchant is required to send filled attribute callback_url during the initial request (Callback URL is web-resource address on merchant end). POST requests in JSON format will be sent to this URL. These requests are notifications regarding the current order status.

 

    Request Body Parameters

ParametersTypeDescriptionValue Sample
orderobjectObject with information about the order 
order:order_idstringOrder ID specified in merchant system777
order:amountstringOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents2575
order:currencystringOrder currency. 3 letter currency code under ISO-4217USD
order:statusstringTransaction statusapproved
order: methodstringPayment methodsolid-cards
order: processing_amountstringAmount in processing currency2575
order: processing_currencystringProcessing currencyNGN
pay_formobjectObject with information about payment form 
pay_form: tokenstringPayment form token5849cf0468afc...c6621ab21
card_tokenobject  
card_token: tokenstringCard number in encrypted format ae7ab1407317e77d9d1002cb41512c5e15def5d8b1
card_token: card_numberstringCard number453245XXXXXX2692
card_token: card_brandstringCard brandVISA
card_token: card_countrystringCountry of card originUSA
card_token: card_bankstringIssuing bankSTATE BANK
transactionsobject  
transactions: statusstringTransaction statusapproved
transactions: methodstringPayment methodsolid-cards
transactions: amountstringOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents.2575
transactions: currencystringOrder currency. 3 letter currency code under ISO-4217NGN
transactions: typestringType of transactionpay

Request Sample | Success

{
  "order": {
    "amount": 1500,
    "currency": "NGN",
    "order_id": "1555932951120widget",
    "status": "approved",
    "method": "solid-cards",
    "processing_amount": "5",
    "processing_currency": "USD"
  },
  "card_token": {
    "token": "7fa26c8feb7593a6eb3eed508651d65a8a4aa5f860f30fe382d879f9d2b478f8f95e3aabb5ef304148d1ae15fd4b04104438",
    "card_number": "453245XXXXXX2692",
    "card_brand": "VISA",
    "card_country": "USA",
    "card_bank": "CITIZENS STATE BANK"
  },
  "pay_form": {
    "token": "d9ecff062860423f87bba5f9cce5afcf"
  },
  "transactions": [
    {
      "status": "success",
      "method": "solid-cards",
      "amount": 1500,
      "currency": "NGN",
      "type": "pay"
    }
  ]
}

SolidGate Init-Payment M-PESA

Operation of order initiating. It shall be used while working with a payment widget. 

This operation deems to create order in the system and return token being applied while calling a payment widget.

POST https://gate.solidgate.com/api/v1/init-payment

 

    Request Body Parameters | M-PESA

ParameterMandatoryTypeDescriptionValue sample
order_idYesStringOrder ID specified in merchant system4762dc9
amountYesIntegerOrder amount - integer without fractional component (i.e cents). For instance, 5020 means 50 USD and 20 cents5020
currencyYesString(3)Order currency. 3 letter currency code under ISO-4217KES
customer_phoneYesStringCustomer telephone (Mandatory for KEN)254426327283
customer_emailYesStringCustomer emailjohn-snow@gmail.com
payment_methodNoStringPayment method — "mpesa"mpesa
ip_addressYesStringCustomer IP (only public ones)8.8.8.8
order_descriptionYesStringOrder description in UTF-8 codePremium package
platformYesStringCustomer platform at the moment of payment. Available values: WEB- desktop, MOB - mobile version, APP - applicationWEB
geo_countryYesString(3)Customer country. Code shall be in ISO 3166-1 alpha-3 format. KEN
customer_first_nameNoStringCustomer's first nameJohn
customer_last_nameNoStringCustomer last nameSnow

Reuest Sample | M-PESA

{
order_id: "4762dc9",
amount: 5020,
currency: "KES",
customer_phone: "254754541123",
payment_method: "mpesa",
customer_email: "john-snow@gmail.com",
ip_address: "8.8.8.8",
order_description: "Premium package",
platform: "WEB",
geo_country: "KEN",
customer_first_name: "John",
customer_last_name: "Snow"
}

 

    Response Body Parameters | M-PESA

ParameterTypeDescriptionValue sample
payment_type_dataobjectObject with information about the payment dataYour customers could complete payments in two ways. First method — pop-up message on phone. The second way — manual one. 
* See more information under the table. *
orderobjectObject with information about the order 
order: order_idstringOrder ID specified in merchant system4762dc9
order: amountintegerOrder amount - integer without fractional component (i.e cents). For instance, 5020 means 50 USD and 20 cents5020
order: currencystringOrder currency. 3 letter currency code under ISO-4217KES
order: statusstringTransaction statusrefunded
order: methodstringPayment methodsolid-cards
order: customer_emailstringCustomer emailjohn-snow@gmail.com
order: ip_addressstringCustomer IP (only public ones)8.8.8.8
order: order_descriptionstringOrder description in UTF-8 codePremium package
order: created_atstringDate of payment creation2021-10-06 11:26:45
order: updated_atstringDate of payment update2021-10-06 11:26:48
transactionsobjectObject with information about the transaction 
transactions: statusstringTransaction statusapproved
transactions: methodstringPayment methodsolid-cards
transactions: amountstringOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents.5000
transactions: currencystringOrder currency. 3 letter currency code under ISO-4217KES
transactions: typestringType of transactionrefund
transactions: created_atstringDate of payment creation2021-10-06 11:26:45

* Your customers could complete payments in two ways.

First method — pop-up message on phone. A pop-up message will appear at a user device, and the user must complete verification by instruction from a pop-up. So the customer will receive an M-PESA prompt on his phone requesting him to enter M-PESA PIN to complete payment. Unfortunately, some phones don't support this flow.

The second way — manual one. For manual scenario, you should show the next message that you will receive with every transaction:
“You can also pay using Lipa na MPESA by using the following instructions:
1. Go to the M-PESA menu.
2. Select Lipa na M-PESA.
3. Select the Paybill option.
4. Enter business number 9****3.
5. Enter your account number R18****18.
6. Enter the amount — 10.
7. Enter PIN and press OK to send.
8. You will receive a confirmation SMS with your payment reference number.”

Response Sample

{
    payment_type_data: {
        instruction_html: "Dear Customer, Shortly you will receive an M-PESA prompt on your phone requesting you to enter your M-PESA PIN to complete your payment. Please ensure your phone is on and unlocked to enable you to complete the process. Thank you. You can also pay using Lipa na MPESA by using the following instructions: 1. Go to the M-PESA menu. 2. Select Lipa na M-PESA. 3. Select the Paybill option. 4. Enter business number 9****3. 5. Enter your account number R18****18. 6. Enter the amount — 10. 7. Enter PIN and press OK to send. 8. You will receive a confirmation SMS with your payment reference number."
    },
    order: {
        amount: 5000,
        currency: "KES",
        order_id: "4762dc9",
        status: "processing",
        method: "mpesa",
        customer_email: "john-snow@gmail.com",
        ip_address: "8.8.8.8",
        order_description: "order_description",
        created_at: "2021-10-06 11:26:45",
        updated_at: "2021-10-06 11:26:48"
    },
    transactions: [
        {
            id: "93865c0a-cee4-4d9e-9577-c650c3f34e91",
            status: "processing",
            method: "mpesa",
            amount: 5020,
            currency: "KES",
            type: "pay",
            created_at: "2021-10-06 11:26:45"
        }
    ]
}

SolidGate Init-Payment SEPA

Operation of order initiating. It shall be used while working with a payment widget.  This operation deems to create order in the system and return token being applied while calling a payment widget.

POST https://gate.solidgate.com/api/v1/init-payment

 SEPA Request Body Parameters

ParameterMandatoryTypeDescriptionValue sample
payment_methodYesStringPayment methodsepa
payment_type_dataYesObjectObject with payment type data 
payment_type_data:ibanYesStringInternational Bank Account NumberDE52100100101234567892
customer_first_nameYesStringCustomer's first nameJohn
customer_last_nameYesStringCustomer last nameSnow
geo_countryNoString(3)Customer country. Code shall be in ISO 3166-1 alpha-3 format. GBR
geo_cityYesStringCustomer cityNew Castle
zip_codeYesStringParameter for identifying a location. 10005
addressYesStringPayer AddressKyrilivska
amountYesIntegerOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents1020
currencyYesString(3)Order currency. 3 letter currency code under ISO-4217USD
customer_account_idNoStringCustomer ID in the merchant's system. Required for Subscription Payments 4dad42f808
customer_date_of_birthNoStringCustomer birth date in format YYYY-MM-DD2000-11-21
customer_emailNoStringCustomer emailjondou@gmail.com
customer_phoneNoStringCustomer telephone 380111111111
ip_addressYesStringCustomer IP (only public ones)8.8.8.8
languageNoString(2)Customer language settings. Available values: RU - Russian, EN - Englishen
order_idYesStringOrder ID specified in merchant system123443334
order_dateNoStringDate of order creation in format YYYY-MM-DD-HH-MM-SS2015-12-21 11:21:30
order_descriptionYesStringOrder description in UTF-8 codePremium package
platformYesStringCustomer platform at the moment of payment. Available values: WEB- desktop, MOB - mobile version, APP - applicationWEB
fail_urlNoString URL of merchant page, to which a customer will be redirected after unsuccessful paymenthttp://merchant.example/fail
return_urlNoStringURL of merchant page, to which a customer will be redirected after payment is completehttp://merchant.example/return
success_urlNoStringURL of merchant page, to which a customer will be redirected after successful paymenthttp://merchant.example/success
callback_urlNoStringURL of merchant page, where response with payment result will be senthttp://merchant.example/callback

Successful Request Sample

{
  "order_id": "295",
  "amount": 1000,
  "currency": "EUR",
  "payment_method": "sepa",
  "order_description": "Premium package",
  "customer_email": "example.user@example-email.com",
  "customer_first_name": "Alex",
  "customer_last_name": "Show",
  "ip_address": "8.8.8.8",
  "platform": "WEB",
  "geo_country": "GBR",
  "geo_city": "Kyiv",
  "customer_account_id": 12,
  "return_url": "https://return.solidgate.com",
  "zip_code": "11111",
  "address": "Vashyngton str. 1",
  "payment_type_data": {
      "iban": "DE52100100101234567892"
  }
}

 

    SEPA Response Body Parameters

ParameterTypeDescriptionValue sample
orderObjectObject with information of the order  
order: amountIntegerOrder amount - integer without fractional component (i.e cents). For instance, 1020 means 10 USD and 20 cents 1020
order: currencyStringOrder currency (3 letter code under ISO 4217) USD
order: order_idStringOrder ID specified in merchant system 10918369953
order: statusStringOrder status created
Others parameters * See Init Payment Response Body Parameters 

Successful Response Sample

{
  "order": {
    "amount": 1000,
    "currency": "EUR",
    "order_id": "295",
    "status": "processing",
    "method": "sepa",
    "token": "377fd15f056396919b1b2204803a9f6b5513541c9ee22fb298c92881614340a02a2c15a2e90b7683cb1974c9a3421bfd540c",
    "customer_email": "example.user@example-email.com",
    "ip_address": "8.8.8.8",
    "order_description": "Premium package",
    "created_at": "2021-11-22 16:40:49",
    "updated_at": "2021-11-22 16:40:50"
  },
  "transactions": [
    {
      "id": "e008b1be-7481-4c0c-8c27-f853d4ca33fb",
      "status": "processing",
      "method": "sepa",
      "amount": 1000,
      "currency": "EUR",
      "type": "pay",
      "created_at": "2021-11-22 16:40:49"
    }
  ]
}

If you want to test the different use cases for SEPA payment, please use the following test IBANs. These IBANs have a valid checksum and should be supplied when creating a new mandate.

 

    Test IBAN List (only for Sandbox accounts)

IBANDescription
DE09100100101234567890The customer's mandate and payment can't be set up because their bank details are invalid. Payment not accepted.
DE79100100101234567891The customer's payment is accepted, but not collected yet. The mandate is marked as activated. The payment will remain on Status 1 (accepted).
DE52100100101234567892The customer's payment is accepted but then canceled before collection. The mandate is marked as activated. The payment is marked as Status 1 (accepted), then Status 2 (canceled).
DE25100100101234567893The customer's payment is collected successfully and paid out to you. The mandate is marked as activated. The payment is marked as Status 1 (accepted), then Status 3 (paid).
DE95100100101234567894The customer’s payment is provided to the bank successfully but is then charged back due to a request by a merchant. The mandate is marked as activated. The payment is marked as Status 1 (accepted), then Status 3 (paid). Finally, the payment is marked as Status 4 (charge-back) with Token (RFND).
DE68100100101234567895The customer's payment is collected successfully but is then charged back by the customer disputing it with their bank (actively initiated by the customer). The mandate is marked as activated. The payment is marked as status 1 (accepted), then status 3 (paid). Finally, the payment is marked as status 4 (chargeback) with the token (ACT).
DE41100100101234567896The customer's payment is provided to the bank successfully but is then charged back by their bank due to no sufficient funds. The mandate is marked as activated. The payment is marked as Status 1 (accepted), then Status 3 (paid). Finally, the payment is marked as Status 4 (chargeback) with Token (NSF).
DE14100100101234567897The customer's payment is provided to the bank successfully but is then charged back by the bank due to other reasons (no bank account, saving account). The mandate is marked as activated. The payment is marked as Status 1 (accepted), then Status 3 (paid). Finally, the payment is marked as Status 4 (chargeback) with Token (OTHR).
DE84100100101234567898The customer's payment is provided to the bank successfully but is then charged back by the bank due to format errors. The mandate is marked as activated. The payment is marked as Status 1 (accepted), then Status 3 (paid). Finally, the payment is marked as Status 4 (chargeback) with Token (FRM).