openapi: 3.1.0 info: title: INTTRA Ocean Execution API (e2open) Bookings API description: INTTRA (now part of e2open) provides ocean execution APIs for the world's largest multi-carrier e-commerce platform for global shipping. The RESTful API uses HTTPS with JSON for booking, ocean schedules, rates, and visibility/track and trace products. Authentication requires a bearer token obtained from the identity service before making API requests. version: 1.0.0 contact: name: INTTRA / e2open Support url: https://knowledge.e2open.com/knowledgecenter/inttra-resources/ license: name: e2open Terms url: https://www.inttra.com/legal/ servers: - url: https://api.inttra.com/v1 description: INTTRA Ocean Execution API Production security: - bearerAuth: [] tags: - name: Bookings description: Ocean shipping booking management paths: /bookings: get: operationId: listBookings summary: List ocean bookings description: Returns a list of ocean shipping bookings. Supports filtering by carrier, booking date, port of origin, port of destination, and booking status. tags: - Bookings parameters: - name: carrier in: query description: Filter by carrier SCAC code schema: type: string example: MAEU - name: status in: query description: Filter by booking status schema: type: string enum: - PENDING - CONFIRMED - CANCELLED - AMENDED - name: originPort in: query description: UN/LOCODE for origin port schema: type: string example: USLAX - name: destinationPort in: query description: UN/LOCODE for destination port schema: type: string example: CNSHA - name: bookedAfter in: query description: Filter bookings created after this date (ISO 8601) schema: type: string format: date - name: limit in: query schema: type: integer default: 50 maximum: 200 - name: offset in: query schema: type: integer default: 0 responses: '200': description: List of ocean bookings content: application/json: schema: $ref: '#/components/schemas/BookingList' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createBooking summary: Create an ocean booking description: Submits a new ocean booking request to the specified carrier through the INTTRA network. Returns a booking confirmation with carrier booking reference. tags: - Bookings requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BookingRequest' responses: '201': description: Booking submitted content: application/json: schema: $ref: '#/components/schemas/Booking' '400': $ref: '#/components/responses/BadRequest' /bookings/{bookingId}: get: operationId: getBooking summary: Get booking details description: Returns full details for a specific ocean booking. tags: - Bookings parameters: - name: bookingId in: path required: true description: INTTRA booking identifier schema: type: string responses: '200': description: Booking details content: application/json: schema: $ref: '#/components/schemas/Booking' '404': $ref: '#/components/responses/NotFound' put: operationId: amendBooking summary: Amend an existing booking description: Modifies an existing ocean booking. Subject to carrier acceptance. tags: - Bookings parameters: - name: bookingId in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BookingAmendment' responses: '200': description: Booking amendment submitted content: application/json: schema: $ref: '#/components/schemas/Booking' /bookings/{bookingId}/cancel: post: operationId: cancelBooking summary: Cancel a booking description: Cancels an ocean booking. Subject to carrier cancellation policies. tags: - Bookings parameters: - name: bookingId in: path required: true schema: type: string requestBody: required: false content: application/json: schema: type: object properties: reason: type: string responses: '200': description: Booking cancelled components: responses: NotFound: description: Resource not found content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Missing or invalid bearer token content: application/json: schema: $ref: '#/components/schemas/Error' BadRequest: description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' schemas: TradeParty: type: object properties: name: type: string address: type: string city: type: string country: type: string pattern: ^[A-Z]{2}$ email: type: string format: email phone: type: string BookingRequest: type: object required: - carrier - originPort - destinationPort - etd - containers properties: carrier: type: string description: Carrier SCAC code originPort: type: string description: UN/LOCODE origin port destinationPort: type: string description: UN/LOCODE destination port etd: type: string format: date shipper: $ref: '#/components/schemas/TradeParty' consignee: $ref: '#/components/schemas/TradeParty' containers: type: array minItems: 1 items: $ref: '#/components/schemas/ContainerRequest' commodity: type: string specialInstructions: type: string Vessel: type: object properties: vesselName: type: string imoNumber: type: string pattern: ^[0-9]{7}$ callSign: type: string BookingList: type: object properties: total: type: integer offset: type: integer bookings: type: array items: $ref: '#/components/schemas/BookingSummary' BookingAmendment: type: object properties: containers: type: array items: $ref: '#/components/schemas/ContainerRequest' etd: type: string format: date reason: type: string Container: type: object properties: containerNumber: type: string containerType: type: string enum: - 20GP - 40GP - 40HC - 45HC - 20RF - 40RF - 20OT - 40OT sealNumber: type: string weightKg: type: number Booking: allOf: - $ref: '#/components/schemas/BookingSummary' - type: object properties: booker: type: object properties: name: type: string email: type: string shipper: $ref: '#/components/schemas/TradeParty' consignee: $ref: '#/components/schemas/TradeParty' containers: type: array items: $ref: '#/components/schemas/Container' commodity: type: string vessel: $ref: '#/components/schemas/Vessel' voyage: type: string submittedAt: type: string format: date-time confirmedAt: type: string format: date-time BookingSummary: type: object properties: bookingId: type: string description: INTTRA booking reference carrierBookingReference: type: string description: Carrier-assigned booking reference carrier: type: string description: Carrier SCAC code status: type: string enum: - PENDING - CONFIRMED - CANCELLED - AMENDED originPort: type: string destinationPort: type: string etd: type: string format: date description: Estimated time of departure eta: type: string format: date description: Estimated time of arrival ContainerRequest: type: object required: - containerType - quantity properties: containerType: type: string enum: - 20GP - 40GP - 40HC - 45HC - 20RF - 40RF quantity: type: integer minimum: 1 weightKg: type: number Error: type: object properties: code: type: string message: type: string details: type: string securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: Bearer token obtained from the INTTRA identity service