Skip to main content

Create Session for Invoice Order

WithThis thisendpoint API endpoint,allows you canto export an order as an invoice to Front Payment Go. andUpon getsuccessful ansubmission, it returns:

  • Order UUID
  • Universal
  • Customer UniqueUUID
  • Bank ID Verification URL (UUID)for incustomer return.identity

    verification)

  • Request

    :

    Example

    Success
    {
      
    • Endpoint
    :https://demo-api.frontpayment.no/api/v1/connect/orders/regular/invoice/submit
  • Method: POST
  • Authorization: Bearer <token>

  • Payload Schema

    FieldTypeDescription
    products.*.namestringRequired. Product name.
    Methodproducts.*.productId :string POSTOptional. Unique identifier (max: 25 chars).
    Authorizationproducts.*.quantity :numeric BearerRequired. Quantity of product.
    Payload Validationsproducts.*.rate :numeric Required.
    'products.*.name'Unit => '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',
    'dueDateForPaymentLink' => 'required_if:invoiceInterval,0|string',
    'sendOrderBy.sms' => 'required|boolean',
    'sendOrderBy.email' => 'required|boolean',
    'sendOrderBy.invoice' => 'required|boolean',
    'isCreditCheckAvailable' => 'required|boolean',
    'invoiceAsPaymentOption' => 'required|boolean',
    '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|required_if:submitPayment.via,invoice|string|regex:/^\d{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.receiptNo' => 'nullable|string',
    'invoiceReferences.customerNotes' => 'nullable|string',
    'invoiceReferences.tnc' => 'nullable|string',
    'internalReferences' => 'nullable|array',
    'internalReferences.referenceNo' => 'nullable|string',
    'internalReferences.notes' => 'nullable|string',
    'submitPayment' => 'required|array',
    'submitPayment.via' => 'required|string|in:invoice',
    'invoiceInterval' => 'sometimes|numeric|in:0,1,2',
    'separateInvoices' => 'sometimes|boolean',
    'callback' => 'required|array',
    'callback.success' => 'required|string',
    'callback.failure' => 'required|string'
    rate/price.
    About Payloadproducts.*.discount :numeric Optional.

    invoiceInterval,Discount Daily = 0, Once a month = 1, Twice a month = 2.

    applied.
    Example Payloadproducts.*.tax :numeric Required. Tax applied.
    products.*.amountnumericRequired. Total amount after calculation.
    orderSummary.subTotalnumericRequired. Subtotal of all items.
    orderSummary.totalTaxnumericRequired. Total tax.
    orderSummary.shippingCostnumericRequired. Shipping cost.
    orderSummary.totalDiscountnumericRequired. Total discount.
    orderSummary.grandTotalnumericRequired. Grand total.
    orderDatestringRequired. Order date (timestamp).
    referenceNostringOptional. Reference number.
    customerReferencestringOptional. Customer reference.
    invoiceIntervalnumericOptional. Invoice interval (allowed: 0,1,2).
    separateInvoicesbooleanOptional. Whether invoices should be separated.
    invoiceFeeApplicablebooleanRequired. Whether invoice fee applies.
    invoiceMaturitynumericOptional. Invoice maturity period.
    callback.callbackUrlurlOptional. General callback URL.
    callback.successstringRequired. Success callback URL.
    callback.failurestringRequired. Failure callback URL.
    settings.secureDetailsbooleanOptional. Enable secure details.
    orderFromstringOptional. Must be "DAMP" if present.
    fpgoUuidstringOptional. Must exist in App\Models\Order.
    customerDetails.typestringRequired. Customer type (private/corporate).
    customerDetails.countryCodestringRequired. Customer country code.
    customerDetails.msisdnstringRequired. Customer mobile number.
    customerDetails.emailemailRequired. Customer email address.
    customerDetails.namestringRequired. Customer full name.
    customerDetails.personalNumberstringOptional. Required if submitPayment.via=invoice. Must be 11 digits.
    customerDetails.preferredLanguagestringOptional. Preferred language.
    customerDetails.organizationIdstringRequired if corporate. Must be alphanumeric.
    customerDetails.address.streetstringRequired. Street address.
    customerDetails.address.zipstringRequired. ZIP code.
    customerDetails.address.citystringRequired. City.
    customerDetails.address.countrystringRequired. Country code (e.g., "NO").

    Example Request

    {
      "products": [
        {
          "name": "Router",
          "productId": "R_1",
          "quantity": "1",
          "rate": 4500,40,
          "discount": 0,
          "tax": "12"0",
          "amount": 450040
        }
      ],
      "orderSummary": {
        "subTotal": "4017.86"40",
        "totalTax": "482.14"0",
        "totalDiscount": "0.00",
        "grandTotal": "4500.40",
        "shippingCost": "0.00"
      },
      "orderDate": "2 Aug, 2023"1755150488",
        "dueDateForPaymentLink": "1691125906",
        "sendOrderBy": {
            "sms": false,
            "email": false,
            "invoice": true
        },
        "invoiceAsPaymentOption": true,
        "isCreditCheckAvailable": false,
      "customerDetails": {
        "type": "private",
        "countryCode": "+47",
        "msisdn": "46567468",
        "email": "karinordmann@yopmail.zahid@yopmail.com",
        "name": "Kari Nordmann"Zahidul",
        "preferredLanguage": "en",
        "personalNumber": null,"28038712383",
        "organizationId": null,"",
        "address": {
          "street": "LuramyrveienKlosterenget 65"144",
          "zip": "4313"7030",
          "city": "Sandnes"Trondheim",
          "country": "NO"
        }
      },
      "invoiceReferences"referenceNo": null,"Dhaka",
      "internalReferences"customerReference": null,"3500",
      "invoiceInterval": 0,
      "separateInvoices": true,
      "submitPayment"invoiceFeeApplicable": {true,
      "via"invoiceMaturity": "invoice",
            "currency": "NOK"
        },10,
      "callback": {
        "callbackUrl": "https://wp.frontpayment.no/?order_identifier=rRbl1FWZG59o&order_status=success",
        "success": "https://www.wp.frontpayment.no/?order_identifier=rRbl1FWZG59o&order_status=success",
        "failure": "https://www.frontpayment.no/failure"?order_identifier=rRbl1FWZG59o&order_status=failed"
      }
    }
    

    Response Structure"status_code": 201, "status_message": "OK", "message": "orderCreatedSuccessfully", "is_data": true, "data": { "orderUuid": "ODR4286244937", "customerUuid": "CSRT3419523642", "bankIdUrl": "https://auth.current.bankid.no/precheck/auth?...state=eyJvcmRlclV1aWQiOiJPRFI0Mjg2MjQ0OTM3IiwiY29ubmVjdCI6InllcyJ9" } }

    Other Responses

    Order Submitted (202)

    {
      "status_code": 202,
      "status_message": "OK",
      "message": "Order Submitted Successfully",
      "is_data": true,
      "data": {
        "orderUuid": "String",
        "paymentUrl": "String"
      }
    }
    

    Internal Error (500)

    {
      "status_code": 500,
      "status_message": "Internal Dependency Error",
      "message": "Internal Error Occurred Please Try Again Later",
      "is_error": true,
      "errors": {
        "happenedAt": "String",
        "internalErrorDetails": "Array"
      }
    }
    

    Execution Exception (510)

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

    Example Response:
    {
        "status_code": 202,
        "status_message": "OK",
        "message": "Order Submitted Successfully",
        "is_data": true,
        "data": {.
          "orderUuid": "ODR123456789",
          "paymentUrl": "https://example-url.com/loremipsum-dolor"
        }
    }