For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
    • Introduction
    • URL Structure
    • API Key
    • Errors
    • Versioning
    • Pagination
    • Replication
    • Rate Limits
    • Webhooks
  • System Services
    • Companies
    • Hello World
  • Accounts
  • Ticketing
    • Getting started
    • Catalog
    • Capacity
    • Tickets
    • Reservations
    • Schedule
  • Memberships
    • Catalog
    • Membership
    • Member
    • Card
    • Payment Method
    • Lifecycle
    • Miscellaneous
    • Points
  • Speedgate
  • Attraction Wallet
  • OTA Channel Manager
    • Getting started
    • Orders
      • POSTCreate Order
      • GETGet Order
      • GETList Orders by Partner
      • POSTConfirm Order
      • PUTReplace Order
      • DELDelete Order
  • POS
    • POS Sale
    • POS Entry
    • POS Unit
    • POS Store
    • Salesperson
    • External POS Sale
    • Global POS Entry
  • Restaurant
  • Inventory
    • Barcodes
    • Items
    • Item Ledger Entries
    • Item Categories
    • Item Variants
    • Item Translations
  • Coupon
  • Vouchers
    • Vouchers
  • Sales Documents
    • Ecommerce
  • Finance
    • General Ledger Account
    • General Ledger Entries
    • General Ledger Journal
  • Customers
    • Customers
    • GDPR
  • Retail Print
    • Print Price Labels
  • PDF Designer
LogoLogo
OTA Channel ManagerOrders

Confirm Order

POST
https://api.npretail.app/:tenant/:environment/:company/channelManager/:orderId/confirm
POST
/:tenant/:environment/:company/channelManager/:orderId/confirm
$curl -X POST https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./channelManager/9c6b2f4e-2b71-4d23-9d6a-a3b4c5d6e7f8/confirm \
> -H "x-np-api-key: <NaviPartner API Key>" \
> -H "Content-Type: application/json" \
> -d '{
> "paymentReference": "PAY-987654"
>}'
200Confirm a draft order
1{
2 "orderId": "9c6b2f4e-2b71-4d23-9d6a-a3b4c5d6e7f8",
3 "status": "Issued",
4 "statusMessage": "",
5 "partnerId": "21e8c1d2-3f4a-4c5b-9e6d-7f8a9b0c1d2e",
6 "sellToOrderReference": "PARTNER-ORDER-2026-00042",
7 "buyFromOrderReference": "CM-20260515093000-A1B2",
8 "receivedAt": "2026-05-15T09:30:00Z",
9 "items": [
10 {
11 "lineNo": 100000,
12 "itemNumber": "31001",
13 "description": "Castle Admission",
14 "isPackage": false,
15 "quantity": 1,
16 "visitDate": "2026-06-01",
17 "visitTime": "10:30:00",
18 "wallets": [
19 {
20 "seqNo": 1,
21 "assets": [
22 {
23 "id": "2c3a84c7-059f-41d3-8033-0d94e08d4b13",
24 "type": "ticket",
25 "assetId": "3d4b95d8-16e0-42e4-9b2a-1d95f08d5c14",
26 "referenceNumber": "ATF-BIL010665L-3",
27 "itemNumber": "31001",
28 "description": "Castle Admission"
29 }
30 ],
31 "walletId": "5a1c2b3d-4e5f-6071-8293-a4b5c6d7e8f9",
32 "walletReferenceNumber": "141234529930210327",
33 "externalReferenceNumber": "JD-2026-001",
34 "name": "Jane Doe",
35 "issuedAt": "2026-05-15T09:30:05Z",
36 "unitPriceExclVat": 80,
37 "unitPriceInclVat": 100,
38 "currencyCode": "DKK",
39 "manifestUrl": "https://manifests.npretail.app/wallets/manifest?mid=9c6b2f4e-2b71-4d23-9d6a-a3b4c5d6e7f8"
40 }
41 ],
42 "sellToName": "Jane Doe",
43 "sellToEmail": "guest@example.com",
44 "sellToLanguage": "ENU"
45 }
46 ],
47 "sellToEmail": "guest@example.com",
48 "sellToName": "Jane Doe",
49 "sellToLanguage": "ENU",
50 "paymentReference": "PAY-987654",
51 "jobId": "TM-IMPORT-000123",
52 "manifestUrl": "https://manifests.npretail.app/wallets/manifest?mid=9c6b2f4e-2b71-4d23-9d6a-a3b4c5d6e7f8"
53}
Release a `Draft` order to `Issued`, supplying the partner-side payment reference. Confirming an order that is already `Issued` is a no-op — the order is returned unchanged. Confirming an order in any other status returns `400 Bad Request`. Use `confirmOrder` when payment is captured separately from order creation. If you already have the payment reference at order creation time, include `paymentReference` directly in `createOrder` instead.
Was this page helpful?
Previous

Replace Order

Next
Built with

Release a Draft order to Issued, supplying the partner-side payment reference.

Confirming an order that is already Issued is a no-op — the order is returned unchanged. Confirming an order in any other status returns 400 Bad Request.

Use confirmOrder when payment is captured separately from order creation. If you already have the payment reference at order creation time, include paymentReference directly in createOrder instead.

Authentication

x-np-api-keystring
API Key authentication via header

Path parameters

tenantstringRequired

Your Entra Tenant ID. More details.

environmentstringRequired

Your Business Central Environment. More details.

companystringRequired

Your Business Central Company. More details.

orderIdUUIDRequired
Globally unique identifier of an OTA Channel Manager order, assigned when the order is accepted.

Headers

x-api-versiondateOptional

Used for API versioning. More details.

Request

This endpoint expects an object.
paymentReferencestringRequired

Reference to the partner-side payment transaction. May be supplied at order creation, or later via confirmOrder. Required to move an order from Draft to Issued. Maximum 50 characters.

Response

This endpoint returns an object.
orderIdUUID
Globally unique identifier of an OTA Channel Manager order, assigned when the order is accepted.
statusenum

Lifecycle state of an OTA Channel Manager order. The terminal states are Issued, Draft, Cancelled, and Error. The non-terminal states (Submitted, Scheduled, Processing) belong to the asynchronous issuance pipeline:

  • Submitted — async order is queued for background processing.
  • Scheduled — order has been picked up for processing.
  • Processing — ticket and coupon issuance is running.
  • Draft — assets are issued but no paymentReference was supplied. Call confirmOrder to release the order to Issued.
  • Issued — all assets have been issued, coupons have been posted, and the wallet manifest is available at manifestUrl.
  • Cancelled — order has been cancelled. Wallets are destroyed but the order row is retained for audit.
  • Error — issuance failed. Inspect statusMessage for details. The order can be replaced (replaceOrder) to retry, or deleted (deleteOrder) to remove it.
statusMessagestring

Human-readable detail about the current status, set by the OTA Channel Manager. Populated for Error; empty otherwise.

partnerIdUUID

Globally unique identifier of the OTA Channel Manager partner that originated the order. The partner must exist and be active in the OTA Channel Manager Partner Setup; otherwise the order is rejected.

sellToOrderReferencestring

The partner’s own reference for the order. Unique per partner; combined with partnerId it identifies the order end-to-end. Maximum 50 characters.

buyFromOrderReferencestring

The OTA Channel Manager’s own document number for the order, used as a stable identifier for partner-side reconciliation. Maximum 20 characters.

receivedAtdatetime
UTC timestamp recorded when the OTA Channel Manager accepted the order. ISO 8601.
itemslist of objects
sellToEmailstring

Email address of the customer the order is sold to. Stored on the order and on each issued wallet for the partner’s own use; the OTA Channel Manager does not send anything to this address. Maximum 100 characters. Can be overridden per item.

sellToNamestring
Name of the customer the order is sold to. Maximum 100 characters. Can be overridden per item.
sellToLanguagestring

Language code (uppercased) for the customer the order is sold to. Used to localize the description fields on items and assets via Item Translation. Must be a valid Business Central language code. Maximum 10 characters. Can be overridden per item.

paymentReferencestring

Reference to the partner-side payment transaction. May be supplied at order creation, or later via confirmOrder. Required to move an order from Draft to Issued. Maximum 50 characters.

jobIdstring
Background job identifier assigned by the OTA Channel Manager when ticket issuance has been performed for an order. Empty until issuance has begun.
manifestUrlstring
URL of the printable wallet manifest, populated once asset issuance has completed.