Skip to main content

Create session (Authentication request)

POST /api/v1/session

The merchant sends an authentication request and, on a successful response, receives a redirect_url — the link to the Checkout page. The session expires in 1 hour (configurable).

info

One link corresponds to a single payment. The link is invalidated after a successful payment.

Common parameters (all operations)

ParameterTypeRequiredDescription
merchant_keystringYesMerchant identification key
operationstringYespurchase
methodsarrayNoPayment methods allowed on the page. Optional — if omitted, pre-routing rules apply
orderobjectYesOrder details (see below)
cancel_urlstringNoReturn URL if the payment is cancelled/declined
success_urlstringYesReturn URL after a successful payment (max 1024)
error_urlstringNoReturn URL on a Checkout technical error
customerobjectConditionalCustomer details
billing_addressobjectConditionalBilling address — top-level object, not nested inside customer
recurring_initbooleanNoInitializes a recurring transaction
req_tokenbooleanNoRequests card tokenization
hashstringYesSpecial signature used to validate your request to the Payments Platform. See the Signature section. Must be the SHA1 of the MD5-encoded string (uppercased): recurring_init_trans_id + recurring_token + order.number + order.amount + order.description + merchant_pass

order object

FieldTypeRequiredDescription
numberstringYesOrder ID in your system (max 255, recommended unique per attempt)
amountstringYes*Amount. Check with S-interio, as each country has its own enabled amount limit
currencystringYesISO 4217. 3 chars for fiat, 3–6 chars for crypto
descriptionstringYesProduct name (min 2, max 1024)

customer object

FieldTypeDescription
namestringCustomer's full name. Must follow the first name + last name format, e.g. Juan Ramon Perez — no more than 3 fields (words) and no special characters
emailstringEmail

billing_address object

FieldTypeDescription
countrystringCountry code, 2 letters (ISO 3166-1 alpha-2)
statestring2 letters — fixed list only for USA, Canada, Australia, Japan, India
citystringCity
districtstringDistrict/neighbourhood
addressstringAddress
house_numberstringHouse number
zipstringPostal code
phonestringCustomer's phone number
phone_country_codestringPhone country code, e.g. +380

The billing_address object must look like this:

"billing_address": {
"country": "MX",
"state": "Ciudad de Mexico",
"city": "Ciudad de Mexico",
"address": "Av Arequipa 1234",
"zip": "06000",
"phone": "+524424667608"
}
warning

phone must include the country dialling code (e.g. +52 for Mexico).

Example request

View request
{
"merchant_key": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"operation": "purchase",
"order": {
"number": "1",
"amount": "150000.00",
"currency": "ARS",
"description": "Purchase"
},
"cancel_url": "https://example.com/cancel",
"success_url": "https://example.com/success",
"error_url": "https://example.com/error",
"customer": {
"name": "Test Name",
"email": "test-s-interio@example.com"
},
"billing_address": {
"country": "AR",
"state": "Cordoba",
"city": "Cordoba",
"address": "Av Arequipa 1234",
"zip": "5000",
"phone": "+5493482747561"
},
"recurring_init": true,
"req_token": true,
"hash": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}

Successful response

{
"redirect_url": "{{CHECKOUT_HOST}/auth/ZXlKMGVYQWlPaUpLVjFRaUxDSmhiR2NpT2lKU1V6STFOaUo5..."
}
info

In the real response, redirect_url carries a long JWT/token as part of the path (/auth/{token}), not a short ID like abc123xyz. It is a signed token that Checkout generates and validates internally — you do not need to decode it, just redirect the customer to that full URL.

Customer return after payment

Once the payment is complete, the customer is redirected to the URL given in success_url or cancel_url.

About cancel_url

The return to cancel_url with parameters only happens if there was a decline and the payer closed the payment form (not the browser tab). If the payer closes the form without having pressed the PAY button, the redirect to cancel_url happens without additional parameters.

If a field is missing

If any request parameter is not sent and the payment method requires it, the field is shown directly on the Checkout Page for the customer to fill in.