Maersk Bill of Lading API

DCSA-compliant Carrier Bill of Lading (eBL) API. Retrieve, approve, and surrender electronic transport documents per the DCSA eBL 3.0 interface standard.

OpenAPI Specification

maersk-bill-of-lading-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Maersk Bill of Lading API
  description: >
    DCSA-compliant Carrier Bill of Lading (eBL) API. Retrieve, issue, and
    surrender electronic transport documents for ocean shipments per the
    DCSA eBL 3.0 interface.
  version: '3.0'
  contact:
    name: Maersk Developer Support
    url: https://developer.maersk.com/support

servers:
  - url: https://api.maersk.com
    description: Production Gateway

security:
  - ConsumerKey: []
  - OAuth2: [ebl]

tags:
  - name: BillOfLading
    description: Electronic bill of lading lifecycle.

paths:
  /dcsa/ebl/v3/transport-documents/{transportDocumentReference}:
    get:
      summary: Get Transport Document
      description: Retrieve the current state of a carrier transport document.
      operationId: getTransportDocument
      tags:
        - BillOfLading
      parameters:
        - name: transportDocumentReference
          in: path
          required: true
          schema:
            type: string
        - name: Consumer-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Transport document returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransportDocument'
        '404':
          description: Document not found.

  /dcsa/ebl/v3/transport-documents/{transportDocumentReference}/approve:
    patch:
      summary: Approve Transport Document
      description: Shipper approval of the carrier-issued draft transport document.
      operationId: approveTransportDocument
      tags:
        - BillOfLading
      parameters:
        - name: transportDocumentReference
          in: path
          required: true
          schema:
            type: string
        - name: Consumer-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Approval recorded.

components:
  securitySchemes:
    ConsumerKey:
      type: apiKey
      in: header
      name: Consumer-Key
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.maersk.com/customer-identity/oauth/v2/access_token
          scopes:
            ebl: Read and update eBL documents.
  schemas:
    TransportDocument:
      type: object
      properties:
        transportDocumentReference:
          type: string
        transportDocumentTypeCode:
          type: string
          enum: [BOL, SWB]
          description: Bill of Lading or Sea Waybill.
        transportDocumentStatus:
          type: string
          enum: [DRAFT, APPROVED, ISSUED, SURRENDERED, VOIDED]
        shipperParty:
          $ref: '#/components/schemas/Party'
        consigneeParty:
          $ref: '#/components/schemas/Party'
        carrierCode:
          type: string
        issueDate:
          type: string
          format: date
        placeOfIssue:
          type: object
          properties:
            UNLocationCode:
              type: string
        cargoMovementTypeAtOrigin:
          type: string
        cargoMovementTypeAtDestination:
          type: string
    Party:
      type: object
      properties:
        partyName:
          type: string
        address:
          type: object
          properties:
            street:
              type: string
            city:
              type: string
            countryCode:
              type: string
        partyContactDetails:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              email:
                type: string
              phone:
                type: string