"$schema": https://json-schema.org/draft/2020-12/schema
title: Dangerous Goods Declaration
description: A document completed by the consignor declaring that dangerous goods in a consignment are properly described, classified, packaged, marked and labelled in accordance with the applicable dangerous goods regulations.
type: object
required:
  - "@context"
  - type
  - credentialSchema
  - issuer
  - credentialSubject
properties:
  "@context":
    type: string
    format: uri
    description: 'Linked Data context for semantic interoperability'
    const: "https://un.opensource.unicc.org/unece/uncefact/spec-unvtd/dangerous-goods-declaration-context.json"
  type:
    type: array
    description: 'Credential types'
    items:
      type: string
      enum:
        - VerifiableCredential
        - DangerousGoodsDeclaration
    minItems: 2
    maxItems: 2
    example:
      - VerifiableCredential
      - DangerousGoodsDeclaration
  credentialSchema:
    type: object
    description: 'Reference to the credential schema for validation'
    properties:
      id:
        type: string
        format: uri
        const: "https://un.opensource.unicc.org/unece/uncefact/spec-unvtd/dangerous-goods-declaration-schema.yaml"
        description: 'Public location of the schema'
      type:
        type: string
        const: "JsonSchema"
        description: 'Schema type identifier'
    required:
      - id
      - type
  id:
    type: string
    format: uri
    description: 'Unique identifier for the credential'
    example: "urn:uuid:dgd-2025-au-001234"
  validFrom:
    example: 2025-03-11T00:00:00Z
    type: string
    format: date-time
    description: 'Credential validity start date'
  validTo:
    example: 2026-03-11T00:00:00Z
    type: string
    format: date-time
    description: 'Credential validity end date'
  issuer:
    description: 'Identifier of the consignor issuing the dangerous goods declaration (e.g., DID)'
    type: string
    format: uri
    example: did:web:surfpro-electric.example.com
  credentialSubject:
    name: DangerousGoodsDeclaration
    description: 'Dangerous goods declaration details'
    type: object
    required:
      - consignor
      - consignee
    properties:
      documentIdentifier:
        example: DGD-2025-AU-001234
        type: string
        description: Reference number identifying this dangerous goods declaration.
      dangerousGoodsDeclarationIdentifier:
        example: IATA-DGD-2025-AU-001234
        type: string
        description: Identifier assigned to the dangerous goods declaration by the issuing authority or regulation.
      houseWaybillDocumentIdentifier:
        example: GFS-HAWB-2025-001
        type: string
        description: Reference number of the associated house waybill.
      transportDocumentNumber:
        example: POSL-2025-001234
        type: string
        description: Reference number of the associated transport document (e.g., bill of lading or air waybill).
      ucr:
        example: AU2025SURF001234
        type: string
        description: Unique Consignment Reference for the dangerous goods consignment.
      goodsItemSequenceIdentifier:
        example: "1"
        type: string
        description: Sequence number identifying which goods item in the consignment this declaration relates to.
      issueDate:
        example: '2025-03-11T00:00:00Z'
        type: string
        format: date-time
        description: Date this dangerous goods declaration was issued.
      consignor:
        description: Party consigning the dangerous goods (the shipper/declarant).
        type: object
        properties:
          type:
            type: string
            default: Consignor
            enum:
            - Consignor
          id:
            example: did:web:surfpro-electric.example.com
            type: string
            format: uri
            description: A unique party identifier.
          name:
            example: SurfPro Electric Pty Ltd
            type: string
            description: Trade party name.
          street:
            example: 150 Industrial Drive
            type: string
            description: The street component of the address.
          city:
            example: Gold Coast
            type: string
            description: The city component of the address.
          state:
            example: QLD
            type: string
            description: The state component of the address.
          zip:
            example: 4217
            type: number
            description: Postal code.
          country:
            example: AU
            type: string
            description: Country.
      consignee:
        description: Party to whom the dangerous goods consignment is addressed.
        type: object
        properties:
          type:
            type: string
            default: Consignee
            enum:
            - Consignee
          id:
            example: did:web:waveridersupplies.example.com
            type: string
            format: uri
            description: A unique party identifier.
          name:
            example: Wave Rider Supplies, Inc
            type: string
            description: Trade party name.
          street:
            example: 210 Ocean Road
            type: string
            description: The street component of the address.
          city:
            example: Williamsburg
            type: string
            description: The city component of the address.
          state:
            example: VA
            type: string
            description: The state component of the address.
          zip:
            example: 23185
            type: number
            description: Postal code.
          country:
            example: US
            type: string
            description: Country.
      deliveryLocation:
        description: Location to which the dangerous goods consignment is to be delivered.
        type: object
        properties:
          name:
            example: Wave Rider Supplies Warehouse
            type: string
            description: Location name.
          city:
            example: Williamsburg
            type: string
            description: City.
          state:
            example: VA
            type: string
            description: State.
          country:
            example: US
            type: string
            description: Country.
      placeOfTakingOver:
        description: Place where the carrier takes over the dangerous goods from the consignor.
        type: object
        properties:
          city:
            example: Gold Coast
            type: string
            description: City.
          country:
            example: AU
            type: string
            description: Country.
      placeOfIssue:
        description: Location where this dangerous goods declaration was issued.
        type: object
        properties:
          city:
            example: Gold Coast
            type: string
            description: City.
          country:
            example: AU
            type: string
            description: Country.
      emergencyContact:
        description: Emergency contact for dangerous goods incidents during transport.
        type: object
        properties:
          name:
            example: SurfPro Electric Emergency Response
            type: string
            description: Emergency contact name or organisation.
          phone:
            example: "+61-7-5500-0000"
            type: string
            description: Emergency contact telephone number (24-hour).
      handlingInstructions:
        example: "Keep upright. Store away from heat sources. Do not short circuit."
        type: string
        description: Special handling instructions for the dangerous goods.
      securityInformation:
        example: "Screened per IATA Chapter 9 requirements"
        type: string
        description: Security information relating to the dangerous goods consignment.
      documentEndorsement:
        example: "I hereby declare that the contents of this consignment are fully and accurately described above by the proper shipping name, and are classified, packaged, marked and labelled/placarded, and are in all respects in proper condition for transport according to applicable international and national governmental regulations."
        type: string
        description: Shipper's declaration statement authenticating the dangerous goods declaration.
      undgNumber:
        example: UN3480
        type: string
        description: United Nations dangerous goods number (UN number) identifying the substance.
      dangerousGoodsTechnicalName:
        example: Lithium ion batteries
        type: string
        description: Proper shipping name or technical name of the dangerous goods.
      dangerousGoodsRegulationCode:
        example: IMDG
        type: string
        description: Code identifying the dangerous goods regulation applicable to this shipment (e.g., IMDG, IATA-DGR, ADR).
      packagingDangerLevel:
        example: "II"
        type: string
        description: Packing group indicating the degree of danger of the substance (I=great, II=medium, III=minor).
      dangerousGoodsClassNumber:
        example: "9"
        type: string
        description: Dangerous goods class number per the applicable regulation (e.g., Class 9 for miscellaneous dangerous goods).
      transportMeansTypeCode:
        example: "1"
        type: string
        description: Code specifying the type of transport means carrying the dangerous goods (1=maritime, 4=air).
