Send Invoice
With this API endpoint, you can export orders to Front Payment Go and get Order Uuid and Customer Uuid in return.
Endpoint
POST https://demo-api.frontpayment.no/api/v1/connect/orders/invoice/create
Authentication
This endpoint requires a Bearer Token
for authentication. You will need to obtain this token from Frontpayment and include it in the Authorization
header of your request.
Request Payload
The request body should be a JSON object containing details about the products, order and customer.
{
"products": {
"0": {
"name": "Hair Wash",
"productId": "VFDDF",
"quantity": "1",
"rate": 51,
"discount": 0,
"tax": "0",
"amount": 51
}
},
"orderSummary": {
"subTotal": "51.00",
"totalTax": "0.00",
"totalDiscount": "0.00",
"grandTotal": "51.00"
},
"orderDate": "1703040812",
"customerDetails": {
"type": "private",
"countryCode": "+47",
"msisdn": "46567468",
"email": "[email protected]",
"name": "Kari Nordmann",
"preferredLanguage": "en",
"personalNumber": "12345678901,
"organizationId": null,
"address": {
"street": "Luramyrveien 65",
"zip": "4313",
"city": "Sandnes",
"country": "NO"
}
},
"invoiceInterval": 0,
"invoiceMaturity": 10,
"invoiceFeeApplicable": true,
"separateInvoices": true,
"referenceNo": null,
"customerReference": null,
"callback": {
"callbackUrl": "https://example.com/callback-url"
}
}
Validation Rules
Make sure your request meets the following requirements:
Field | Type | Description |
---|---|---|
products.*.name |
required | string |
Required. Name of the product. |
products.*.productId |
nullable | string |
Nullable. Unique identifier for the product. |
products.*.quantity |
required | numeric |
Required. Quantity of the product. |
products.*.rate |
required | numeric |
Required. Rate per unit of the product. |
products.*.discount |
nullable | numeric |
Nullable. Discount applied to the product. |
products.*.tax |
required | numeric |
Required. Tax rate must be (e.g., 0 , 12 , 15 , 25 ), Unless you have other configuration unless otherwise configured. |
products.*.amount |
required | numeric |
Required. Total amount for the product line item. |
orderSummary.subTotal |
required | numeric |
Required. Subtotal of all products before tax and discount. |
orderSummary.totalTax |
required | numeric |
Required. Total tax for the order. |
orderSummary.totalDiscount |
required | numeric |
Required. Total discount for the order. |
orderSummary.grandTotal |
required | numeric |
Required. Grand total of the order. |
orderDate |
required | string |
Required. Unix timestamp for the Date of the order. |
customerDetails.countryCode |
required | string |
Required. Country code for the customer's phone number (e.g., "+47"). |
customerDetails.msisdn |
required | string |
Required. Mobile Subscriber ISDN Number (phone number). |
customerDetails.email |
required | email |
Required. Customer's email address. |
customerDetails.name |
required | string |
Required. Customer's full name. |
customerDetails.preferredLanguage |
nullable | string |
Nullable. Customer's language (e.g., , , sv , da , de ). Default value =
|
customerDetails.type |
required | string |
Required. You can provide customer type is private or corporate |
customerDetails.personalNumber |
nullable | string | max:11 |
Optional. Customer's personal identification number, must be exactly 11 characters containing only numbers and cannot contain spaces. When Customer type is private then you can used this for add personal number. |
customerDetails.organizationId |
required | string |
Conditional Required. Organization identification number, must contain only numbers and cannot contain spaces. When Customer type is corporate then this field is required. Otherwise you can add this as null or remove from payload. |
customerDetails.address.street |
required | string |
Required. Street address of the customer. |
customerDetails.address.zip |
required | string |
Required. Zip code of the customer's address. |
customerDetails.address.city |
required | string |
Required. City of the customer's address. |
customerDetails.address.country |
required | string |
Required. ISO Alpha-2 country code (e.g., NO ). Custom validation IsoAlpha2Country applies. |
invoiceInterval |
sometimes | numeric |
Optional. Default value is = 0 . You can change it to 0 , 1 , 2 . Daily = 0 , Once a month = 1 , Twice a month = 2 . |
invoiceFeeApplicable |
required | boolean |
Required. Default value is true . |
invoiceMaturity |
sometimes | numeric |
Optional. Default value is 10 . if you want to set the value then give your value 0 or 10 . |
separateInvoices |
sometimes | boolean |
Optional. Default value is true . |
referenceNo |
nullable | string |
Nullable. Any reference number. |
customerReference |
nullable | string |
Nullable. Any value for customer reference . |
callback.callbackUrl |
required | array |
Required. The URL we will notify when order status changes. |
Response
A successful request will return a 201 Created
status with the following JSON payload:
{
"status_code": 201,
"status_message": "OK",
"message": "orderAddedSuccessfully",
"is_data": false,
"data": {
"uuid": "ODR3506777330",
"customerUuid": "CSRT3463048878"
}
}
API returns a 500
or 510
error, it means something failed on the server side
{
"status_code": 500,
"status_message": "Internal Dependency Error",
"message": "internalErrorOccurredPleaseTryAgainLater",
"is_error": true,
"errors": {
"happenedAt": "String",
"internalErrorDetails": "Array"
}
}
{
"status_code": 510,
"status_message": "Execution Exception Occurred",
"message": "somethingWentWrong",
"is_error": true,
"errors": "Array"
}