Allocates or releases specific seats in a cart item.
POST/api/v1/cart/allocateManualSeats
Flags or unflags seats for a given cart item and event session. Supports selecting seats with a rate or releasing previously selected seats. If no cart item exists, the endpoint creates a cart item automatically.
Note: Distanciation rules (social distancing) are not applied in the REST version. This is a design decision to simplify the initial implementation. If distanciation support is needed, it will be added in a future version.
SOAP Equivalent: AWSP_AllocSeatsManual
Examples
✅ Success (200)
{
"cartId": 12,
"cartItemId": 345,
"cartItemDetail": [
{
"rateId": 7,
"amount": 45.00,
"fees": 2.50,
"seatProperties": {
"seatId": 8901,
"categoryId": 3,
"contingentId": 10,
"designationId": 22,
"floorId": 1,
"blockId": 5,
"accessId": null,
"tribuneId": null,
"doorId": null,
"categoryLabel": "Catégorie 1",
"designationLabel": "Gradin",
"floorLabel": "Parterre",
"blockLabel": "Bloc A",
"accessLabel": null,
"tribuneLabel": null,
"doorLabel": null,
"rank": "A",
"seat": "12",
"coordX": 15.2,
"coordY": 8.7,
"status": 0,
"type": 100,
"isNumbered": true,
"rotation": 0
}
}
],
"errors": []
}
❌ Error 400 - Missing x-tenant header
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "Bad Request",
"status": 400,
"detail": "The x-tenant header is required"
}
❌ Error 422 - Validation failed
The endpoint validates request parameters before processing. Multiple validation errors can be returned.
Common validation errors:
CartIdmust be greater than or equal to 0CartItemIdmust be greater than or equal to 0EventSessionIdmust be greater than 0Detailmust contain at least one seat operationDetail[].SeatIdmust be greater than 0Detail[].RateIdmust be greater than 0CartItemIdmust be provided when deselecting seats (cannot deselect from a non-existent cart item)
Example - Invalid CartId:
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "Validation Failed",
"status": 422,
"detail": "The request contains 1 validation error(s)",
"errors": [
{
"field": "cartId",
"message": "CartId must be greater than or equal to 0"
}
],
"errorCount": 1,
"traceId": "00-abc123-def456-00",
"timestamp": "2025-01-15T10:30:45.123Z"
}
Example - Invalid CartItemId:
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "Validation Failed",
"status": 422,
"detail": "The request contains 1 validation error(s)",
"errors": [
{
"field": "cartItemId",
"message": "CartItemId must be greater than or equal to 0"
}
],
"errorCount": 1,
"traceId": "00-abc123-def456-00",
"timestamp": "2025-01-15T10:30:45.123Z"
}
Example - Invalid EventSessionId:
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "Validation Failed",
"status": 422,
"detail": "The request contains 1 validation error(s)",
"errors": [
{
"field": "eventSessionId",
"message": "EventSessionId must be greater than 0"
}
],
"errorCount": 1,
"traceId": "00-abc123-def456-00",
"timestamp": "2025-01-15T10:30:45.123Z"
}
Example - Empty Detail array:
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "Validation Failed",
"status": 422,
"detail": "The request contains 1 validation error(s)",
"errors": [
{
"field": "detail",
"message": "Detail must contain at least one seat operation"
}
],
"errorCount": 1,
"traceId": "00-abc123-def456-00",
"timestamp": "2025-01-15T10:30:45.123Z"
}
Example - Multiple validation errors (invalid SeatId and RateId):
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "Validation Failed",
"status": 422,
"detail": "The request contains 2 validation error(s)",
"errors": [
{
"field": "detail[0].seatId",
"message": "SeatId must be greater than 0"
},
{
"field": "detail[0].rateId",
"message": "RateId must be greater than 0"
}
],
"errorCount": 2,
"traceId": "00-abc123-def456-00",
"timestamp": "2025-01-15T10:30:45.123Z"
}
Example - Deselection with zero CartItemId:
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "Validation Failed",
"status": 422,
"detail": "The request contains 1 validation error(s)",
"errors": [
{
"field": "cartItemId",
"message": "CartItemId must be provided when deselecting seats. Cannot deselect seats from a non-existent cart item."
}
],
"errorCount": 1,
"traceId": "00-abc123-def456-00",
"timestamp": "2025-01-15T10:30:45.123Z"
}
❌ Error 422 - Cart validation failed (errorCode: 13001)
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "Cart validation failed",
"status": 422,
"detail": "The provided CartId does not match the cart item.",
"errorCode": 13001,
"errorCount": 1,
"traceId": "00-abc123-def456-00",
"timestamp": "2025-01-15T10:30:45.123Z"
}
❌ Error 422 - Event session validation failed (errorCode: 13002)
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "Event session validation failed",
"status": 400,
"detail": "The provided EventSessionId is not valid for this cart item.",
"errorCode": 13002,
"errorCount": 1,
"traceId": "00-abc123-def456-00",
"timestamp": "2025-01-15T10:30:45.123Z"
}
❌ Error 422 - Invalid cart item type (errorCode: 13003)
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "Invalid cart item type",
"status": 400,
"detail": "The cart item is not a CONNECT session.",
"errorCode": 13003,
"errorCount": 1,
"traceId": "00-abc123-def456-00",
"timestamp": "2025-01-15T10:30:45.123Z"
}
❌ Error 422 - Cart item disabled (errorCode: 13004)
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "Cart item disabled",
"status": 400,
"detail": "The cart item is disabled and cannot be modified.",
"errorCode": 13004,
"errorCount": 1,
"traceId": "00-abc123-def456-00",
"timestamp": "2025-01-15T10:30:45.123Z"
}
❌ Error 404 - Cart item not found (errorCode: 13005)
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.4",
"title": "Not Found",
"status": 404,
"detail": "The requested cart item was not found.",
"errorCode": 13005,
"errorCount": 1,
"traceId": "00-abc123-def456-00",
"timestamp": "2025-01-15T10:30:45.123Z"
}
❌ Error 500 - Server error
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.6.1",
"title": "Internal Server Error",
"status": 500,
"detail": "An unexpected error occurred",
"traceId": "00-abc123-def456-00"
}
SOAP to REST Field Mapping
| REST Field | SOAP Field | Notes |
|---|---|---|
| cartId | id_TemporaryOrder | Cart identifier (ID_FlagGroup), passed by ref |
| cartItemId | id_TemporaryOrderRow | Cart item identifier (ID_InterfaceFlag), passed by ref |
| eventSessionId | id_CatalogDate | Catalog content / session identifier |
| detail[].seatId | listAllocRequest[].ID_Seat | Seat to flag/unflag |
| detail[].rateId | listAllocRequest[].ID_Rate | Rate applied when selecting |
| detail[].actionSelect | listAllocRequest[].ActionSelect | true = select, false = unselect |
| cartItemDetail[].rateId | listAllocSeats[].ID_Rate | Rate identifier for allocated seat |
| cartItemDetail[].amount | listAllocSeats[].Amount | Seat price amount |
| cartItemDetail[].fees | listAllocSeats[].Fees | Additional fees for the seat |
| cartItemDetail[].seatProperties | listAllocSeats[].Seat_Detail | Complete seat properties |
| errors[].seatId | listAllocError[].ID_Seat | Seat identifier that produced the error |
| errors[].error | listAllocError[].Error | Error code (aligns with SOAP error codes) |
Request
Responses
- 200
- 400
- 401
- 404
- 422
- 500
OK
Bad Request
Unauthorized
Not Found
Unprocessable Content
Internal Server Error