Skip to main content

Send EHF Invoice

With this API endpoint, you can export orders to Front Payment Go and get payment URLs in return.


Endpoint

POST https://demo-api.frontpayment.no/api/v1/connect/orders/ehf/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.

Example Authorization Header: Authorization: Bearer YOUR_FRONTPAID_BEARER_TOKEN

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": "1754928405"1703040812",
    "customerDetails": {
        "countryCode": "+47",
        "msisdn": "46567468",
        "email": "kari_nordman@yopmail.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,
    "invoiceReferences": {
        "referenceNo": "66346334",
        "customerReference": "350530",
        "receiptNo": "3535353345",
        "invoiceInterval": 0,
    "separateInvoices": true,
    "invoiceMaturity"referenceNo":10 null,
    "customerReference": null,
    "callback": {
        "callbackUrl": "https://example.com/callback-url"
    },
}

Validation Rules

Make sure your request meets the following requirements:

willnotifywhenorder
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
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.
sendOrderBy.smsrequired | booleanRequired. true or false
sendOrderBy.emailrequired | booleanRequired. true or false
sendOrderBy.invoicerequired | booleanRequired. true or false
isCreditCheckAvailablerequired | booleanRequired. true or false
invoiceAsPaymentOptionrequired | booleanRequired. true or false
customerDetails.customerUuidnullable | stringNullable.
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 required | string Required. Customer's language (e.g., NO, EN).
customerDetails.personalNumberorganizationId required | string | max:119 Required. Customer's personalOrganization identification number, must be 119 characters.
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.
invoiceReferencesinvoiceInterval nullablesometimes | arraynumeric NullableOptional. ThisDefault fieldvalue acceptsis an= array0. ofYou invoicecan reference.change Canit beto omitted0, if1, there2. areDaily no= invoice0, references.Once a month = 1, Twice a month = 2.
invoiceReferences.invoiceFeeApplicablerequired | booleanRequired. Default value is true.
invoiceMaturitysometimes | numericOptional. Default value is 10. if you want to set the value then give your value 0 or 10.
separateInvoicessometimes | booleanOptional. Default value is true.
referenceNo nullable | string Nullable. Any reference number for the order.number.
invoiceReferences.customerReference nullable | string Nullable. Any referencevalue for thecustomer customer.reference .
invoiceReferences.receiptNocallback.callbackUrl nullable | stringNullable. Any number for the receipt.
invoiceReferences.customerNotesnullable | stringNullable. Any notes from the customer.
invoiceReferences.tncnullable | stringNullable. Any notes from the customer for terms and conditions.
internalReferencesnullablerequired | array Nullable . This field accepts an array of internal reference. Can be omitted if there are no internal reference.
internalReferences.referenceNonullable | stringNullableRequired. AnyThe referenceURL numberwe .
internalReferences.notes nullablestatus | stringNullable. Any string for interenal refernce note.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"
}