$schema: https://json-schema.org/draft/2020-12/schema
title: Preferential Certificate of Origin
description: >-
  A document certifying that goods meet the rules of origin requirements of a specific preferential trade agreement,
  entitling them to reduced or zero tariff rates.
type: object
required:
  - "@context"
  - type
  - credentialSchema
  - validTo
  - issuer
  - credentialSubject
properties:
  "@context":
    type: string
    format: uri
    description: Linked Data context for semantic interoperability
    const: https://unvtd.unece.org/preferential-certificate-of-origin-context.json
  type:
    type: array
    description: Document types
    items:
      type: string
      enum:
        - VerifiableCredential
        - PreferentialCertificateOfOrigin
    minItems: 2
    maxItems: 2
    example:
      - VerifiableCredential
      - PreferentialCertificateOfOrigin
  credentialSchema:
    type: object
    description: Reference to the credential schema for validation
    properties:
      id:
        type: string
        format: uri
        const: https://unvtd.unece.org/preferential-certificate-of-origin-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:f7ac82b1-3ee4-5099-9d55-3646c060380g
  validFrom:
    example: 2025-03-06T10:00:00.000Z
    type: string
    format: date-time
    description: Credential validity start date
  validTo:
    example: 2026-03-06T10:00:00.000Z
    type: string
    format: date-time
    description: Credential validity end date
  issuer:
    description: Identifier of the competent authority issuing the preferential certificate of origin (e.g., DID)
    type: string
    format: uri
    example: did:web:chamberofcommerce.example.com
  credentialSubject:
    description: Preferential certificate of origin details
    type: object
    properties:
      certificateNumber:
        example: PCOO-2025-AU-001234
        type: string
        description: Reference number to identify a certificate of origin.
      goodsDeclarationNumber:
        example: GD-2025-AU-009876
        type: string
        description: Reference number, assigned or accepted by Customs, to identify a goods declaration.
      issueDate:
        example: "2025-03-08T00:00:00Z"
        type: string
        format: date-time
        description: Date that a document was issued and when appropriate, signed or otherwise authenticated.
      tradeAgreement:
        example: Australia-United States Free Trade Agreement (AUSFTA)
        type: string
        description: Name of the preferential trade agreement under which origin preference is claimed.
      exporter:
        description: >-
          Party who makes, or on whose behalf the export declaration is made, and who is the owner of the goods or has
          similar rights of disposal over them at the time when the declaration is accepted.
        type: object
        properties:
          type:
            type: string
            default: Party
            enum:
              - Party
          id:
            example: did:web:surfpro.example.com
            type: string
            format: uri
            description: A unique party identifier.
          name:
            example: SurfPro Manufacturing Inc.
            type: string
            description: Trade party name.
          postalAddress:
            description: The postal address of the party.
            type: object
            properties:
              type:
                type: string
                default: Address
                enum:
                  - Address
              streetAddress:
                example: 150 Industrial Drive
                type: string
                description: The street component of the address
              addressLocality:
                example: Gold Coast
                type: string
                description: The city component of the address
              addressRegion:
                example: QLD
                type: string
                description: The state component of the address
              postalCode:
                example: "4217"
                type: string
                description: Postal code
              addressCountry:
                example: AU
                type: string
                description: Country.
      importer:
        description: >-
          Party who makes - or on whose behalf a Customs clearing agent or other authorised person makes - an import
          declaration.
        type: object
        properties:
          type:
            type: string
            default: Party
            enum:
              - Party
          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.
          postalAddress:
            description: The postal address of the party.
            type: object
            properties:
              type:
                type: string
                default: Address
                enum:
                  - Address
              streetAddress:
                example: 210 Ocean Boulevard
                type: string
                description: The street component of the address
              addressLocality:
                example: Los Angeles
                type: string
                description: The city component of the address
              addressRegion:
                example: CA
                type: string
                description: The state component of the address
              postalCode:
                example: "90001"
                type: string
                description: Postal code
              addressCountry:
                example: US
                type: string
                description: Country.
      consignee:
        description: Party to which goods are consigned.
        type: object
        properties:
          type:
            type: string
            default: Party
            enum:
              - Party
          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.
          postalAddress:
            description: The postal address of the party.
            type: object
            properties:
              type:
                type: string
                default: Address
                enum:
                  - Address
              streetAddress:
                example: 210 Ocean Boulevard
                type: string
                description: The street component of the address
              addressLocality:
                example: Los Angeles
                type: string
                description: The city component of the address
              addressRegion:
                example: CA
                type: string
                description: The state component of the address
              postalCode:
                example: "90001"
                type: string
                description: Postal code
              addressCountry:
                example: US
                type: string
                description: Country.
      consignor:
        description: Party consigning goods as stipulated in the transport contract by the party ordering transport.
        type: object
        properties:
          type:
            type: string
            default: Party
            enum:
              - Party
          id:
            example: did:web:surfpro.example.com
            type: string
            format: uri
            description: A unique party identifier.
          name:
            example: SurfPro Manufacturing Inc.
            type: string
            description: Trade party name.
          postalAddress:
            description: The postal address of the party.
            type: object
            properties:
              type:
                type: string
                default: Address
                enum:
                  - Address
              streetAddress:
                example: 150 Industrial Drive
                type: string
                description: The street component of the address
              addressLocality:
                example: Gold Coast
                type: string
                description: The city component of the address
              addressRegion:
                example: QLD
                type: string
                description: The state component of the address
              postalCode:
                example: "4217"
                type: string
                description: Postal code
              addressCountry:
                example: AU
                type: string
                description: Country.
      placeOfIssue:
        description: Location where a document was issued and when appropriate, signed or otherwise authenticated.
        type: object
        properties:
          city:
            example: Barton
            type: string
            description: City where issued
          state:
            example: ACT
            type: string
            description: State where issued
          country:
            example: AU
            type: string
            description: Country where issued
      placeOfDeparture:
        description: >-
          Name of the port, airport or other type of location from which a means of transport is scheduled to depart or
          has departed.
        type: object
        properties:
          name:
            example: Port of Brisbane
            type: string
            description: Location name
          city:
            example: Brisbane
            type: string
            description: City
          state:
            example: QLD
            type: string
            description: State
          country:
            example: AU
            type: string
            description: Country
          unlocode:
            example: https://service.unece.org/trade/locode/au.htm#AUBNE
            type: string
            format: uri
            description: UN/LOCODE identifier
      originCountry:
        description: >-
          Name of the country in which the goods have been produced or manufactured, according to criteria laid down for
          the application of preferential treatment.
        type: object
        properties:
          country:
            example: AU
            type: string
            description: ISO country code
          name:
            example: Australia
            type: string
            description: Country name
      destinationCountry:
        description: Country to which a consignment of goods is to be or has been delivered.
        type: object
        properties:
          country:
            example: US
            type: string
            description: ISO country code
          name:
            example: United States of America
            type: string
            description: Country name
      transportContractNumber:
        example: BKG123456789
        type: string
        description: Reference number to identify a document evidencing a transport contract.
      invoiceNumber:
        example: INV-2025-031-001
        type: string
        description: Reference number to identify an invoice.
      contractNumber:
        example: CTR-2025-SURF-001
        type: string
        description: Identifier of a contract concluded between parties.
      issuingAuthority:
        description: Name, signature and seal of the party issuing the preferential certificate of origin.
        type: object
        properties:
          name:
            example: Australian Chamber of Commerce and Industry
            type: string
            description: Name of the issuing authority.
          street:
            example: 24 Brisbane Avenue
            type: string
            description: Street address.
          city:
            example: Barton
            type: string
            description: City.
          state:
            example: ACT
            type: string
            description: State.
          country:
            example: AU
            type: string
            description: Country.
      competentAuthority:
        description: >-
          Name, address, national seal/stamp and country of the management or competent authority overseeing origin
          certification.
        type: object
        properties:
          name:
            example: Department of Foreign Affairs and Trade
            type: string
            description: Name of the competent authority.
          country:
            example: AU
            type: string
            description: Country of the competent authority.
      numberOfPackages:
        example: 18
        type: number
        description: Total number of packages in the consignment.
      certification:
        example: >-
          The undersigned hereby certifies, to the best of our knowledge and belief, that the goods listed in this
          certificate originate in Australia and meet the rules of origin requirements of the Australia-United States
          Free Trade Agreement
        type: string
        description: Text of official certification.
      authentication:
        example: Certified and stamped by the Australian Chamber of Commerce and Industry
        type: string
        description: Proof that a document has been authenticated.
      goods:
        description: Goods covered by the preferential certificate of origin
        type: array
        items:
          type: object
          properties:
            description:
              example: Professional Longboard - Ocean Series, 9'6" length
              type: string
              description: Plain language description of the nature of a goods item.
            hsCode:
              example: "950630"
              type: string
              description: Code specifying a type of goods for Customs purposes.
            originCriteria:
              example: WO
              type: string
              description: >-
                Code identifying the rule of origin criterion satisfied for this goods item under the applicable trade
                agreement (e.g. WO = Wholly Obtained, PE = Produced Exclusively from originating materials, PSR =
                Product Specific Rule).
            quantity:
              description: Number of units
              type: object
              properties:
                amount:
                  example: 25
                  type: number
                  description: Quantity amount
                unit:
                  example: Units
                  type: string
                  description: Unit of measure
            netWeight:
              description: Total net weight of the goods.
              type: object
              properties:
                amount:
                  example: 187.5
                  type: number
                  format: float
                  description: Weight amount
                unit:
                  example: KGS
                  type: string
                  description: Weight unit
            grossWeight:
              description: Total gross weight including packaging.
              type: object
              properties:
                amount:
                  example: 200
                  type: number
                  format: float
                  description: Weight amount
                unit:
                  example: KGS
                  type: string
                  description: Weight unit
            value:
              description: Value of the goods
              type: object
              properties:
                amount:
                  example: 18750
                  type: number
                  format: float
                  description: Monetary amount
                currency:
                  example: USD
                  type: string
                  description: Currency code
            countryOfOrigin:
              example: AU
              type: string
              description: Country where the goods were produced or manufactured.
          description: A specific goods item covered by the preferential certificate of origin.
    required:
      - certificateNumber
      - goodsDeclarationNumber
      - issueDate
      - tradeAgreement
      - exporter
      - originCountry
      - issuingAuthority
      - competentAuthority
      - numberOfPackages
      - goods
