DOCS

Integrate label api

/

Skapa Zonos frakter från din plattform

Ge kunder möjlighet att skapa Zonos frakter och etiketter från din plattform.

Om du är en fraktplattform som stöder Zonos kunder som skickar internationellt, bör integrationen med Zonos för skapande av frakter vara en hög prioritet. Detta kommer att ge dig möjlighet att erbjuda den mest sömlösa upplevelsen för dina handlare och deras kunder genom att utnyttja din plattforms befintliga funktioner samtidigt som Zonos hanterar skapandet av frakten, etiketten och stödjande tulldokumentation.

Fördelar med att använda Zonos för att skapa frakter inkluderar:

  • Tredjepartsfakturering av avgifter och skatter - Vi kommer att säkerställa att ditt eller din handlares fraktföretagskontonummer används för fraktkostnader medan räkningarna för avgifter och skatter kommer till Zonos.
  • Flexibilitet - Istället för att utföra utvecklingsarbete för att säkerställa att du kan generera överensstämmande etiketter med din plattform, integrera med vårt API och låt oss hantera den ständigt föränderliga gränsöverskridande efterlevnaden.
  • Korrekt tulldokumentation - När du använder Zonos för att generera etiketter, säkerställer vi att rätt detaljer överförs till fraktföretaget för att säkerställa att paketet klarar tullen snabbt.

Denna guide kommer att vägleda dig genom stegen för att implementera en komplett end-to-end-integration som gör att du kan anropa Zonos för frakter från din plattform.

Möjliggör för kunder att skriva ut Zonos etiketter från din plattform 

Följ stegen nedan för att låta dina kunder hämta Zonos etiketter från din plattform.

1

Låt kunder ange sina Zonos API-uppgifter

Den Zonos API är tillgänglig med en credentialToken. Din plattform måste ge kunder möjlighet att ange sin credentialToken från Zonos Dashboard i din plattform. Härifrån kommer du att kunna göra förfrågningar till Zonos på deras vägnar.

2

Skapa en frakt

För att hämta en etikett måste du skapa en frakt som etiketten kommer att kopplas till. Zonos hanterar denna process med ett arbetsflöde som skapar frakter och etiketter i samma begäran. När du utför denna mutation behöver du inte ange en serviceLevel eftersom vi kommer att använda den serviceLevel som används från den landedCost som är kopplad till order. För orderId kan du använda Zonos order-ID eller accountOrderNumber som sannolikt redan finns i ditt system. När en frakt och etiketter har skapats framgångsrikt kommer vi att returnera etiketter som en labelImage som är en BASE64_ENCODED_IMAGE, eller som en url där etiketten kan hämtas.

Mutation

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
    }
  }
}

Svar

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

Ogiltigförklara en försändelse

Om en kund vill ogiltigförklara en försändelse, kan du använda följande mutation som kommer att ogiltigförklara alla etiketter kopplade till försändelsen.

Begäran

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
  }
}

Var den här sidan hjälpsam?