Create order session
This is the initial point in the lifecycle of an order. A successful request response will contain a sessionId
and an orderId
string. The sessionId
will be needed later for rendering the checkout iframe, fetching and updating the session etc.
The session will expire after 7 days.
When the end customer has succesfully completed the checkout flow and the order session is in state authorized
,
the system will yield an order entity managed by the /orders
endpoint.
The orderId
can now be used for Order management.
- Example Request
- Example Response
curl -X POST \
-H 'authorization: Bearer v4.public.eyJpc3MiOiJs...' \
-H 'content-type: application/json' \
-d '{
"autoCapture": {
"delayMinutes": 180,
"enabled": true
},
"country": "SE",
"currency": "SEK",
"customer": {
"companyId": "559311-3714",
"email": "jane.doe@example.com",
"firstName": "Jane",
"lastName": "Doe",
"phone": "0700000000",
"reference1": "",
"reference2": "",
"ssn": ""
},
"locale": "sv-SE",
"metadata": {},
"orderLines": [
{
"description": "Coffee Machine X200",
"quantity": 10,
"reference": "111-222-333",
"totalAmount": 500000,
"totalVatAmount": 100000,
"type": "physical",
"unitDiscountAmount": 0,
"unitPrice": 50000,
"vat": 2500
},
{
"description": "Shipping fee",
"quantity": 1,
"reference": "444-555-666",
"totalAmount": 10000,
"totalVatAmount": 2000,
"type": "shippingFee",
"unitDiscountAmount": 0,
"unitPrice": 10000,
"vat": 2500
}
],
"reference": null,
"settings": {
"customer": {
"allowShippingAddress": false,
"showNameFields": false,
"showShippingAddressContact": false
},
"security": {
"level": 300,
"requireClientValidation": false,
"validationSuccessOnTimeout": true
},
"urls": {
"confirmation": null,
"notification": null,
"privacy": null,
"terms": "https://www.example.com/terms.html",
"validate": null
}
},
"storeId": null,
"tokenize": false,
"totalOrderAmount": 510000,
"totalOrderAmountExclVat": 408000,
"totalOrderVatAmount": 102000
}'
https://api.sandbox.ledyer.com/v1/sessions
Request body
autoCapture
objectOptionalAn object consisting of the properties delayMinutes
and enabled
,
delayMinutes
must be a number between 0 and 10080 (7 days), enabled
is a boolean.
Example: { "delayMinutes": 180, "enabled": true }
.
country
stringCountry code such as SE
, FI
etc (ISO 3166-1 alpha-2).
currency
stringExample SEK
, NOK
(ISO 4217 alpha).
customer
objectOptionalAll customer information.
locale
stringSpecify language for the checkout, sv-SE
, da-DK
etc (BCP 47).
metadata
objectOptionalMerchant may send a key/value object literal for internal use.
Example: { "property1": "value1", "property2": "value2" }
.
orderLines
array of orderlinesOptionalAn array of order lines.
reference
stringOptionalThis property can be used for merchant order reference and will be visible on the invoice. Maximum of 50 characters.
settings
objectAn object containing various setting possibilities.
settlementReference
stringOptionalMaximum of 50 characters.
source
stringOptionalA string that should either be pos
or online
.
storeId
stringOptionalOnly needed in case of multiple stores with same country and currency.
tokenize
booleanOptionalIf true
a customer token will be created that can be used for recurring purchases.
totalOrderAmount
integerTotal order amount in minor units.
totalOrderAmountExclVat
integerTotal order amount excl. VAT in minor units.
totalOrderVatAmount
integerTotal order VAT amount in minor units.
{
"expiresAt": "2023-09-01T11:25:32.805672147Z",
"orderId": "or_1xDXf4gwlsnyERFywD9VYZT0Tpp",
"sessionId": "se_1xDXf4JI3PJsGeVAvLE3hHqYS09"
}
Response Headers
Location
string/v1/sessions/:sessionId
Handling sessions
The sessionId
string should be stored and re-used until the purchase has been completed or the expiresAt
time has been reached.