Submit Reservation
Use the Submit Reservation endpoint to initiate a reservation and seamlessly direct customers to a checkout experience. This single request unlocks the following flow:
- You submit key reservation details including customer, products, and payment timelines.
- The API responds with a checkout URL for payment.
- You then redirect the customer to that checkout URL to complete payment.
Why This Matters
- Flexibility: Supports multiple customer types (private, corporate) and customizable settings.
- Control: Let customers pay via email or SMS, define your own reference numbers, and tailor notifications.
- Automation Friendly: Receive server-to-server callbacks for status changes—Reserved, Captured, Charged—for full transaction tracking.
Keep reading for endpoint URL, request schema, validation rules, and examples. Let's get your reservations live effortlessly.
Submit Reservation
Endpoint
POST [https://demo-api.frontpayment.no/api/v1/connect/reservations/submit](https://demo-api.frontpayment.no/api/v1/connect/reservations/submit)
Authentication
Include a Bearer Token in the Authorization
header. You can obtain this token from Front Payment.
Example:
Authorization: Bearer YOUR_FRONTPAYMENT_BEARER_TOKEN
Request Payload
{
"customerDetails": {
"uuid": "",
"type": "private",
"countryCode": "+880",
"msisdn": "1724313009",
"email": "[email protected]",
"name": "Nafees",
"preferredLanguage": "en",
"personalNumber": "19635464524",
"organizationId": null,
"address": {
"street": "Dhaka",
"zip": "3500",
"city": "Cumilla",
"country": "NO"
}
},
"orderDate": "03 Sep, 2025",
"dueDateForPaymentLink": "1756871295",
"referenceNo": null,
"customerReference": null,
"sendOrderBy": {
"sms": false,
"email": true
},
"products": {
"0": {
"name": "Test",
"productId": null,
"rate": 1,
"tax": "0",
"amount": 1
}
},
"orderSummary": {
"subTotal": 1,
"totalTax": 0,
"grandTotal": 1
},
"chargeValidity": "55",
"customerNotes": null,
"tnc": null,
"settings": {
"secureDetails": false,
"isChargePartiallyRefundable": false
},
"callback": {
"callbackUrl": "https://wp.frontpayment.no"
}
}
Validation Rules
Field | Type | Description |
---|---|---|
customerDetails |
array |
Required. Customer details information. |
customerDetails.type |
string |
Required. Customer type (private or corporate). |
customerDetails.countryCode |
string |
Required. Country dialing code (e.g., +880). |
customerDetails.msisdn |
string |
Required. Mobile phone number without country code. |
customerDetails.email |
email |
Required. Valid customer email address. |
customerDetails.name |
string |
Required. Full name of the customer. |
customerDetails.preferredLanguage |
string |
Required. Preferred language (e.g., en, no). |
customerDetails.personalNumber |
string |
Optional. Must be exactly 11 digits if provided. |
customerDetails.organizationId |
string |
Required if type=corporate . Alphanumeric only. |
customerDetails.address |
array |
Required. Customer address details. |
customerDetails.address.street |
string |
Required. Street name. |
customerDetails.address.zip |
string |
Required. Postal code. |
customerDetails.address.city |
string |
Required. City name. |
customerDetails.address.country |
string |
Required. Country code (ISO format). |
orderDate |
string |
Required. |
dueDateForPaymentLink |
string |
Required. |
referenceNo |
string |
Optional. Internal reference number. |
customerReference |
string |
Optional. Customer’s reference number. |
sendOrderBy |
array |
Required. Defines communication channels (SMS, email). |
sendOrderBy.sms |
boolean |
Required. Whether to send via SMS. |
sendOrderBy.email |
boolean |
Required. Whether to send via Email. |
products |
array |
Required. List of products in the order. |
products.*.name |
string |
Required. Product name. |
products.*.productId |
string |
Optional. Product ID (max 25 chars). |
products.*.rate |
numeric |
Required. Unit rate. |
products.*.tax |
numeric |
Required. Tax value. |
products.*.amount |
numeric |
Required. Quantity of product. |
orderSummary.subTotal |
numeric |
Required. Subtotal of products. |
orderSummary.totalTax |
numeric |
Required. Total tax amount. |
orderSummary.grandTotal |
numeric |
Required. Final payable amount. |
customerNotes |
string |
Optional. Customer-provided notes. |
tnc |
string |
Optional. Terms & Conditions. |
chargeValidity |
string |
Optional. Must be numeric string. |
settings |
array |
Optional. Additional settings. |
settings.secureDetails |
boolean |
Optional. Indicates secure details requirement. |
settings.isChargePartiallyRefundable |
boolean |
Optional. Whether partial refunds are allowed. |
callback |
array |
Optional. Callback configuration. |
callback.callbackUrl |
url |
Optional. UThe URL |
Example Success Response
{
"status_code": 201,
"status_message": "OK",
"message": "Reservation Submitted Successfully",
"is_data": true,
"data": {
"customerUuid": "CSRT1358046874",
"reservationUuid": "RES1943140879",
"checkoutUrl": "https://stg.frontpayment.no/reservations/details/RES1943140879"
}
}
Redirect to Checkout
After receiving a successful response, the customer should be redirected to the checkoutUrl
provided.
At checkout, the customer can choose from supported payment methods:
- Vipps
- Google Pay
- Visa
- Mastercard
Once the payment is completed successfully, the user will be redirected to a success page.
Callback Notification
The callbackUrl
is an endpoint on your server that our system will call via an HTTP GET
request whenever the status of the specified order changes from its initial state. For reservation
the callbackUrl
will be triggered for three status changed: Reserved
, Captured
, Charged
.
See the link below to understand how to work with the callback URL on your side and how to verify the request sent from our side.