DOCS

Préparer un manifeste douanier

Préparer un manifeste douanier pour les envois aux États-Unis.

Fournissez à Zonos les données d'envois postaux entrants.

Zonos prépare des manifestes douaniers complets incluant toutes les informations nécessaires pour les envois postaux vers les États-Unis.

Préparer la requête 

La création d'un manifeste exige d'organiser vos données d'envoi dans la structure appropriée. L'API adopte une approche hiérarchique : vous créez d'abord le manifeste, puis ajoutez des lignes de manifeste contenant les détails de chaque envoi.

Chaque composant possède des champs obligatoires spécifiques pour garantir la conformité douanière et une documentation exacte. Ci-dessous, nous décrivons la structure de données essentielle et les inputs requis.

Types d'input principaux

L'API de manifeste utilise plusieurs types d'input pour organiser les données d'envoi :

  • ManifestInput : Informations d'envoi de haut niveau, y compris aéroports, type de lettre de transport aérien et détails de vol
  • ManifestLineInput : Détails d'envoi individuels liés à un manifeste
  • ManifestLineItemInput : Informations produit pour la classification douanière
  • CreatePartyInput : Détails de partie et de localisation pour l'origine et la destination

Consultez les définitions complètes des champs et les options dans notre référence API GraphQL.

Créer un manifeste via l'API 

Une fois vos données d'envoi organisées, envoyez la mutation GraphQL pour créer le manifeste.

Étape 1 : Créer l'en-tête du manifeste

1mutation ManifestCreate($input: ManifestInput!) {
2 manifestCreate(input: $input) {
3 id
4 amount
5 arrivalDate
6 awbNumber
7 awbPrefix
8 carrierCode
9 createdAt
10 createdBy
11 destinationCode
12 operatorDestination
13 operatorOrigin
14 originCode
15 postalOperatorCode
16 serviceNumber
17 source
18 transportationMode
19 updatedAt
20 updatedBy
21 weight
22 weightUnit
23 statusTransitions {
24 createdAt
25 createdBy
26 note
27 source
28 }
29 lines(first: 5) {
30 totalCount
31 edges {
32 cursor
33 node {
34 id
35 trackingNumber
36 endUse
37 currencyCode
38 createdAt
39 createdBy
40 updatedAt
41 updatedBy
42 landedCost {
43 id
44 }
45 }
46 }
47 }
48 }
49}

RESPONSE

json

{
  "data": {
    "manifestCreate": {
      "id": "manifest_abc123def456",
      "amount": "0",
      "arrivalDate": "2026-03-15T14:30:00.000Z",
      "awbNumber": "1234",
      "awbPrefix": "001",
      "carrierCode": "AA",
      "createdAt": "2026-01-06T12:00:00.000Z",
      "createdBy": "organization_xyz789",
      "destinationCode": "JFK",
      "operatorDestination": "US",
      "originCode": "LHR",
      "postalOperatorCode": "J1CGBA",
      "serviceNumber": "1234",
      "source": "API",
      "transportationMode": "AIR",
      "updatedAt": "2026-01-06T12:00:00.000Z",
      "updatedBy": "organization_xyz789",
      "weight": "0",
      "weightUnit": "KILOGRAM",
      "statusTransitions": [],
      "lines": {
        "totalCount": 0,
        "edges": []
      }
    }
  }
}

Étape 2 : Ajouter des lignes de manifeste

À partir de l'ID renvoyé par la mutation manifestCreate, vous pouvez maintenant lier des envois individuels au manifeste.

1mutation ManifestLineCreate($manifestId: ID!, $input: ManifestLineInput!) {
2 manifestLineCreate(manifestId: $manifestId, input: $input) {
3 id
4 manifestId
5 trackingNumber
6 endUse
7 currencyCode
8 referenceNumber
9 arrivalDate
10 createdAt
11 createdBy
12 updatedAt
13 updatedBy
14 landedCost {
15 id
16 }
17 }
18}

RESPONSE

json

{
  "data": {
    "manifestLineCreate": {
      "id": "manifest_line_def456ghi789",
      "manifestId": "manifest_abc123def456",
      "trackingNumber": "LX123456789GB",
      "endUse": "NOT_FOR_RESALE",
      "currencyCode": "USD",
      "referenceNumber": "ORDER-2026-001",
      "arrivalDate": "2026-03-15T14:30:00.000Z",
      "createdAt": "2026-01-06T12:05:00.000Z",
      "createdBy": "organization_xyz789",
      "updatedAt": "2026-01-06T12:05:00.000Z",
      "updatedBy": "organization_xyz789",
      "landedCost": null
    }
  }
}

Étape 3 : Ajouter plusieurs lignes de manifeste (lot)

Pour plus d'efficacité, vous pouvez ajouter plusieurs lignes de manifeste en une seule requête avec la mutation manifestLinesCreate. Chaque ligne requiert son propre tableau parties pour définir l'origine et la destination de l'envoi.

1mutation ManifestLinesCreate($manifestId: ID!, $input: [ManifestLineInput!]!) {
2 manifestLinesCreate(manifestId: $manifestId, input: $input) {
3 id
4 manifestId
5 trackingNumber
6 endUse
7 currencyCode
8 createdAt
9 }
10}

RESPONSE

json

{
  "data": {
    "manifestLinesCreate": [
      {
        "id": "manifest_line_aaa111bbb222",
        "manifestId": "manifest_abc123def456",
        "trackingNumber": "LX123456789GB",
        "endUse": "NOT_FOR_RESALE",
        "currencyCode": "USD",
        "createdAt": "2026-01-06T12:10:00.000Z"
      },
      {
        "id": "manifest_line_ccc333ddd444",
        "manifestId": "manifest_abc123def456",
        "trackingNumber": "LX987654321GB",
        "endUse": "GIFT",
        "currencyCode": "USD",
        "createdAt": "2026-01-06T12:10:00.000Z"
      }
    ]
  }
}

Étape 4 : Mettre à jour le manifeste

Si les détails du vol ont changé, vous pouvez mettre à jour le manifeste avec la mutation suivante. Le champ source est obligatoire et indique la source de données de la mise à jour.

1mutation ManifestUpdate($id: ID!, $input: ManifestUpdateInput!) {
2 manifestUpdate(id: $id, input: $input) {
3 id
4 amount
5 arrivalDate
6 awbNumber
7 awbPrefix
8 carrierCode
9 createdAt
10 createdBy
11 destinationCode
12 operatorDestination
13 operatorOrigin
14 originCode
15 postalOperatorCode
16 serviceNumber
17 source
18 transportationMode
19 updatedAt
20 updatedBy
21 weight
22 weightUnit
23 statusTransitions {
24 createdAt
25 createdBy
26 note
27 source
28 }
29 }
30}

RESPONSE

json

{
  "data": {
    "manifestUpdate": {
      "id": "manifest_abc123def456",
      "amount": "150.50",
      "arrivalDate": "2026-03-16T10:00:00.000Z",
      "awbNumber": "5678",
      "awbPrefix": "001",
      "carrierCode": "BA",
      "createdAt": "2026-01-06T12:00:00.000Z",
      "createdBy": "organization_xyz789",
      "destinationCode": "JFK",
      "operatorDestination": "US",
      "originCode": "LHR",
      "postalOperatorCode": "J1CGBA",
      "serviceNumber": "5678",
      "source": "RESDIT",
      "transportationMode": "AIR",
      "updatedAt": "2026-01-06T14:30:00.000Z",
      "updatedBy": "organization_xyz789",
      "weight": "25.5",
      "weightUnit": "KILOGRAM",
      "statusTransitions": [
        {
          "createdAt": "2026-01-06T14:30:00.000Z",
          "createdBy": "organization_xyz789",
          "note": "Flight rescheduled due to weather",
          "source": "RESDIT"
        }
      ]
    }
  }
}

Valeurs de source de données

Le champ source dans ManifestUpdateInput accepte les valeurs suivantes :

ValeurDescription
CARDITÉchange de données transporteur
PRECONAvis de pré-consignation
PREDESAvis pré-expédition
RESDITRéponse à l'expédition

Cette page a-t-elle été utile?