Prepare a solicitação
A criação de um manifesto requer a organização dos dados da sua remessa na estrutura adequada. O API usa uma abordagem hierárquica onde você primeiro cria o manifesto e depois adiciona linhas de manifesto contendo detalhes individuais da remessa.
Cada componente possui campos obrigatórios específicos para garantir conformidade alfandegária e documentação precisa. Abaixo descrevemos a estrutura de dados essencial e as entradas necessárias.
Principais tipos de entrada
O manifesto API usa vários tipos de entrada para organizar os dados da remessa:
ManifestInput: Informações de remessa de alto nível, incluindo aeroportos, tipo de conhecimento de embarque e detalhes do vooManifestLineInput: Detalhes individuais da remessa vinculados a um manifestoManifestLineItemInput: Informações do produto para classificação aduaneiraCreatePartyInput: Detalhes da parte e localização para origem e destino
Veja as definições e opções completas dos campos em nossa referência da API GraphQL.
Crie um manifesto via API
Depois de organizar os dados da sua remessa, envie a mutação GraphQL para criar o manifesto.
Etapa 1: crie o cabeçalho do manifesto
mutation ManifestCreate($input: ManifestInput!) { manifestCreate(input: $input) { id amount arrivalDate awbNumber awbPrefix carrierCode createdAt createdBy destinationCode operatorDestination operatorOrigin originCode postalOperatorCode serviceNumber source transportationMode updatedAt updatedBy weight weightUnit statusTransitions { createdAt createdBy note source } lines(first: 5) { totalCount edges { cursor node { id trackingNumber endUse currencyCode createdAt createdBy updatedAt updatedBy landedCost { 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": []
}
}
}
}
Etapa 2: adicionar linhas de manifesto
Usando o ID retornado da mutação manifestCreate, agora você pode vincular remessas individuais ao manifesto.
mutation ManifestLineCreate($manifestId: ID!, $input: ManifestLineInput!) { manifestLineCreate(manifestId: $manifestId, input: $input) { id manifestId trackingNumber endUse currencyCode referenceNumber arrivalDate createdAt createdBy updatedAt updatedBy landedCost { 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
}
}
}
Etapa 3: adicionar várias linhas de manifesto (lote)
Para maior eficiência, você pode adicionar várias linhas de manifesto em uma única solicitação usando a mutação manifestLinesCreate. Cada linha requer seu próprio array parties para definir a origem e o destino da remessa.
mutation ManifestLinesCreate($manifestId: ID!, $input: [ManifestLineInput!]!) { manifestLinesCreate(manifestId: $manifestId, input: $input) { id manifestId trackingNumber endUse currencyCode createdAt }}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"
}
]
}
}
Etapa 4: atualizar o manifesto
Caso os detalhes do voo tenham sido alterados, você poderá atualizar os detalhes do manifesto usando a seguinte mutação. O campo source é obrigatório e indica a fonte de dados para a atualização.
mutation ManifestUpdate($id: ID!, $input: ManifestUpdateInput!) { manifestUpdate(id: $id, input: $input) { id amount arrivalDate awbNumber awbPrefix carrierCode createdAt createdBy destinationCode operatorDestination operatorOrigin originCode postalOperatorCode serviceNumber source transportationMode updatedAt updatedBy weight weightUnit statusTransitions { createdAt createdBy note source } }}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"
}
]
}
}
}
Valores da fonte de dados
O campo source em ManifestUpdateInput aceita os seguintes valores:
| Valor↕ | Descrição↕ |
|---|---|
CARDIT | Intercâmbio de dados da operadora |
PRECON | Aconselhamento pré-embarque |
PREDES | Aconselhamento pré-despacho |
RESDIT | Resposta ao envio |
Prepare um manifesto alfandegário para remessas dos EUA.
Forneça à Zonos dados de remessa postal de entrada.Zonos preparará manifestos alfandegários abrangentes que incluirão todas as informações necessárias para remessas postais para os EUA.