Create a checkout session
Creates one payment journey on a checkout and returns the checkoutUrl to send the payer to. SHOPPING pays for a basket into the merchant’s settlement account; TOP_UP pays into an APPROVED payee. Returns 201 for a new session, or 200 with the original session when idempotencyKey was already used on this account. Returns 400 if the payee is not APPROVED or the currency does not match the checkout, and 404 if the checkout or payee is not on the account. Nothing is created when validation fails.
curl --request POST \
--url 'https://api.equalsmoney.com/v2/roqqett/checkout-sessions?accountId={{accountId}}' \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"checkoutId": "6f1c2d0e-7a4b-4e2f-9c1d-3b5a7e9f0a12",
"idempotencyKey": "3f9a1c2e-7b4d-4e8a-9c6f-0d2b5a8e1f47",
"merchantReference": "ORDER-10421",
"bankReference": "ORDER-10421",
"description": "Order ORDER-10421",
"returnUrl": "https://shop.example.com/checkout/complete",
"locale": "en-GB",
"expiresAt": "2026-10-02T13:00:00Z"
}
'import requests
url = "https://api.equalsmoney.com/v2/roqqett/checkout-sessions"
payload = {
"type": "SHOPPING",
"checkoutId": "6f1c2d0e-7a4b-4e2f-9c1d-3b5a7e9f0a12",
"idempotencyKey": "3f9a1c2e-7b4d-4e8a-9c6f-0d2b5a8e1f47",
"merchantReference": "ORDER-10421",
"bankReference": "ORDER-10421",
"amount": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"description": "Order ORDER-10421",
"returnUrl": "https://shop.example.com/checkout/complete",
"locale": "en-GB",
"expiresAt": "2026-10-02T13:00:00Z",
"basket": { "items": [
{
"name": "Linen shirt",
"description": "Size M, blue",
"quantity": 2,
"unitPrice": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"imageUrl": "https://shop.example.com/images/shirt.png",
"productId": "SKU-1001",
"lineId": "1",
"taxRate": 20,
"taxAmount": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"total": {
"amount": "10000.00",
"currencyCode": "GBP"
}
}
] },
"shipping": {
"amount": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"address": {
"streetName": "Upper Thames Street",
"buildingNumber": "68",
"buildingName": "Vintners Place",
"postcode": "EC4V 3BJ",
"city": "London",
"region": "Greater London",
"countryCode": "GB"
},
"serviceName": "Tracked 48",
"serviceCode": "RM-T48",
"description": "Delivered in 2 working days",
"taxRate": 20,
"minDeliveryDate": "2026-10-12",
"maxDeliveryDate": "2026-10-14"
}
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
type: 'SHOPPING',
checkoutId: '6f1c2d0e-7a4b-4e2f-9c1d-3b5a7e9f0a12',
idempotencyKey: '3f9a1c2e-7b4d-4e8a-9c6f-0d2b5a8e1f47',
merchantReference: 'ORDER-10421',
bankReference: 'ORDER-10421',
amount: {amount: '10000.00', currencyCode: 'GBP'},
description: 'Order ORDER-10421',
returnUrl: 'https://shop.example.com/checkout/complete',
locale: 'en-GB',
expiresAt: '2026-10-02T13:00:00Z',
basket: {
items: [
{
name: 'Linen shirt',
description: 'Size M, blue',
quantity: 2,
unitPrice: {amount: '10000.00', currencyCode: 'GBP'},
imageUrl: 'https://shop.example.com/images/shirt.png',
productId: 'SKU-1001',
lineId: '1',
taxRate: 20,
taxAmount: {amount: '10000.00', currencyCode: 'GBP'},
total: {amount: '10000.00', currencyCode: 'GBP'}
}
]
},
shipping: {
amount: {amount: '10000.00', currencyCode: 'GBP'},
address: {
streetName: 'Upper Thames Street',
buildingNumber: '68',
buildingName: 'Vintners Place',
postcode: 'EC4V 3BJ',
city: 'London',
region: 'Greater London',
countryCode: 'GB'
},
serviceName: 'Tracked 48',
serviceCode: 'RM-T48',
description: 'Delivered in 2 working days',
taxRate: 20,
minDeliveryDate: '2026-10-12',
maxDeliveryDate: '2026-10-14'
}
})
};
fetch('https://api.equalsmoney.com/v2/roqqett/checkout-sessions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.equalsmoney.com/v2/roqqett/checkout-sessions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'type' => 'SHOPPING',
'checkoutId' => '6f1c2d0e-7a4b-4e2f-9c1d-3b5a7e9f0a12',
'idempotencyKey' => '3f9a1c2e-7b4d-4e8a-9c6f-0d2b5a8e1f47',
'merchantReference' => 'ORDER-10421',
'bankReference' => 'ORDER-10421',
'amount' => [
'amount' => '10000.00',
'currencyCode' => 'GBP'
],
'description' => 'Order ORDER-10421',
'returnUrl' => 'https://shop.example.com/checkout/complete',
'locale' => 'en-GB',
'expiresAt' => '2026-10-02T13:00:00Z',
'basket' => [
'items' => [
[
'name' => 'Linen shirt',
'description' => 'Size M, blue',
'quantity' => 2,
'unitPrice' => [
'amount' => '10000.00',
'currencyCode' => 'GBP'
],
'imageUrl' => 'https://shop.example.com/images/shirt.png',
'productId' => 'SKU-1001',
'lineId' => '1',
'taxRate' => 20,
'taxAmount' => [
'amount' => '10000.00',
'currencyCode' => 'GBP'
],
'total' => [
'amount' => '10000.00',
'currencyCode' => 'GBP'
]
]
]
],
'shipping' => [
'amount' => [
'amount' => '10000.00',
'currencyCode' => 'GBP'
],
'address' => [
'streetName' => 'Upper Thames Street',
'buildingNumber' => '68',
'buildingName' => 'Vintners Place',
'postcode' => 'EC4V 3BJ',
'city' => 'London',
'region' => 'Greater London',
'countryCode' => 'GB'
],
'serviceName' => 'Tracked 48',
'serviceCode' => 'RM-T48',
'description' => 'Delivered in 2 working days',
'taxRate' => 20,
'minDeliveryDate' => '2026-10-12',
'maxDeliveryDate' => '2026-10-14'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.equalsmoney.com/v2/roqqett/checkout-sessions"
payload := strings.NewReader("{\n \"type\": \"SHOPPING\",\n \"checkoutId\": \"6f1c2d0e-7a4b-4e2f-9c1d-3b5a7e9f0a12\",\n \"idempotencyKey\": \"3f9a1c2e-7b4d-4e8a-9c6f-0d2b5a8e1f47\",\n \"merchantReference\": \"ORDER-10421\",\n \"bankReference\": \"ORDER-10421\",\n \"amount\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"description\": \"Order ORDER-10421\",\n \"returnUrl\": \"https://shop.example.com/checkout/complete\",\n \"locale\": \"en-GB\",\n \"expiresAt\": \"2026-10-02T13:00:00Z\",\n \"basket\": {\n \"items\": [\n {\n \"name\": \"Linen shirt\",\n \"description\": \"Size M, blue\",\n \"quantity\": 2,\n \"unitPrice\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"imageUrl\": \"https://shop.example.com/images/shirt.png\",\n \"productId\": \"SKU-1001\",\n \"lineId\": \"1\",\n \"taxRate\": 20,\n \"taxAmount\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"total\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n }\n }\n ]\n },\n \"shipping\": {\n \"amount\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"address\": {\n \"streetName\": \"Upper Thames Street\",\n \"buildingNumber\": \"68\",\n \"buildingName\": \"Vintners Place\",\n \"postcode\": \"EC4V 3BJ\",\n \"city\": \"London\",\n \"region\": \"Greater London\",\n \"countryCode\": \"GB\"\n },\n \"serviceName\": \"Tracked 48\",\n \"serviceCode\": \"RM-T48\",\n \"description\": \"Delivered in 2 working days\",\n \"taxRate\": 20,\n \"minDeliveryDate\": \"2026-10-12\",\n \"maxDeliveryDate\": \"2026-10-14\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.equalsmoney.com/v2/roqqett/checkout-sessions")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"SHOPPING\",\n \"checkoutId\": \"6f1c2d0e-7a4b-4e2f-9c1d-3b5a7e9f0a12\",\n \"idempotencyKey\": \"3f9a1c2e-7b4d-4e8a-9c6f-0d2b5a8e1f47\",\n \"merchantReference\": \"ORDER-10421\",\n \"bankReference\": \"ORDER-10421\",\n \"amount\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"description\": \"Order ORDER-10421\",\n \"returnUrl\": \"https://shop.example.com/checkout/complete\",\n \"locale\": \"en-GB\",\n \"expiresAt\": \"2026-10-02T13:00:00Z\",\n \"basket\": {\n \"items\": [\n {\n \"name\": \"Linen shirt\",\n \"description\": \"Size M, blue\",\n \"quantity\": 2,\n \"unitPrice\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"imageUrl\": \"https://shop.example.com/images/shirt.png\",\n \"productId\": \"SKU-1001\",\n \"lineId\": \"1\",\n \"taxRate\": 20,\n \"taxAmount\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"total\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n }\n }\n ]\n },\n \"shipping\": {\n \"amount\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"address\": {\n \"streetName\": \"Upper Thames Street\",\n \"buildingNumber\": \"68\",\n \"buildingName\": \"Vintners Place\",\n \"postcode\": \"EC4V 3BJ\",\n \"city\": \"London\",\n \"region\": \"Greater London\",\n \"countryCode\": \"GB\"\n },\n \"serviceName\": \"Tracked 48\",\n \"serviceCode\": \"RM-T48\",\n \"description\": \"Delivered in 2 working days\",\n \"taxRate\": 20,\n \"minDeliveryDate\": \"2026-10-12\",\n \"maxDeliveryDate\": \"2026-10-14\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.equalsmoney.com/v2/roqqett/checkout-sessions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"SHOPPING\",\n \"checkoutId\": \"6f1c2d0e-7a4b-4e2f-9c1d-3b5a7e9f0a12\",\n \"idempotencyKey\": \"3f9a1c2e-7b4d-4e8a-9c6f-0d2b5a8e1f47\",\n \"merchantReference\": \"ORDER-10421\",\n \"bankReference\": \"ORDER-10421\",\n \"amount\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"description\": \"Order ORDER-10421\",\n \"returnUrl\": \"https://shop.example.com/checkout/complete\",\n \"locale\": \"en-GB\",\n \"expiresAt\": \"2026-10-02T13:00:00Z\",\n \"basket\": {\n \"items\": [\n {\n \"name\": \"Linen shirt\",\n \"description\": \"Size M, blue\",\n \"quantity\": 2,\n \"unitPrice\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"imageUrl\": \"https://shop.example.com/images/shirt.png\",\n \"productId\": \"SKU-1001\",\n \"lineId\": \"1\",\n \"taxRate\": 20,\n \"taxAmount\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"total\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n }\n }\n ]\n },\n \"shipping\": {\n \"amount\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"address\": {\n \"streetName\": \"Upper Thames Street\",\n \"buildingNumber\": \"68\",\n \"buildingName\": \"Vintners Place\",\n \"postcode\": \"EC4V 3BJ\",\n \"city\": \"London\",\n \"region\": \"Greater London\",\n \"countryCode\": \"GB\"\n },\n \"serviceName\": \"Tracked 48\",\n \"serviceCode\": \"RM-T48\",\n \"description\": \"Delivered in 2 working days\",\n \"taxRate\": 20,\n \"minDeliveryDate\": \"2026-10-12\",\n \"maxDeliveryDate\": \"2026-10-14\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "0b8e5c3a-2f1d-4c6b-8a9e-7d4f2c1b0a93",
"type": "SHOPPING",
"status": "OPEN",
"checkoutId": "6f1c2d0e-7a4b-4e2f-9c1d-3b5a7e9f0a12",
"merchantReference": "ORDER-10421",
"bankReference": "ORDER-10421",
"description": "Order ORDER-10421",
"amount": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"payeeId": "d2a7c9e1-5b3f-4a8d-9e6c-1f0b2a4c8e57",
"basket": {
"items": [
{
"name": "Linen shirt",
"description": "Size M, blue",
"quantity": 2,
"unitPrice": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"imageUrl": "https://shop.example.com/images/shirt.png",
"productId": "SKU-1001",
"lineId": "1",
"taxRate": 20,
"taxAmount": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"total": {
"amount": "10000.00",
"currencyCode": "GBP"
}
}
],
"subtotal": {
"amount": "10000.00",
"currencyCode": "GBP"
}
},
"shipping": {
"amount": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"address": {
"streetName": "Upper Thames Street",
"buildingNumber": "68",
"buildingName": "Vintners Place",
"postcode": "EC4V 3BJ",
"city": "London",
"region": "Greater London",
"countryCode": "GB"
},
"serviceName": "Tracked 48",
"serviceCode": "RM-T48",
"description": "Delivered in 2 working days",
"taxRate": 20,
"minDeliveryDate": "2026-10-12",
"maxDeliveryDate": "2026-10-14"
},
"locale": "en-GB",
"checkoutUrl": "https://pay.roqqett.com/ch/pay/s/0b8e5c3a-2f1d-4c6b-8a9e-7d4f2c1b0a93",
"returnUrl": "https://shop.example.com/checkout/complete",
"paymentId": "9c4e1a7b-3d2f-4b6a-8e5c-0f7d2a9b1c34",
"orderId": "7e2b9d4a-6c1f-4a5e-8b3d-2f9c0a1e6b78",
"expiresAt": "2026-10-02T13:00:00Z",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
}{
"id": "0b8e5c3a-2f1d-4c6b-8a9e-7d4f2c1b0a93",
"type": "SHOPPING",
"status": "OPEN",
"checkoutId": "6f1c2d0e-7a4b-4e2f-9c1d-3b5a7e9f0a12",
"merchantReference": "ORDER-10421",
"bankReference": "ORDER-10421",
"description": "Order ORDER-10421",
"amount": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"payeeId": "d2a7c9e1-5b3f-4a8d-9e6c-1f0b2a4c8e57",
"basket": {
"items": [
{
"name": "Linen shirt",
"description": "Size M, blue",
"quantity": 2,
"unitPrice": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"imageUrl": "https://shop.example.com/images/shirt.png",
"productId": "SKU-1001",
"lineId": "1",
"taxRate": 20,
"taxAmount": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"total": {
"amount": "10000.00",
"currencyCode": "GBP"
}
}
],
"subtotal": {
"amount": "10000.00",
"currencyCode": "GBP"
}
},
"shipping": {
"amount": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"address": {
"streetName": "Upper Thames Street",
"buildingNumber": "68",
"buildingName": "Vintners Place",
"postcode": "EC4V 3BJ",
"city": "London",
"region": "Greater London",
"countryCode": "GB"
},
"serviceName": "Tracked 48",
"serviceCode": "RM-T48",
"description": "Delivered in 2 working days",
"taxRate": 20,
"minDeliveryDate": "2026-10-12",
"maxDeliveryDate": "2026-10-14"
},
"locale": "en-GB",
"checkoutUrl": "https://pay.roqqett.com/ch/pay/s/0b8e5c3a-2f1d-4c6b-8a9e-7d4f2c1b0a93",
"returnUrl": "https://shop.example.com/checkout/complete",
"paymentId": "9c4e1a7b-3d2f-4b6a-8e5c-0f7d2a9b1c34",
"orderId": "7e2b9d4a-6c1f-4a5e-8b3d-2f9c0a1e6b78",
"expiresAt": "2026-10-02T13:00:00Z",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
}{
"message": "Checkout session not found.",
"errors": [
{
"path": "string",
"message": "string",
"errorCode": "string"
}
]
}{
"message": "Checkout session not found.",
"errors": [
{
"path": "string",
"message": "string",
"errorCode": "string"
}
]
}{
"message": "Checkout session not found.",
"errors": [
{
"path": "string",
"message": "string",
"errorCode": "string"
}
]
}Authorizations
Query Parameters
The ID of the account to work with.
"F50091"
Body
Body
- Option 1
- Option 2
SHOPPING The checkout to take the session on. Its configured type must match type.
36"6f1c2d0e-7a4b-4e2f-9c1d-3b5a7e9f0a12"
Caller-supplied key that makes creation safe to retry: a repeat with the same key on the same account returns the original checkout session instead of creating a second one. Use one key per payment journey.
1 - 255"3f9a1c2e-7b4d-4e8a-9c6f-0d2b5a8e1f47"
The merchant's own reference for this checkout session, such as its order or basket ID. Shown to the merchant, never to the payer's bank.
1 - 128"ORDER-10421"
The total the payer pays, including any shipping. Must be in the checkout's currency.
Show child attributes
Show child attributes
The reference shown on the payer's and merchant's bank statements. Faster Payments allows 18 characters; letters, digits, spaces and hyphens, not starting or ending with a space or hyphen. Omit to let Roqqett generate one (RQ + 16 characters).
1 - 18^[A-Za-z0-9]([A-Za-z0-9 -]{0,16}[A-Za-z0-9])?$"ORDER-10421"
What the payment is for, as shown to the payer.
1 - 140"Order ORDER-10421"
Where the payer is sent once the session ends. Defaults to the checkout's return URL.
2048"https://shop.example.com/checkout/complete"
BCP 47 language tag for the payer-facing checkout. Matches the locale set held against a person and account in CIS, so a value forwarded from Equals Money always validates. A locale Roqqett has no translations for yet renders in en-GB.
^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|\d{3}))?$"en-GB"
When the session expires if not paid, as an ISO 8601 date-time with a Z or ±hh:mm offset. Must be a real calendar date and time, in the future, and within the checkout's maximum expiry window, which is also the default.
64"2026-10-02T13:00:00Z"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Response
OK
The ID of a checkout session: one payment journey.
36"0b8e5c3a-2f1d-4c6b-8a9e-7d4f2c1b0a93"
SHOPPING pays for a basket into the merchant's settlement account. TOP_UP pays into a payee the merchant supplies.
SHOPPING, TOP_UP "SHOPPING"
OPEN until the payer authorises at their bank, PROCESSING while the payment settles, then exactly one terminal status.
OPEN, PROCESSING, COMPLETED, CANCELLED, ABANDONED, EXPIRED "OPEN"
The ID of a checkout: the configured payment page a checkout session is taken on.
36"6f1c2d0e-7a4b-4e2f-9c1d-3b5a7e9f0a12"
The merchant's own reference for this checkout session, such as its order or basket ID. Shown to the merchant, never to the payer's bank.
1 - 128"ORDER-10421"
What the payment is for, as shown to the payer.
140"Order ORDER-10421"
The total the payer pays, including any shipping.
Show child attributes
Show child attributes
The payee a TOP_UP session pays into. null for SHOPPING.
36"d2a7c9e1-5b3f-4a8d-9e6c-1f0b2a4c8e57"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
The locale the checkout is presented in. null when neither the request nor the checkout set one, in which case the payer's browser preference decides and en-GB is the final fallback.
^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|\d{3}))?$"en-GB"
Where to send the payer to pay. Valid until expiresAt.
2048"https://pay.roqqett.com/ch/pay/s/0b8e5c3a-2f1d-4c6b-8a9e-7d4f2c1b0a93"
Where the payer is sent once the session ends.
2048"https://shop.example.com/checkout/complete"
The payment, once the payer has authorised one.
36"9c4e1a7b-3d2f-4b6a-8e5c-0f7d2a9b1c34"
The order a completed SHOPPING session produced. Always null for TOP_UP.
36"7e2b9d4a-6c1f-4a5e-8b3d-2f9c0a1e6b78"
When an OPEN session expires.
"2026-10-02T13:00:00Z"
The date the Resource was initially created. ISO 8601 format without milliseconds.
The date the Resource was last modified. ISO 8601 format without milliseconds.
The reference shown on the payer's and merchant's bank statements. Faster Payments allows 18 characters; letters, digits, spaces and hyphens, not starting or ending with a space or hyphen. Omit to let Roqqett generate one (RQ + 16 characters).
1 - 18^[A-Za-z0-9]([A-Za-z0-9 -]{0,16}[A-Za-z0-9])?$"ORDER-10421"
Was this page helpful?
curl --request POST \
--url 'https://api.equalsmoney.com/v2/roqqett/checkout-sessions?accountId={{accountId}}' \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"checkoutId": "6f1c2d0e-7a4b-4e2f-9c1d-3b5a7e9f0a12",
"idempotencyKey": "3f9a1c2e-7b4d-4e8a-9c6f-0d2b5a8e1f47",
"merchantReference": "ORDER-10421",
"bankReference": "ORDER-10421",
"description": "Order ORDER-10421",
"returnUrl": "https://shop.example.com/checkout/complete",
"locale": "en-GB",
"expiresAt": "2026-10-02T13:00:00Z"
}
'import requests
url = "https://api.equalsmoney.com/v2/roqqett/checkout-sessions"
payload = {
"type": "SHOPPING",
"checkoutId": "6f1c2d0e-7a4b-4e2f-9c1d-3b5a7e9f0a12",
"idempotencyKey": "3f9a1c2e-7b4d-4e8a-9c6f-0d2b5a8e1f47",
"merchantReference": "ORDER-10421",
"bankReference": "ORDER-10421",
"amount": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"description": "Order ORDER-10421",
"returnUrl": "https://shop.example.com/checkout/complete",
"locale": "en-GB",
"expiresAt": "2026-10-02T13:00:00Z",
"basket": { "items": [
{
"name": "Linen shirt",
"description": "Size M, blue",
"quantity": 2,
"unitPrice": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"imageUrl": "https://shop.example.com/images/shirt.png",
"productId": "SKU-1001",
"lineId": "1",
"taxRate": 20,
"taxAmount": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"total": {
"amount": "10000.00",
"currencyCode": "GBP"
}
}
] },
"shipping": {
"amount": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"address": {
"streetName": "Upper Thames Street",
"buildingNumber": "68",
"buildingName": "Vintners Place",
"postcode": "EC4V 3BJ",
"city": "London",
"region": "Greater London",
"countryCode": "GB"
},
"serviceName": "Tracked 48",
"serviceCode": "RM-T48",
"description": "Delivered in 2 working days",
"taxRate": 20,
"minDeliveryDate": "2026-10-12",
"maxDeliveryDate": "2026-10-14"
}
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
type: 'SHOPPING',
checkoutId: '6f1c2d0e-7a4b-4e2f-9c1d-3b5a7e9f0a12',
idempotencyKey: '3f9a1c2e-7b4d-4e8a-9c6f-0d2b5a8e1f47',
merchantReference: 'ORDER-10421',
bankReference: 'ORDER-10421',
amount: {amount: '10000.00', currencyCode: 'GBP'},
description: 'Order ORDER-10421',
returnUrl: 'https://shop.example.com/checkout/complete',
locale: 'en-GB',
expiresAt: '2026-10-02T13:00:00Z',
basket: {
items: [
{
name: 'Linen shirt',
description: 'Size M, blue',
quantity: 2,
unitPrice: {amount: '10000.00', currencyCode: 'GBP'},
imageUrl: 'https://shop.example.com/images/shirt.png',
productId: 'SKU-1001',
lineId: '1',
taxRate: 20,
taxAmount: {amount: '10000.00', currencyCode: 'GBP'},
total: {amount: '10000.00', currencyCode: 'GBP'}
}
]
},
shipping: {
amount: {amount: '10000.00', currencyCode: 'GBP'},
address: {
streetName: 'Upper Thames Street',
buildingNumber: '68',
buildingName: 'Vintners Place',
postcode: 'EC4V 3BJ',
city: 'London',
region: 'Greater London',
countryCode: 'GB'
},
serviceName: 'Tracked 48',
serviceCode: 'RM-T48',
description: 'Delivered in 2 working days',
taxRate: 20,
minDeliveryDate: '2026-10-12',
maxDeliveryDate: '2026-10-14'
}
})
};
fetch('https://api.equalsmoney.com/v2/roqqett/checkout-sessions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.equalsmoney.com/v2/roqqett/checkout-sessions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'type' => 'SHOPPING',
'checkoutId' => '6f1c2d0e-7a4b-4e2f-9c1d-3b5a7e9f0a12',
'idempotencyKey' => '3f9a1c2e-7b4d-4e8a-9c6f-0d2b5a8e1f47',
'merchantReference' => 'ORDER-10421',
'bankReference' => 'ORDER-10421',
'amount' => [
'amount' => '10000.00',
'currencyCode' => 'GBP'
],
'description' => 'Order ORDER-10421',
'returnUrl' => 'https://shop.example.com/checkout/complete',
'locale' => 'en-GB',
'expiresAt' => '2026-10-02T13:00:00Z',
'basket' => [
'items' => [
[
'name' => 'Linen shirt',
'description' => 'Size M, blue',
'quantity' => 2,
'unitPrice' => [
'amount' => '10000.00',
'currencyCode' => 'GBP'
],
'imageUrl' => 'https://shop.example.com/images/shirt.png',
'productId' => 'SKU-1001',
'lineId' => '1',
'taxRate' => 20,
'taxAmount' => [
'amount' => '10000.00',
'currencyCode' => 'GBP'
],
'total' => [
'amount' => '10000.00',
'currencyCode' => 'GBP'
]
]
]
],
'shipping' => [
'amount' => [
'amount' => '10000.00',
'currencyCode' => 'GBP'
],
'address' => [
'streetName' => 'Upper Thames Street',
'buildingNumber' => '68',
'buildingName' => 'Vintners Place',
'postcode' => 'EC4V 3BJ',
'city' => 'London',
'region' => 'Greater London',
'countryCode' => 'GB'
],
'serviceName' => 'Tracked 48',
'serviceCode' => 'RM-T48',
'description' => 'Delivered in 2 working days',
'taxRate' => 20,
'minDeliveryDate' => '2026-10-12',
'maxDeliveryDate' => '2026-10-14'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.equalsmoney.com/v2/roqqett/checkout-sessions"
payload := strings.NewReader("{\n \"type\": \"SHOPPING\",\n \"checkoutId\": \"6f1c2d0e-7a4b-4e2f-9c1d-3b5a7e9f0a12\",\n \"idempotencyKey\": \"3f9a1c2e-7b4d-4e8a-9c6f-0d2b5a8e1f47\",\n \"merchantReference\": \"ORDER-10421\",\n \"bankReference\": \"ORDER-10421\",\n \"amount\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"description\": \"Order ORDER-10421\",\n \"returnUrl\": \"https://shop.example.com/checkout/complete\",\n \"locale\": \"en-GB\",\n \"expiresAt\": \"2026-10-02T13:00:00Z\",\n \"basket\": {\n \"items\": [\n {\n \"name\": \"Linen shirt\",\n \"description\": \"Size M, blue\",\n \"quantity\": 2,\n \"unitPrice\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"imageUrl\": \"https://shop.example.com/images/shirt.png\",\n \"productId\": \"SKU-1001\",\n \"lineId\": \"1\",\n \"taxRate\": 20,\n \"taxAmount\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"total\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n }\n }\n ]\n },\n \"shipping\": {\n \"amount\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"address\": {\n \"streetName\": \"Upper Thames Street\",\n \"buildingNumber\": \"68\",\n \"buildingName\": \"Vintners Place\",\n \"postcode\": \"EC4V 3BJ\",\n \"city\": \"London\",\n \"region\": \"Greater London\",\n \"countryCode\": \"GB\"\n },\n \"serviceName\": \"Tracked 48\",\n \"serviceCode\": \"RM-T48\",\n \"description\": \"Delivered in 2 working days\",\n \"taxRate\": 20,\n \"minDeliveryDate\": \"2026-10-12\",\n \"maxDeliveryDate\": \"2026-10-14\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.equalsmoney.com/v2/roqqett/checkout-sessions")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"SHOPPING\",\n \"checkoutId\": \"6f1c2d0e-7a4b-4e2f-9c1d-3b5a7e9f0a12\",\n \"idempotencyKey\": \"3f9a1c2e-7b4d-4e8a-9c6f-0d2b5a8e1f47\",\n \"merchantReference\": \"ORDER-10421\",\n \"bankReference\": \"ORDER-10421\",\n \"amount\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"description\": \"Order ORDER-10421\",\n \"returnUrl\": \"https://shop.example.com/checkout/complete\",\n \"locale\": \"en-GB\",\n \"expiresAt\": \"2026-10-02T13:00:00Z\",\n \"basket\": {\n \"items\": [\n {\n \"name\": \"Linen shirt\",\n \"description\": \"Size M, blue\",\n \"quantity\": 2,\n \"unitPrice\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"imageUrl\": \"https://shop.example.com/images/shirt.png\",\n \"productId\": \"SKU-1001\",\n \"lineId\": \"1\",\n \"taxRate\": 20,\n \"taxAmount\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"total\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n }\n }\n ]\n },\n \"shipping\": {\n \"amount\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"address\": {\n \"streetName\": \"Upper Thames Street\",\n \"buildingNumber\": \"68\",\n \"buildingName\": \"Vintners Place\",\n \"postcode\": \"EC4V 3BJ\",\n \"city\": \"London\",\n \"region\": \"Greater London\",\n \"countryCode\": \"GB\"\n },\n \"serviceName\": \"Tracked 48\",\n \"serviceCode\": \"RM-T48\",\n \"description\": \"Delivered in 2 working days\",\n \"taxRate\": 20,\n \"minDeliveryDate\": \"2026-10-12\",\n \"maxDeliveryDate\": \"2026-10-14\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.equalsmoney.com/v2/roqqett/checkout-sessions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"SHOPPING\",\n \"checkoutId\": \"6f1c2d0e-7a4b-4e2f-9c1d-3b5a7e9f0a12\",\n \"idempotencyKey\": \"3f9a1c2e-7b4d-4e8a-9c6f-0d2b5a8e1f47\",\n \"merchantReference\": \"ORDER-10421\",\n \"bankReference\": \"ORDER-10421\",\n \"amount\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"description\": \"Order ORDER-10421\",\n \"returnUrl\": \"https://shop.example.com/checkout/complete\",\n \"locale\": \"en-GB\",\n \"expiresAt\": \"2026-10-02T13:00:00Z\",\n \"basket\": {\n \"items\": [\n {\n \"name\": \"Linen shirt\",\n \"description\": \"Size M, blue\",\n \"quantity\": 2,\n \"unitPrice\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"imageUrl\": \"https://shop.example.com/images/shirt.png\",\n \"productId\": \"SKU-1001\",\n \"lineId\": \"1\",\n \"taxRate\": 20,\n \"taxAmount\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"total\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n }\n }\n ]\n },\n \"shipping\": {\n \"amount\": {\n \"amount\": \"10000.00\",\n \"currencyCode\": \"GBP\"\n },\n \"address\": {\n \"streetName\": \"Upper Thames Street\",\n \"buildingNumber\": \"68\",\n \"buildingName\": \"Vintners Place\",\n \"postcode\": \"EC4V 3BJ\",\n \"city\": \"London\",\n \"region\": \"Greater London\",\n \"countryCode\": \"GB\"\n },\n \"serviceName\": \"Tracked 48\",\n \"serviceCode\": \"RM-T48\",\n \"description\": \"Delivered in 2 working days\",\n \"taxRate\": 20,\n \"minDeliveryDate\": \"2026-10-12\",\n \"maxDeliveryDate\": \"2026-10-14\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "0b8e5c3a-2f1d-4c6b-8a9e-7d4f2c1b0a93",
"type": "SHOPPING",
"status": "OPEN",
"checkoutId": "6f1c2d0e-7a4b-4e2f-9c1d-3b5a7e9f0a12",
"merchantReference": "ORDER-10421",
"bankReference": "ORDER-10421",
"description": "Order ORDER-10421",
"amount": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"payeeId": "d2a7c9e1-5b3f-4a8d-9e6c-1f0b2a4c8e57",
"basket": {
"items": [
{
"name": "Linen shirt",
"description": "Size M, blue",
"quantity": 2,
"unitPrice": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"imageUrl": "https://shop.example.com/images/shirt.png",
"productId": "SKU-1001",
"lineId": "1",
"taxRate": 20,
"taxAmount": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"total": {
"amount": "10000.00",
"currencyCode": "GBP"
}
}
],
"subtotal": {
"amount": "10000.00",
"currencyCode": "GBP"
}
},
"shipping": {
"amount": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"address": {
"streetName": "Upper Thames Street",
"buildingNumber": "68",
"buildingName": "Vintners Place",
"postcode": "EC4V 3BJ",
"city": "London",
"region": "Greater London",
"countryCode": "GB"
},
"serviceName": "Tracked 48",
"serviceCode": "RM-T48",
"description": "Delivered in 2 working days",
"taxRate": 20,
"minDeliveryDate": "2026-10-12",
"maxDeliveryDate": "2026-10-14"
},
"locale": "en-GB",
"checkoutUrl": "https://pay.roqqett.com/ch/pay/s/0b8e5c3a-2f1d-4c6b-8a9e-7d4f2c1b0a93",
"returnUrl": "https://shop.example.com/checkout/complete",
"paymentId": "9c4e1a7b-3d2f-4b6a-8e5c-0f7d2a9b1c34",
"orderId": "7e2b9d4a-6c1f-4a5e-8b3d-2f9c0a1e6b78",
"expiresAt": "2026-10-02T13:00:00Z",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
}{
"id": "0b8e5c3a-2f1d-4c6b-8a9e-7d4f2c1b0a93",
"type": "SHOPPING",
"status": "OPEN",
"checkoutId": "6f1c2d0e-7a4b-4e2f-9c1d-3b5a7e9f0a12",
"merchantReference": "ORDER-10421",
"bankReference": "ORDER-10421",
"description": "Order ORDER-10421",
"amount": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"payeeId": "d2a7c9e1-5b3f-4a8d-9e6c-1f0b2a4c8e57",
"basket": {
"items": [
{
"name": "Linen shirt",
"description": "Size M, blue",
"quantity": 2,
"unitPrice": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"imageUrl": "https://shop.example.com/images/shirt.png",
"productId": "SKU-1001",
"lineId": "1",
"taxRate": 20,
"taxAmount": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"total": {
"amount": "10000.00",
"currencyCode": "GBP"
}
}
],
"subtotal": {
"amount": "10000.00",
"currencyCode": "GBP"
}
},
"shipping": {
"amount": {
"amount": "10000.00",
"currencyCode": "GBP"
},
"address": {
"streetName": "Upper Thames Street",
"buildingNumber": "68",
"buildingName": "Vintners Place",
"postcode": "EC4V 3BJ",
"city": "London",
"region": "Greater London",
"countryCode": "GB"
},
"serviceName": "Tracked 48",
"serviceCode": "RM-T48",
"description": "Delivered in 2 working days",
"taxRate": 20,
"minDeliveryDate": "2026-10-12",
"maxDeliveryDate": "2026-10-14"
},
"locale": "en-GB",
"checkoutUrl": "https://pay.roqqett.com/ch/pay/s/0b8e5c3a-2f1d-4c6b-8a9e-7d4f2c1b0a93",
"returnUrl": "https://shop.example.com/checkout/complete",
"paymentId": "9c4e1a7b-3d2f-4b6a-8e5c-0f7d2a9b1c34",
"orderId": "7e2b9d4a-6c1f-4a5e-8b3d-2f9c0a1e6b78",
"expiresAt": "2026-10-02T13:00:00Z",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
}{
"message": "Checkout session not found.",
"errors": [
{
"path": "string",
"message": "string",
"errorCode": "string"
}
]
}{
"message": "Checkout session not found.",
"errors": [
{
"path": "string",
"message": "string",
"errorCode": "string"
}
]
}{
"message": "Checkout session not found.",
"errors": [
{
"path": "string",
"message": "string",
"errorCode": "string"
}
]
}