Order Management

Send Payment Link

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/payment-link/create

Authorization

To access this endpoint, include a Bearer Token in the Authorization header of your request. You can obtain this token from Frontpayment.

Example Authorization Header: Authorization: Bearer YOUR_FRONTPAID_BEARER_TOKEN

Request Payload

Send the following parameters as a JSON object in the request body:

{
    "products": [
        {
            "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"
    },
    "sendOrderBy": {
        "sms": false,
        "email": false
    },
    "orderDate": "1703040812",
    "customerDetails": {
        "type": "private",
        "countryCode": "+47",
        "msisdn": "46567468",
        "email": "test@yopmail.com",
        "firstName": "",
        "name": "Kari Nordmann",
        "preferredLanguage": "en",
        "personalNumber": "12345678901",
        "address": {
            "street": "Luramyrveien 65",
            "zip": "4313",
            "city": "Sandnes",
            "country": "NO"
        }
    },
    "invoiceAsPaymentOption": true,
    "referenceNo": null,
    "customerReference": null,
    "secureDetails": true,
    "callback": {
        "callbackUrl": "https://example.com/callback-url"
    }
}

Validation Rules

Make sure your request meets the following requirements:

Field Type Description
products.*.name string Required Name of the product.
products.*.productId string Optional Unique identifier for the product.
products.*.quantity numeric Required Quantity of the product.
products.*rate numeric Required Rate per unit of the product.
products.*.discount numeric Optional Discount applied to the product.
products.*.tax numeric Required Tax rate must be (e.g., 0, 12, 15, 25), Unless you have other configuration.
products.*.amount numeric Required Total amount for the product line item.
orderSummary.subTotal numeric Required Subtotal of all products before tax and discount.
orderSummary.totalTax numeric Required Total tax for the order.
orderSummary.totalDiscount numeric Required Total discount for the order.
orderSummary.grandTotal numeric Required Grand total of the order.
sendOrderBy.sms boolean Nullable If you want to send order paytment link via customer phone number.
sendOrderBy.email boolean NullableIf you want to send order payment link via email.
orderDate string Required Provide Current / Future Date as Unix timestamp for the Date of the order.
customerDetails.countryCode string Required if customerDetails.email is not given. Country code for the customer's phone number (e.g., "+47").
customerDetails.msisdn string Required if customerDetails.email is not given. Mobile Subscriber ISDN Number (phone number).
customerDetails.email string Required if customerDetails.msisdn is not given. Customer's email address.
customerDetails.firstName string Optional Customer's First name.
customerDetails.name string Required Customer's full name.
customerDetails.preferredLanguage string Optional Customer preferred language. Available languages are en, no, sv, da, de. If nothing is given it will set default to no.
customerDetails.type string Required You can provide customer type is private or corporate.
customerDetails.personalNumber string 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 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 string Required Street address of the customer.
customerDetails.address.zip string Required Zip code of the customer's address.
customerDetails.address.city string Required City of the customer's address.
customerDetails.address.country string Required ISO Alpha-2 country code (e.g., NO). Custom validation IsoAlpha2Country applies.
invoiceAsPaymentOption boolean Required Enable Invoice as payment option then set true.
referenceNo string Nullable Any reference number.
customerReference string Nullable Any value for customer reference.
secureDetails boolean Optional.If secureDetails is set to True, the order details will not be accessible until the user’s PNumber has been verified through BankID.
callback.callbackUrl url Optional To receive real-time notifications on order state changes, you must provide a callback url. This is an server-to-server HTTP GET request.

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"
}

Notifications via Callback URL

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.

Go To Notication Via Callback Url Page

Send Invoice

Introduction

This API acts as the bridge between your application and Front Payment, making it effortless to create invoices automatically. Instead of manually entering customer and order information, you can simply send the details directly from your system. This ensures a smooth and quick process, so that once a transaction or order is complete, a precise invoice is instantly generated and delivered to the right customer. It streamlines your billing process and helps you keep everything organized.

The invoice distribution method is determined based on the information provided in the request. The system follows this priority order:

  1. EHF or E-invoice (Preferred) – Requires a valid P-number or organization number.
  2. Email – Used if EHF/E-invoice cannot be delivered.
  3. Postal Mail – Used if no valid email address is available or email delivery fails.

If none of the above delivery methods are successful, our customer service team will notify the client to resolve the issue.

Use Cases

Here are a few ways your application can use this API:

Prerequisites

Before you start the integration, make sure you have:

1. API Access:

2. Technical Requirements:

3. Test Environment:

Endpoint

POST https://demo-api.frontpayment.no/api/v1/connect/orders/invoice/create

Authorization

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

Send the following parameters as a JSON object in the request body:

{
    "products": [
        {
            "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": "test@yopmail.com",
        "firstName": "",
        "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 string Required Name of the product.
products.*.productId string Optional Unique identifier for the product.
products.*.quantity numeric Required Quantity of the product.
products.*rate numeric Required Rate per unit of the product.
products.*.discount numeric Optional Discount applied to the product.
products.*.tax numeric Required Tax rate must be (e.g., 0, 12, 15, 25), Unless you have other configuration.
products.*.amount numeric Required Total amount for the product line item.
orderSummary.subTotal numeric Required Subtotal of all products before tax and discount.
orderSummary.totalTax numeric Required Total tax for the order.
orderSummary.totalDiscount numeric Required Total discount for the order.
orderSummary.grandTotal numeric Required Grand total of the order.
orderDate string Required Unix timestamp for the Date of the order.
customerDetails.countryCode string Required Country code for the customer's phone number (e.g., "+47").
customerDetails.msisdn string Required Mobile Subscriber ISDN Number (phone number).
customerDetails.email email Required Customer's email address.
customerDetails.firstName email Optional Customer's first name.
customerDetails.name email Required Customer's full name.
customerDetails.preferredLanguage string Optional Customer preferred language. Available languages are en, no, sv, da, de. If nothing is given it will set default to no.
customerDetails.type string Required You can provide customer type is private or corporate.
customerDetails.personalNumber string 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 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 string Required Street address of the customer.
customerDetails.address.zip string Required Zip code of the customer's address.
customerDetails.address.city string Required City of the customer's address.
customerDetails.address.country string Required ISO Alpha-2 country code (e.g., NO). Custom validation IsoAlpha2Country applies.
invoiceInterval 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 boolean Required Default value is true.
invoiceMaturity numeric Optional If specified, the value must be 10 for private customers; for corporate customers, the value may be 14, 30, or 45.
separateInvoices boolean Optional Default value is true.
referenceNo string Nullable Any reference number.
customerReference string Nullable Any value for customer reference.
callback.callbackUrl url Optional To receive real-time notifications on order state changes, you must provide a callback url. This is an server-to-server HTTP GET request.

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"
}

Notifications via Callback URL

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.

Go To Notication Via Callback Url Page

Send E-Faktura

Introduction

This API provides a way for your application to automate the creation of e-invoices for private customers. It allows you to programmatically send all necessary customer and product information to Front Payment. This eliminates the need for manual data entry, ensuring that e-invoices are generated quickly and accurately, which is essential for businesses that need to handle a high volume of transactions with individual customers.

Key Benefits

Use Cases

Prerequisites

Before you start the integration, make sure you have:

1. API Access:

2. Technical Requirements:

3. Test Environment:

Endpoint

POST https://demo-api.frontpayment.no/api/v1/connect/orders/faktura/create

Authorization

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

Send the following parameters as a JSON object in the request body:

{
    "products": [
        {
            "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": {
        "countryCode": "+47",
        "msisdn": "46567468",
        "email": "test@yopmail.com",
        "name": "Kari Nordmann",
        "preferredLanguage": "en",
        "personalNumber": "12345678901,
        "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 string Required Name of the product.
products.*.productId string Optional Unique identifier for the product.
products.*.quantity numeric Required Quantity of the product.
products.*rate numeric Required Rate per unit of the product.
products.*.discount numeric Optional Discount applied to the product.
products.*.tax numeric Required Tax rate must be (e.g., 0, 12, 15, 25), Unless you have other configuration.
products.*.amount numeric Required Total amount for the product line item.
orderSummary.subTotal numeric Required Subtotal of all products before tax and discount.
orderSummary.totalTax numeric Required Total tax for the order.
orderSummary.totalDiscount numeric Required Total discount for the order.
orderSummary.grandTotal numeric Required Grand total of the order.
orderDate string Required Unix timestamp for the Date of the order.
customerDetails.countryCode string Required Country code for the customer's phone number (e.g., "+47").
customerDetails.msisdn string Required Mobile Subscriber ISDN Number (phone number).
customerDetails.email email Required Customer's email address.
customerDetails.name email Required Customer's full name.
customerDetails.preferredLanguage string Optional Customer preferred language. Available languages are en, no, sv, da, de. If nothing is given it will set default to no.
customerDetails.personalNumber string Required Customer's personal identification number, must be exactly 11 characters containing only numbers and cannot contain spaces.
customerDetails.address.street string Required Street address of the customer.
customerDetails.address.zip string Required Zip code of the customer's address.
customerDetails.address.city string Required City of the customer's address.
customerDetails.address.country string Required ISO Alpha-2 country code (e.g., NO). Custom validation IsoAlpha2Country applies.
invoiceInterval 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 boolean Required Default value is true.
invoiceMaturity numeric Optional If specified, the value must be 10.
separateInvoices boolean Optional Default value is true.
referenceNo string Nullable Any reference number.
customerReference string Nullable Any value for customer reference.
callback.callbackUrl url Required To receive real-time notifications on order state changes, you must provide a callback url. This is an server-to-server HTTP GET request.

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"
}

Notifications via Callback URL

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.

Go To Notication Via Callback Url Page

Send EHF Invoice

The Send EHF Invoice endpoint allows merchants to generate and send standardized electronic invoices (EHF) to corporate customers in Norway. EHF invoices conform to national and PEPPOL regulations, enabling seamless delivery to customer accounting systems and public sector entities. This API integrates Front Payment’s digital invoicing with your order workflow — encapsulating products, billing details, due dates, and delivery preferences into an EHF-enabled invoice.

Upon success, you'll receive an orderUuid and customerUuid to track the invoice lifecycle. To check invoice status go to Get Order Status By UUID page

Key Benefits

Prerequisites

Before you start the integration, make sure you have:

1. API Access:

2. Technical Requirements:

3. Test Environment:

Endpoint

POST https://demo-api.frontpayment.no/api/v1/connect/orders/ehf/create

Authorization

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

Send the following parameters as a JSON object in the request body:

{
    "products": [
        {
            "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": {
        "countryCode": "+47",
        "msisdn": "46567468",
        "email": "test@yopmail.com",
        "name": "Kari Nordmann",
        "preferredLanguage": "en",
        "organizationId": "123456789,
        "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 string Required Name of the product.
products.*.productId string Optional Unique identifier for the product.
products.*.quantity numeric Required Quantity of the product.
products.*rate numeric Required Rate per unit of the product.
products.*.discount numeric Optional Discount applied to the product.
products.*.tax numeric Required Tax rate must be (e.g., 0, 12, 15, 25), Unless you have other configuration.
products.*.amount numeric Required Total amount for the product line item.
orderSummary.subTotal numeric Required Subtotal of all products before tax and discount.
orderSummary.totalTax numeric Required Total tax for the order.
orderSummary.totalDiscount numeric Required Total discount for the order.
orderSummary.grandTotal numeric Required Grand total of the order.
orderDate string Required Unix timestamp for the Date of the order.
customerDetails.countryCode string Required Country code for the customer's phone number (e.g., "+47").
customerDetails.msisdn string Required Mobile Subscriber ISDN Number (phone number).
customerDetails.email email Required Customer's email address.
customerDetails.name email Required Customer's full name.
customerDetails.preferredLanguage string Optional Customer preferred language. Available languages are en, no, sv, da, de. If nothing is given it will set default to no.
customerDetails.organizationId string Required Organization identification number, must contain only numbers and cannot contain spaces
customerDetails.address.street string Required Street address of the customer.
customerDetails.address.zip string Required Zip code of the customer's address.
customerDetails.address.city string Required City of the customer's address.
customerDetails.address.country string Required ISO Alpha-2 country code (e.g., NO). Custom validation IsoAlpha2Country applies.
invoiceInterval 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 boolean Required Default value is true.
invoiceMaturity numeric Optional Default value is 14. if you want to set the value then give 14, 30 or 45.
separateInvoices boolean Optional Default value is true.
referenceNo string Nullable Any reference number.
customerReference string Nullable Any value for customer reference.
callback.callbackUrl url Required To receive real-time notifications on order state changes, you must provide a callback url. This is an server-to-server HTTP GET request.

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"
}

Notifications via Callback URL

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.

Go to Notication Via Callback Url Page

Resend Payment Link

The Resend Payment Link endpoint allows your system to resend the payment link associated with an existing order to a customer. This is useful when the original link was lost, not received, expired, or needs to be sent again.

You can resend the link via:

Importantly, the SMS or email does not need to match the contact details already stored with the customer profile. The payment link can be sent to a new phone number or a different email address, making it flexible for scenarios where the customer wants to use an alternative contact method.

This ensures that the customer can always receive the payment link, even if their original phone number or email is unavailable.

You will find details about the endpoint URL, authentication, request structure, validation rules, and sample responses below.

Endpoint

POST https://demo-api.frontpayment.no/api/v1/connect/orders/resend/{{ORDER_UUID}}

Authorization

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

Send the following parameters as a JSON object in the request body:

{
    "countryCode": +47,
    "msisdn": "xxxxxxxx",
    "email": "example-email@email.com
}

Validation Rules

Make sure your request meets the following requirements:

Field Type Description
countryCode string Conditional Required Country code for the customer's phone number (e.g., "+47").
msisdn string Conditional Required Mobile Subscriber MSISDN Number (phone number). If you want to resend order paytment link via customer phone number.
email email Conditional Required Customer's email address. If you want to resend order payment link via email.

Response

A successful request will return a 202 status with the following JSON payload:

{
    "status_code": 202,
    "status_message": "OK",
    "message": "resentOrderSuccessfully",
    "is_data": true,
    "data": null
}

API returns a 404 error, it means requested order with ORDER_UUID could not be found in our system.

{
    "status_code": 404,
    "status_message": "Not Found",
    "message": "orderNotFound",
    "is_error": false,
    "errors": null
}

API returns a 417 error, it means requested payload is not valid.

{
    "status_code": 417,
    "status_message": "Client Error",
    "message": "payloadValidationErrors",
    "is_error": true,
    "errors": "Array"
}

API return a 400 error, it means your requested order is already PAID or CANCELLED.

{
    "status_code": 400,
    "status_message": "Conflict of Business Logic",
    "message": "orderStatusAlreadyPaid",
    "is_error": false,
    "errors": null
}
{
    "status_code": 400,
    "status_message": "Conflict of Business Logic",
    "message": "orderStatusAlreadyCancelled",
    "is_error": false,
    "errors": null
}

API returns a 510 error, it means something failed on the server side

{
    "status_code": 510,
    "status_message": "Execution Exception Occurred",
    "message": "Something Went Wrong",
    "is_error": true,
    "errors": "Array"
}

Cancel Order

This API allows your application to cancel a specific order. By providing the order's unique ID and a reason for the cancellation, you can programmatically update the order's status. This is crucial for managing order changes, such as when a customer requests a cancellation, an item is out of stock, or an order needs to be stopped for any other reason.

Endpoint

POST https://demo-api.frontpayment.no/api/v1/connect/orders/cancel/{{ORDER_UUID}}

Authorization

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

Send the following parameters as a JSON object in the request body:

{
    "cancellationNote": "Your cancellation Note here"
}

Validation Rules

Make sure your request meets the following requirements:

Field Type Description
cancellationNote string Required Order cancellation note.

Response

A successful request will return a 202 status with the following JSON payload:

{
    "status_code": 202,
    "status_message": "OK",
    "message": "cancelledOrderSuccessfully",
    "is_data": false,
    "data": null
}

API returns a 404 error, it means requested order with ORDER_UUID could not be found in our system.

{
    "status_code": 404,
    "status_message": "Not Found",
    "message": "orderNotFound",
    "is_data": false,
    "data": null
}

API returns a 417 error, it means requested payload is not valid.

{
    "status_code": 417,
    "status_message": "Client Error",
    "message": "payloadValidationErrors",
    "is_error": true,
    "errors": "Array"
}

API return a 400 error, it means your requested order is already PAID.

{
    "status_code": 400,
    "status_message": "Conflict of Business Logic",
    "message": "orderStatusAlreadyPaid",
    "is_error": false,
    "errors": null
}

API returns a 510 error, it means something failed on the server side

{
    "status_code": 510,
    "status_message": "Execution Exception Occurred",
    "message": "Something Went Wrong",
    "is_error": true,
    "errors": "Array"
}

Refund Order

The Refund Order endpoint enables merchants to initiate either full or partial refunds for an order using its Order UUID. Depending on your business workflow, you can refund the entire order or only specific items. Upon successful submission, the API responds with a 202 Accepted, indicating that your refund request has been accepted and is pending processing.

This endpoint is ideal for scenarios such as:

Endpoint

POST https://demo-api.frontpayment.no/api/v1/connect/orders/refund/{{ORDER_UUID}}

Authorization

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

Send the following parameters as a JSON object in the request body:

{
    "type": "regular",
    "grandTotal": 10,
    "products": [
        {
            "id": 5410,
            "amount": 10
        }
    ]
}

Retrieve Product ID from Get Order Details API.

Validation Rules

Make sure your request meets the following requirements:

Field Type Description
type string Required Using type. Available types are regular and invoiced
grandTotal numeric Required Grand total of the refunded amount.
products.*id numeric Required Order product id. From which product you want to refund.
products.*.amount numeric Required Refund amount for the product.

Response

A successful request will return a 202 OK status with the following JSON payload:

{
    "status_code": 202,
    "status_message": "OK",
    "message": "orderRefundedSuccessfully",
    "is_data": true,
    "data": null
}

Error Response

API returns a 404 error, it means requested order with ORDER_UUID could not be found in our system.

{
    "status_code": 404,
    "status_message": "Not Found",
    "message": "orderNotFound",
    "is_error": false,
    "errors": null
}

API return a 417 error, it means request payload validation failed.

{
    "status_code": 417,
    "status_message": "Client Error",
    "message": "payloadValidationErrors",
    "is_error": true,
    "errors": "Array"
}

API returns a 510 error, it means something failed on the server side

{
    "status_code": 510,
    "status_message": "Execution Exception Occurred",
    "message": "somethingWentWrong",
    "is_error": true,
    "errors": "Array"
}

Others refund rejections errors

{
  "status_code": 400,
  "status_message": "Conflict of Business Logic",
  "message": "requestProductIdNotAvailable",
  "is_data": false,
  "data": null
}
{
    "status_code": 400,
    "status_message": "Conflict of Business Logic",
    "message": "refundRejectionForRefundRequestGreaterThanOrderAmount",
    "is_error": false,
    "errors": null
}
{
    "status_code": 400,
    "status_message": "Conflict of Business Logic",
    "message": "refundRejectionForProductAmountExceed",
    "is_error": true,
    "errors": "Array"
}
{
    "status_code": 400,
    "status_message": "Conflict of Business Logic",
    "message": "refundRejectionForWeeklyThresholdExceed",
    "is_error": true,
    "errors": null
}
{
    "status_code": 400,
    "status_message": "Conflict of Business Logic",
    "message": "refundRejectionForRequestAmountThresholdExceed",
    "is_error": true,
    "errors": null
}

Get All Order Status

This API allows your application to retrieve the status of your orders in the FrontGo system. You can get a complete overview of all orders or filter for specific statuses, such as PAID, CANCELLED, or INVOICED. This is a vital tool for maintaining a real-time, comprehensive view of your payment operations and keeping your internal systems synchronized with Front Payment.

Endpoint

GET https://demo-api.frontpayment.no/api/v1/connect/orders/status
https://demo-api.frontpayment.no/api/v1/connect/orders/status?type=Paid

Query Parameters

type (optional): Filter the orders by their status. You can use one of the following values:

Authorization

Include a Bearer Token in the Authorization header. You can obtain this token from Front Payment.

Example:

Authorization: Bearer YOUR_FRONTPAYMENT_BEARER_TOKEN

Response

A successful request will return a 200 status with the following JSON payload:

{
    "status_code": 200,
    "status_message": "OK",
    "message": "Order Status Retrieved Successfully",
    "is_data": true,
    "data": [
      {
        "uuid": "String",
        "status": "String"
      },
      {
        "uuid": "String",
        "status": "String"
      }
    ]
}

API returns a 510 error, it means something failed on the server side

{
    "status_code": 510,
    "status_message": "Execution Exception Occurred",
    "message": "Something Went Wrong",
    "is_error": true,
    "errors": "Array"
}

Get Order Status By UUID

The Get Order Status by UUID endpoint lets you query the latest processing state of a single order using its ORDER_UUID. It’s useful for polling after a checkout, reconciling webhook events, or debugging edge cases in your order flow.

Typical Uses

Endpoint

GET https://demo-api.frontpayment.no/api/v1/connect/orders/status/{{ORDER_UUID}}

Authorization

Include a Bearer Token in the Authorization header. You can obtain this token from Front Payment.

Example:

Authorization: Bearer YOUR_FRONTPAYMENT_BEARER_TOKEN

Response

A successful request will return a 200 status with the following JSON payload:

{
  "status_code": 200,
  "status_message": "OK",
  "message": "Order Status Retrieved Successfully",
  "is_data": true,
  "data": {
    "uuid": "String",
    "status": "String",
    "orderAmount": 40,
    "refundedAmount": 0
  }
}

API returns a 404 error, it means requested order with ORDER_UUID could not be found in our system.

{
    "status_code": 404,
    "status_message": "Not Found",
    "message": "orderNotFound",
    "is_error": false,
    "errors": null
}

API returns a 510 error, it means something failed on the server side

{
    "status_code": 510,
    "status_message": "Execution Exception Occurred",
    "message": "Something Went Wrong",
    "is_error": true,
    "errors": "Array"
}

Get Order Details By UUID

This API enables your application to retrieve detailed information for a single order using its unique Order UUID. It provides a complete snapshot of any specific transaction, including its status, products, customer details, and payment summary. This is essential for customer support, order tracking, and offering users a comprehensive view of their purchases.

Use Cases

Endpoint

GET https://demo-api.frontpayment.no/api/v1/connect/orders/details/{{ORDER_UUID}}

Authorization

Include a Bearer Token in the Authorization header. You can obtain this token from Front Payment.

Example:

Authorization: Bearer YOUR_FRONTPAYMENT_BEARER_TOKEN

Response

A successful request will return a 200 OK status with the following JSON payload:

{
    "status_code": 200,
    "status_message": "OK",
    "message": "orderRetrievedSuccessfully",
    "is_data": true,
    "data": {
        "type": "String",
        "orderUuid: "String",
        "invoiceNumber": "String",
        "status": "String",
        "orderDate": "String",
        "paymentLinkDueDate": "String",
        "productList": [
            {
                "name": "String",
                "productId": "String",
                "quantity": "Integer",
                "rate": "Float",
                "discount": "Float",
                "tax": "Float",
                "amount": "Float"
            }
        ],
        "orderSummary": {
            "subTotal": "Float",
            "tax": "Float",
            "discount": "Float",
            "grandTotal": "Float"
        },
        "customerDetails": {
            "type": "String",
            "uuid": "String",
            "countryCode": "String",
            "msisdn": "String",
            "email": "String",
            "name": "String",
            "preferredLanguage": "String",
            "personalNumber": "String",
            "organizationId": "String",
            "address": {
                "street": "String",
                "zip": "String",
                "city": "String",
                "country": "String"
            }
        },
    }
}

API returns a 404 error, it means requested order with ORDER_UUID could not be found in our system.

{
    "status_code": 404,
    "status_message": "Not Found",
    "message": "orderNotFound",
    "is_data": false,
    "data": null
}

API returns a 510 error, it means something failed on the server side

{
    "status_code": 510,
    "status_message": "Execution Exception Occurred",
    "message": "Something Went Wrong",
    "is_error": true,
    "errors": "Array"
}

Get Invoice Number By UUID

The Get Invoice Number By UUID endpoint enables your system to fetch the invoice number associated with a specific order, identified by its UUID. This can help in reconciling billing records, displaying invoice references to customers, or integrating with accounting systems.

Important: An invoice number is returned only when the order is an Invoiced order and in one of the following statuses:

If the order has not yet reached an invoiced-type status, this API will not return an invoice number.

You will find the endpoint path, authentication requirements, and example responses below.

EndPoint

GET https://demo-api.frontpayment.no/api/v1/connect/orders/invoice-number/{{ORDER_UUID}}

Authorization

Include a Bearer Token in the Authorization header. You can obtain this token from Front Payment.

Example:

Authorization: Bearer YOUR_FRONTPAYMENT_BEARER_TOKEN

Response

A successful request will return a 200 status with the following JSON payload:

{
    "status_code": 200,
    "status_message": "OK",
    "message": "orderInvoiceNoRetrievedSuccessfully",
    "is_data": true,
    "data": {
        "orderUuid": "ODR2005869234",
        "invoiceNumber": "99900753",
        "status": "REFUNDED"
    }
}

API returns a 404 error, it means requested order with ORDER_UUID could not be found in our system.

{
    "status_code": 404,
    "status_message": "Not Found",
    "message": "orderNotFound",
    "is_data": false,
    "data": null
}

API returns a 510 error, it means something failed on the server side

{
    "status_code": 510,
    "status_message": "Execution Exception Occurred",
    "message": "Something Went Wrong",
    "is_error": true,
    "errors": "Array"
}

Delayed Charge

With this API endpoint, you can charge from order using Order UUID.


Endpoint

POST https://demo-api.frontpayment.no/api/v1/connect/orders/delayed/charge/{{ORDER_UUID}}

Authorization

To access this endpoint, include a Bearer Token in the Authorization header of your request. You can obtain this token from Frontpayment.

Example Authorization Header: Authorization: Bearer YOUR_FRONTPAID_BEARER_TOKEN

Response

A successful request will return a 200 OK status with the following JSON payload:

{
    'status_code' => 200,
    'status_message' => 'OK',
    'message' => 'orderDelayedChargedSuccessfully',
    'is_data' => true,
    'data' => null,
}

API returns a 404 error, it means requested order with ORDER_UUID could not be found in our system.

{
    "status_code": 404,
    "status_message": "Not Found",
    "message": "orderNotFound",
    "is_data": false,
    "data": null
}

API returns a 510 error, it means something failed on the server side

{
    "status_code": 510,
    "status_message": "Execution Exception Occurred",
    "message": "somethingWentWrong",
    "is_error": true,
    "errors": "Array"
}