DOCS

Integrate label api

/

Criar Zonos envios a partir da sua plataforma

Dê aos clientes a capacidade de criar envios e etiquetas Zonos a partir da sua plataforma.

Se você é uma plataforma de envio que suporta clientes Zonos enviando internacionalmente, integrar-se ao Zonos para a criação de envios deve ser uma consideração principal. Isso permitirá que você ofereça a experiência mais fluida para seus comerciantes e seus clientes, aproveitando os recursos existentes da sua plataforma enquanto deixa o Zonos gerenciar a criação do envio, etiqueta e documentação aduaneira de suporte.

As vantagens de usar Zonos para criar envios incluem:

  • Cobrança de terceiros de impostos e taxas - Garantiremos que o número da conta do transportador do seu comerciante ou seu seja usado para as taxas de envio, enquanto as contas de impostos e taxas vão para o Zonos.
  • Flexibilidade - Em vez de realizar trabalho de desenvolvimento para garantir que você possa gerar etiquetas compatíveis com sua plataforma, integre-se à nossa API e deixe a conformidade em constante mudança de comércio internacional conosco.
  • Documentação aduaneira precisa - Quando você usa Zonos para gerar etiquetas, garantimos que os detalhes corretos sejam passados para o transportador para garantir que o pacote passe pela alfândega rapidamente.

Este guia irá orientá-lo através das etapas para implementar uma integração completa de ponta a ponta que permitirá que você chame o Zonos para envios a partir da sua plataforma.

Permitir que os clientes imprimam etiquetas Zonos a partir da sua plataforma 

Siga as etapas abaixo para permitir que seus clientes recuperem etiquetas Zonos a partir da sua plataforma.

1

Permitir que os clientes insiram suas credenciais da API Zonos

A Zonos API é acessível por um credentialToken. Sua plataforma precisará dar aos clientes a capacidade de inserir seu credentialToken do Zonos Dashboard na sua plataforma. A partir daqui, você poderá fazer solicitações ao Zonos em nome deles.

2

Criar um envio

Para recuperar uma label, você precisa criar um shipment com o qual a label estará associada. O Zonos gerencia esse processo com um fluxo de trabalho que cria shipments e labels na mesma solicitação. Ao realizar essa mutação, você não precisa passar um serviceLevel, pois usaremos o serviceLevel utilizado no landedCost que está vinculado ao order. Para o orderId, você pode usar o ID do pedido Zonos ou o accountOrderNumber que provavelmente já estará em seu sistema. Quando um envio e etiquetas forem criados com sucesso, retornaremos etiquetas como uma labelImage, que é uma BASE64_ENCODED_IMAGE, ou como uma url de onde a etiqueta pode ser recuperada.

Mutação

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
mutation {
  partyCreateWorkflow(
    input: [
      {
        location: {
          administrativeArea: "Utah"
          administrativeAreaCode: "UT"
          countryCode: US
          line1: "123 Test Street"
          locality: "St George"
          postalCode: "84770"
        }
        person: { companyName: "test Corp", phone: "8018565714" }
        type: ORIGIN
      }
      {
        location: {
          administrativeArea: "Quebec"
          administrativeAreaCode: "QC"
          countryCode: CA
          line1: "2147 Pitfield Blvd"
          locality: "Pierrefonds"
          postalCode: "H9H 3C7"
        }
        person: {
          email: "test@gmail.com"
          firstName: "firstName"
          lastName: "lastName"
          phone: "5022303021"
          companyName: "goProTest"
          metadata: { key: "key", value: "value" }
        }
        type: DESTINATION
      }
    ]
  ) {
    type
    id
    organization
  }
  itemCreateWorkflow(
    input: {
      amount: "50"
      currencyCode: USD
      quantity: 1
      sku: "test1"
      description: "shoes"
      hsCode: "670121"
    }
  ) {
    amount
    id
    sku
  }
  cartonsCreateWorkflow(
    input: {
      dimensionalUnit: INCH
      height: "5"
      length: "5"
      weight: "5"
      weightUnit: POUND
      width: "10"
    }
  ) {
    items {
      item {
        amount
        id
        quantity
        sku
      }
    }
    length
    width
    weight
    weightUnit
    height
    id
  }
  shipmentCreateWorkflow(
    input: { orderId: "order_627db90e-d2e2-4499-b388-bfd5d8d33e18" }
  ) {
    id
    status
    shipmentCartons {
      id
      label {
        id
        url
        labelAmounts {
          amount
          amountType
        }
      }
    }
    customsDocuments {
      id
      fileType
      fileUrl
    }
  }
}

Resposta

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{
  "data": {
    "shipmentCreateWorkflow": {
      "id": "shipment_cd535d6f-c92a-41a9-ae70-f6e67ed30dc9",
      "status": "CREATED"
    },
    "shipmentCartons": [
      {
        "id": "label_171c7cf5-b005-45cb-bac4-2bfc141dbacb",
        "trackingNumber": "794602938880",
        "status": "CREATED",
        "documentFiling": "ELECTRONIC",
        "labelImage": "{{BASE64_ENCODED_IMAGE}}",
        "labelAmounts": [
          {
            "amount": 137.87,
            "amountType": "QUOTE"
          }
        ],
        "shipmentCarton": "shipment_carton_480d776e-48d8-4699-9b37-bc26c7d0cd1b",
        "statusTransitions": [
          {
            "changedAt": "2024-02-09T18:54:37.158Z",
            "note": "Label created",
            "status": "CREATED"
          }
        ]
      }
    ]
  }
}
3

Anular um envio

No caso de um cliente querer anular um envio, você pode usar a seguinte mutação que irá anular todos os rótulos vinculados ao envio.

Solicitação

1
2
3
4
5
6
7
8
9
10
11
12
mutation {
  shipmentStatusUpdate(
    input: {
      shipment: "shipment_f1fe4dbd-e471-49fa-94e7-84e369083223"
      status: VOIDED
      note: "Voiding shipment"
    }
  ) {
    id
    status
  }
}

Esta página foi útil?