Skip to main content

Create Terminal Order

With this API endpoint, you can create terminal Order

Endpoint : https://demo-api.frontpayment.no/api/v1/connect/terminal/orders/create
Method : POST
Authorization : Bearer
Payload Validations :

 

'products.*.name'=>'required|string',
'products.*.productId'=>'nullable|string',
'products.*.quantity'=>'required|numeric',
'products.*.rate'=>'required|numeric',
'products.*.discount'=>'nullable|numeric',
'products.*.tax'=>'required|numeric|in:0,12,15,25 (Unless you have other configuration)',
'products.*.amount'=>'required|numeric',
'orderSummary.subTotal'=>'required|numeric',
'orderSummary.totalTax'=>'required|numeric',
'orderSummary.totalDiscount'=>'required|numeric',
'orderSummary.grandTotal'=>'required|numeric',
'orderDate'=>'required|string',
'sendOrderBy.sms'=>'required|boolean',
'sendOrderBy.email'=>'required|boolean',
'receiptPrint'=>'required|boolean',
'terminalUuid'=>'required|String',
'customerDetails.type'=>'required|nullable|string|in:private,corporate',
'customerDetails.countryCode'=>'required|nullable|string',
'customerDetails.msisdn'=>'required|nullable|string',
'customerDetails.email'=>'required|nullable|email',
'customerDetails.name'=>'required|string',
'customerDetails.preferredLanguage'=>'required|string',
'customerDetails.personalNumber'=>'nullable|string|size:11',
'customerDetails.organizationId'=>'required_if:customerDetails.type,corporate|nullable|string|regex:/^[a-zA-Z0-9]+$/',
'customerDetails.address'=>'required|array',
'customerDetails.address.street'=>'required|string',
'customerDetails.address.zip'=>'required|string',
'customerDetails.address.city'=>'required|string',
'customerDetails.address.country'=>'required|string|in:ISO Alpha 2',
'invoiceReferences'=>'nullable|array',
'invoiceReferences.referenceNo'=>'nullable|string',
'invoiceReferences.customerReference'=>'nullable|string',
'invoiceReferences.customerNotes'=>'nullable|string',
'invoiceReferences.tnc'=>'nullable|string',
'callbackUrl'=>'sometimes|required|string',

 

Example Payload :

 

{
   "products": {
      "0": {
         "name": "Hair Wash",
         "productId": "VFDDF",
         "quantity": "1",
         "rate": 42,
         "discount": 0,
         "tax": "0",
         "amount": 42  
    } 
  },
   "orderSummary": {
      "subTotal": "42.00",
      "totalTax": "0.00",
      "totalDiscount": "0.00",
      "grandTotal": "42.00" 
  },
   "orderDate": "07 Apr, 2024",
   "sendOrderBy": {
      "sms": false,
      "email": true 
  },
   "terminalUuid": "TRML1216693970",
   "receiptPrint": false,
   "customerDetails": {
      "type": "private",
      "countryCode": "+47",
      "msisdn": "46567468",
      "email": "[email protected]",
      "customerUuid": null,
      "name": "Kari Nordmann",
      "preferredLanguage": "en",
      "personalNumber": null,
      "organizationId": null,
      "address": {
          "street": "Luramyrveien 65",
            "zip": "4313",
            "city": "Sandnes",
            "country": "NO"
    } 
  },
   "invoiceReferences": {
      "referenceNo": "1234567",
      "customerReference": "3500",
      "customerNotes": "",
      "tnc": "" 
  },
  'callbackUrl'=>'https://example-callback.com'
}

 

Response Structure :

 

//Success
{
  "status_code": 201,
  "status_message": "OK",
  "message": "terminalOrderAddedSuccessfully",
  "is_data": true,
  "data": {
    "orderUuid": "String"  
  }
}
// Error
{
  "status_code": 510,
  "status_message": "Execution Exception Occurred",
  "message": "Something Went Wrong",
  "is_error": true,
  "errors": "Array"
}

 

Example Response :

 

{
  "status_code": 201,
  "status_message": "OK",
  "message": "terminalOrderAddedSuccessfully",
  "is_data": true,
  "data": {
    "orderUuid": "ODR123456789"
  }
}

 

About callback Url :

If you provide callback URL into order payload, then the system will inform you about the order by GET Method with some query parameters.

Callback Query Parameters Example :

Payment Approved

{
  "orderUuid": "ODR1566017307",
  "status": "Approved",
  "type": "Payment",
  "baseAmount": "42",
  "vatAmount": "0",
  "totalAmount":"42",
  "currency":"NOK"
}

 

Payment Declined

{
  "orderUuid": "ODR1566017307",
  "status": "Cancelled",
  "type": "Payment",
  "baseAmount": "42",
  "vatAmount": "0",
  "totalAmount":"42",
  "currency":"NOK"
}

 

Refund Approved

{
  "orderUuid":"ODR1566017307",
  "status":"Approved",
  "type":"Payment_Refund",
  "totalAmount":"42",
  "currency":"NOK"
}

 

Refund Declined

{
  "orderUuid":"ODR1566017307",
  "status":"Cancelled",
  "type":"Payment_Refund",
  "totalAmount":"42",
  "currency":"NOK"
}