Port Community Systems CargoManifests API

Cargo manifest declarations

OpenAPI Specification

port-community-systems-cargomanifests-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Portbase Port Community System CargoManifests API
  description: Portbase is the Dutch Port Community System providing APIs for customs declarations, cargo manifests, vessel call notifications, berth planning, and port logistics coordination at the Port of Rotterdam and Amsterdam, connecting shipping lines, freight forwarders, customs authorities, and terminal operators.
  version: 1.0.0
  contact:
    name: Portbase Support
    url: https://www.portbase.com/en/contact/
  license:
    name: Portbase Terms of Service
    url: https://www.portbase.com/en/about-portbase/terms-and-conditions/
servers:
- url: https://api.portbase.com/v1
  description: Portbase Production API
security:
- oauth2: []
tags:
- name: CargoManifests
  description: Cargo manifest declarations
paths:
  /cargo-manifests:
    post:
      operationId: submitCargoManifest
      summary: Submit cargo manifest
      description: Submits a cargo manifest declaration for a vessel call, listing all cargo on board.
      tags:
      - CargoManifests
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CargoManifestCreate'
      responses:
        '201':
          description: Manifest submitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CargoManifest'
        '400':
          $ref: '#/components/responses/BadRequest'
  /cargo-manifests/{manifestId}:
    get:
      operationId: getCargoManifest
      summary: Get cargo manifest
      description: Returns a cargo manifest with all cargo lines and customs status.
      tags:
      - CargoManifests
      parameters:
      - name: manifestId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Cargo manifest details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CargoManifest'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  responses:
    BadRequest:
      description: Invalid request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    CargoManifestLine:
      type: object
      properties:
        lineNumber:
          type: integer
        containerNumber:
          type: string
        billOfLadingNumber:
          type: string
        cargoDescription:
          type: string
        hsCode:
          type: string
          description: HS tariff code (6 digits)
        grossWeight:
          type: number
          format: double
        grossWeightUnit:
          type: string
          enum:
          - KG
          - MT
        packageCount:
          type: integer
        packageType:
          type: string
        portOfLoading:
          type: string
          description: UN/LOCODE of port of loading
        portOfDischarge:
          type: string
          description: UN/LOCODE of port of discharge
        shipper:
          type: string
        consignee:
          type: string
    CargoManifestCreate:
      type: object
      required:
      - vesselCallId
      - declarantId
      - lines
      properties:
        vesselCallId:
          type: string
        declarantId:
          type: string
        lines:
          type: array
          items:
            $ref: '#/components/schemas/CargoManifestLine'
    CargoManifest:
      type: object
      properties:
        manifestId:
          type: string
        vesselCallId:
          type: string
        declarantId:
          type: string
          description: EORI number of the declarant
        submissionDatetime:
          type: string
          format: date-time
        status:
          type: string
          enum:
          - DRAFT
          - SUBMITTED
          - ACCEPTED
          - REJECTED
          - RELEASED
        lines:
          type: array
          items:
            $ref: '#/components/schemas/CargoManifestLine'
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        details:
          type: array
          items:
            type: string
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://auth.portbase.com/oauth2/token
          scopes:
            vessel-calls.read: Read vessel call data
            vessel-calls.write: Submit and update vessel calls
            manifests.write: Submit cargo manifests
            customs.write: Submit customs declarations