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.
É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.
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.
{"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 :
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 volManifestLineInput: Détails d'envoi individuels liés à un manifesteManifestLineItemInput: Informations produit pour la classification douanièreCreatePartyInput: Détails de partie et de localisation pour l'origine et la destinationConsultez 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
mutation ManifestCreate($input: ManifestInput!) {manifestCreate(input: $input) {idamountarrivalDateawbNumberawbPrefixcarrierCodecreatedAtcreatedBydestinationCodeoperatorDestinationoperatorOriginoriginCodepostalOperatorCodeserviceNumbersourcetransportationModeupdatedAtupdatedByweightweightUnitstatusTransitions {createdAtcreatedBynotesource}lines(first: 5) {totalCountedges {cursornode {idtrackingNumberendUsecurrencyCodecreatedAtcreatedByupdatedAtupdatedBylandedCost {id}}}}}}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.mutation ManifestLineCreate($manifestId: ID!, $input: ManifestLineInput!) {manifestLineCreate(manifestId: $manifestId, input: $input) {idmanifestIdtrackingNumberendUsecurrencyCodereferenceNumberarrivalDatecreatedAtcreatedByupdatedAtupdatedBylandedCost {id}}}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 tableaupartiespour définir l'origine et la destination de l'envoi.mutation ManifestLinesCreate($manifestId: ID!, $input: [ManifestLineInput!]!) {manifestLinesCreate(manifestId: $manifestId, input: $input) {idmanifestIdtrackingNumberendUsecurrencyCodecreatedAt}}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
sourceest obligatoire et indique la source de données de la mise à jour.mutation ManifestUpdate($id: ID!, $input: ManifestUpdateInput!) {manifestUpdate(id: $id, input: $input) {idamountarrivalDateawbNumberawbPrefixcarrierCodecreatedAtcreatedBydestinationCodeoperatorDestinationoperatorOriginoriginCodepostalOperatorCodeserviceNumbersourcetransportationModeupdatedAtupdatedByweightweightUnitstatusTransitions {createdAtcreatedBynotesource}}}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
sourcedansManifestUpdateInputaccepte les valeurs suivantes :CARDITPRECONPREDESRESDITCette page a-t-elle été utile?