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.

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 (see below)
billing_addressobjectConditionalBilling address — top-level object, not nested inside customer (see below)
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): payment_public_id + order.number + order.amount + order.currency + 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
addressstringFull address, including the street number, e.g. Av Arequipa 1234. There is no separate field for the number
zipstringPostal code
phonestringCustomer's phone number

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.