Skip to main content

Confirms a cart into a paid order (creation, payment and optional ticket registration).

POST 

/api/v1/order/confirm

Finalizes the cart by creating the order rows, paying them with the session payment mode, and optionally registering the tickets already printed by the partner (or requesting their server-side generation). Already confirmed cart items are replayed idempotently: their existing order rows are returned without being recreated and without burning a new order number.

SOAP Equivalent: AWSP_OrderConfirm (see docs/developer-guides/api-development/soap-endpoints-reference.md)

Examples

Success (200)

{
"orderId": 7001,
"orderItems": [
{ "orderItemId": 8001, "cartItemId": 201 },
{ "orderItemId": 8002, "cartItemId": 202 }
]
}

Error 400 - Missing x-tenant header

{
"type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
"title": "Bad Request",
"status": 400,
"detail": "The x-tenant header is required"
}

Error 400 - Validation failed

{
"type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
"title": "Bad Request",
"status": 400,
"detail": "CartId must be greater than 0 or CartItems must not be empty"
}

Error 400 - Order confirmation failed (legacy 10213)

{
"type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
"title": "Order confirmation failed",
"status": 400,
"detail": "No requested cart item could be confirmed (legacy WSM_OrderConfirm 10213)."
}

Error 400 - Concurrent payment modification (10128)

{
"type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
"title": "Concurrent payment modification",
"status": 400,
"detail": "Some order rows are no longer payable (modified concurrently). Nothing was applied — retry the confirmation."
}

Error 400 - Order paid, printing failed (10129)

{
"type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
"title": "Order paid, printing failed",
"status": 400,
"detail": "The order was created and paid, but ticket printing failed. The order is valid — retry the confirmation to re-print (idempotent)."
}

Error 500 - Server error

{
"type": "https://tools.ietf.org/html/rfc9110#section-15.6.1",
"title": "Internal Server Error",
"status": 500,
"detail": "An unexpected error occurred",
"traceId": "00-abc123-def456-00"
}

SOAP to REST Field Mapping

REST FieldSOAP FieldNotes
cartIdid_TemporaryOrder0 is legal: the cart is resolved from the first cart item
cartItems[]listTemporaryOrderRowOne entry per cart item (InterfaceFlag) to confirm
cartItems[].cartItemIdID_TemporaryOrderRowThe InterfaceFlag identifier
cartItems[].isAlreadyPrintedisAlredyPrintedLegacy typo kept on the SOAP side only
cartItems[].seats[]listSeatUsed only for printing (required when isAlreadyPrinted)
cartItems[].seats[].seatIdID_SeatThe Article identifier
cartItems[].seats[].barCodeBarCode"-1" requests the server-side generation
cartItems[].seats[].supportTypeSupportType400=TICKET, 401=ETICKET, 402=CARTE, 403=MTICKET
cartItems[].seats[].supportIdID_SupportDead legacy field, accepted and ignored
cartItems[].seats[].fiscalNumberFiscalNumber"-1" requests the server-side generation
cartItems[].seats[].externOrderIdExternOrderIDDead legacy field, accepted and ignored
cartItems[].seats[].externIdentityIdID_DistantIdentityDead legacy per-seat field, accepted and ignored
identities[]listDetailconsumerOnly the main identity is persisted (legacy SaveConsumer)
identities[].externIdentityIdID_DistantIdentityProvider-side identity identifier
identities[].nameName
identities[].firstNameSurname
identities[].address1..4Address1..4
identities[].zipCodeZipCode
identities[].cityCity
identities[].countryCountry
identities[].phone / mobile / emailPhone / Mobile / EMail
mainIdentityIdid_IdentityMainSelects the consumer among identities (0 = first one)
orderId (response)ID_Order
orderItems[] (response)listIDOrderowCart item → order row mapping

Idempotency & retry (important)

This endpoint is idempotent on retry of the same request. On any error or timeout, the partner MUST retry the same confirmation (same cartId and same cartItems) — do not start over with a new cart.

  • Already-confirmed cart items are replayed: their existing order rows are returned, no new order number is burnt, and no second payment is made.
  • The 400 outcomes below are retriable: 10128 (concurrent payment modification — nothing was applied) and 10129 (order created and paid, but printing failed — retry re-prints idempotently).
  • Why retrying the same request matters: order creation persists row by row, so a failure midway can leave part of the cart already reserved against the order. Retrying the same confirmation completes the remaining rows into the same order and pays them. Starting a new cart instead would leave those reserved seats stranded (they are no longer in the cart, so the cart auto-cleanup does not reclaim them).

Request

Responses

OK