DOCS

Calculate landed cost graphql

/

Bereken een landed cost

Bereken douanerechten, belastingen en vergoedingen met GraphQL.

GraphQL

Zonos berekent de totale landed cost voor zendingen, inclusief douanerechten, belastingen en eventuele extra vergoedingen die door douane, makelaars of vervoerders in rekening kunnen worden gebracht. We garanderen deze berekeningen vaak door de douanerechten, belasting en vergoedingen zelf te betalen terwijl we u precies in rekening brengen wat we berekenen. In zeldzame gevallen kunnen onze berekeningen worden gebruikt zonder onze garantie, waarbij u het verschil tussen onze berekening en de douanerechten en belastingrekening op zich neemt.

Bereid de invoer voor de mutatie voor 

Het berekenen van een landed cost via de GraphQL API omvat meerdere stappen; we hebben deze stappen georganiseerd in workflows. Aan het einde heeft u alles wat u nodig heeft om één oproep te doen om een landed cost te krijgen op basis van de verzendbestemming, artikelen in de winkelwagentje en verzending.

Elke workflow heeft specifieke invoergegevens nodig. GraphQL stelt u in staat om meer informatie op te nemen dan vereist; raadpleeg onze volledige API-referentie om alle mogelijke velden te zien. Vereiste velden zijn als zodanig gemarkeerd in onze API-referentie, maar deze markering geldt alleen voor velden die vereist zijn voor functionaliteit. Een paar extra velden zijn vereist wanneer u onze garantie gebruikt.

Hieronder hebben we alle vereiste velden voor het berekenen van een gegarandeerde landed cost opgesomd. Zorg ervoor dat u deze informatie bij de hand heeft.

Vereiste invoer voor gegarandeerde berekeningen

partyCreateWorkflowInput

De partyCreateWorkflowInput identificeert de betrokken partijen en hun locaties. Bekijk het volledige schema in onze GraphQL API referentie. Vereiste velden zijn:

  • location
    • administrativeAreaCode: De staat of provinciecode, in twee letters. Alleen vereist voor CA en BR.
    • countryCode: De twee-letterige ISO-code van het land.
    • line1: De eerste regel van het adres.
    • postalCode: De postcode of ZIP-code van het adres.
  • person
    • email: Het e-mailadres van de persoon.
    • firstName: De voornaam van de persoon.
    • lastName: De achternaam van de persoon.
    • phone: Het telefoonnummer van de persoon.
  • type
    • DESTINATION: De location & person informatie voor de verzendbestemming.
    • ORIGIN: De location informatie voor de verzend oorsprong. De person die aan de verzend oorsprong is gekoppeld, is niet vereist.
itemCreateWorkflowInput

De itemCreateWorkflowInput somt de artikelen in het winkelwagentje op. Er zijn veel optionele velden (zie alle mogelijkheden in onze API-referentie), maar de onderstaande velden zijn vereist.

  • amount: De prijs van het artikel.
  • currencyCode: De valutacode voor het artikelbedrag.
  • quantity: De hoeveelheid van het artikel.
  • Een van de volgende (deze wordt ingesteld als uw artikel sleutel voorkeur. Uw artikel sleutel verbindt informatie die in de Catalogus is opgeslagen met het artikel in het winkelwagentje en wordt gebruikt tijdens het aanmaken van labels.)
    • productId: De product-ID van het artikel.
    • sku: De SKU van het artikel.

De measurements (WEIGHT, LENGTH, WIDTH, HEIGHT) zijn alleen vereist als u uw artikelen wilt cartoniseren bij het verkrijgen van een verzendbeoordeling.

shipmentRatingCreateWorkflowInput

Dit workflow wordt gebruikt wanneer u al weet welke verzendservice en kosten; als u wilt dat Zonos deze kosten voor u berekent voor de diensten die u heeft ingeschakeld, vervang dan deze workflow door de shipmentRatingCalculateWorkflow.

De shipmentRatingCreateWorkflowInput communiceert de verzendkosten. Bekijk het volledige schema in onze GraphQL API referentie. Vereiste velden zijn:

  • amount: De verzendkosten.
  • currencyCode: De valutacode van de verzendkosten.
  • serviceLevelCode: De code die het niveau van de verzendservice aangeeft dat is gebruikt in de verzendbeoordeling.
landedCostWorkflowInput

De landedCostWorkflowInput bepaalt de voorkeuren voor de berekening van de landed cost. Bekijk het volledige schema in onze GraphQL API referentie. Vereiste velden zijn:

  • calculationMethod: Geeft uw voorkeur aan voor hoe u van plan bent te verzenden: DDP (vooraf betaalde douanerechten en belastingen) of DAP (ofwel douanerechten en belastingen worden bij levering betaald, of als er een remittance-schema van toepassing is, worden ze betaald via een belasting-ID).
    • Als u onze landed cost garantie gebruikt, moet deze waarde altijd DDP_PREFERRED zijn, wat een DDP-offerte biedt wanneer mogelijk en een DAP-offerte als een DDP-offerte niet is toegestaan. Het gebruik van DAP in plaats daarvan kan ertoe leiden dat de landed costs niet langer worden gegarandeerd, aangezien dit doorgaans resulteert in douanerechten en belastingen die bij levering worden betaald.
  • endUse: Geeft aan of de goederen worden verkocht aan een ander bedrijf (FOR_RESALE) of voor eindgebruik met een consument (NOT_FOR_RESALE).
  • tariffRate: Geeft de methode aan die Zonos moet gebruiken om de tariefpercentages voor deze offerte te berekenen, in het geval dat er een reeks tariefpercentages van toepassing kan zijn. *Bij het gebruik van onze landed cost garantie, moet dit altijd ZONOS_PREFERRED zijn.

Voeg berekende verzending toe: Als u wilt dat Zonos de verzendkosten voor u berekent, vervang dan de shipmentRatingCreateWorkflow door de shipmentRatingCalculateWorkflow. Voeg de cartonizeWorkflow toe als u wilt dat Zonos uw artikelen in dozen sorteert voordat de verzendkosten worden berekend (gebruikt voor dimensiewaarde).

Opties bij het berekenen van een landed cost

GraphQL biedt je de flexibiliteit om de aanvraag naar jouw voorkeur aan te passen. Er zijn een paar opties voor hoe je HS-codes en verzendkosten in de aanvraag opneemt.

HS-codes

HS-codes beïnvloeden de douanerechten en zijn daarom vereist. Je kunt de HS-code voor elk item doorgeven of Classify ze laten genereren.

Geef HS-codes voor elk item door

Zonos raadt ten zeerste aan om productspecifieke HS-codes te gebruiken, omdat dit leidt tot een nauwkeuriger landed cost-offerte. Als je je HS-codes kent, geef dan de hsCode voor elk item door tijdens de itemCreateWorkflow.

Als je een HS-code doorgeeft, zal Zonos deze on-the-fly valideren bij het verkrijgen van een landed cost-offerte. Als de HS-code die je hebt opgegeven ongeldig is (wat betekent dat deze niet bestaat), zal Zonos je item on-the-fly her-classify classificeren en de nieuwe, geldige HS-code gebruiken in plaats van de door jou opgegeven.

Als je hulp nodig hebt bij het genereren van HS-codes voor je producten, leer dan over Zonos Classify en hoe je een classificatie kunt aanvragen.

Genereer HS-codes met Classify

Als je Zonos geen hsCode doorgeeft, zullen we eerst Zonos Catalog controleren om te zien of je een HS-code voor je item hebt opgeslagen. Als je dat niet hebt, zullen we Classify aanroepen om een classificatie te genereren die je landed cost-berekening aandrijft op basis van de volgende itemCreateWorkflow productdetailvelden: description, category en material. Als je productdetailvelden niet gedetailleerd genoeg zijn om een classificatie te genereren op basis van Classify's confidence scoring, zal de standaard HS-code die aan je winkel is toegewezen, worden gebruikt.

Standaard, als je geen hsCode opgeeft en we Classify aanroepen, zal de hsCode die door Classify is gegenereerd, niet in de respons worden teruggegeven, omdat deze alleen intern zal worden gebruikt om je landed cost te genereren. Als je echter een Classify-abonnement hebt, zullen we Classify's HS-code in je landed cost-respons teruggeven.

Verzendkosten

Zowel het verzendserviceniveau als de kosten beïnvloeden de douanerechten, belastingen en vergoedingen en zijn daarom vereist. Zonos kan verzendkosten berekenen of je kunt deze aan ons doorgeven.

Bereken verzendkosten

Om Zonos verzendkosten te laten berekenen, gebruik je de shipmentRatingCalculateWorkflow. De verzendopties die in de berekende verzendrespons worden teruggegeven, zullen overeenkomen met de serviceLevels die je aan verzendprofielen in Dashboard hebt toegewezen.

Probleemoplossing: Als je een serviceLevel in de respons verwacht, maar deze niet verschijnt, zorg er dan voor dat het serviceLevel is ingeschakeld en wordt ondersteund door de method die je hebt geselecteerd.

Voeg de cartonizeWorkflow (die geen invoer heeft) toe als je wilt dat Zonos je items sorteert in kartons voordat de verzendkosten worden berekend (gebruikt voor dimensiewaarde.

Geef verzendkosten door

Als je het serviceLevel en het amount voor een zending kent, kun je deze doorgeven in het shipmentRatingCreateWorkflow-gedeelte van de aanvraag. We zullen die waarden gebruiken om eventuele bijbehorende vervoerskosten te berekenen en deze in de respons terug te geven.

Stuur de mutatie 

Zodra je de vereiste invoergegevens hebt, stuur je de GraphQL-mutatie naar de API-eindpunt met behulp van je gekozen clientbibliotheek of -tool. Hier zijn enkele voorbeelden van hoe je de mutatie kunt structureren.

Berekende verzending
Handmatige verzending

Mutatie

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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
mutation {
  partyCreateWorkflow(
    input: [
      {
        location: {
          administrativeArea: "Utah"
          administrativeAreaCode: "UT"
          countryCode: US
          line1: "345 N 2450 E"
          line2: "#151"
          locality: "St George"
          postalCode: "84790"
        }
        type: ORIGIN
      }
      {
        location: {
          administrativeArea: "BC"
          administrativeAreaCode: "BC"
          countryCode: CA
          line1: "27 Sussex Dr."
          locality: "Victoria"
          postalCode: "V8T 2V9"
        }
        person: {
          email: "test@gmail.com"
          firstName: "firstName"
          lastName: "lastName"
          phone: "5022303021"
          companyName: "goProTest"
          metadata: { key: "key", value: "value" }
        }
        type: DESTINATION
      }
      {
        type: PAYOR
        location: {
          administrativeArea: "ON"
          administrativeAreaCode: "ON"
          countryCode: CA
          latitude: 1.2
          line1: "asdf"
          line2: "asdf"
          locality: "locality"
          longitude: 3423.2
          postalCode: "M4C 1A1"
        }
        person: {
          email: "test@gmail.com"
          firstName: "firstName"
          lastName: "lastName"
          phone: "5022303021"
          companyName: "goProTest"
          metadata: { key: "key", value: "value" }
        }
      }
    ]
  ) {
    type
    id
    organization
  }

  itemCreateWorkflow(
    input: [
      {
        amount: 69
        currencyCode: USD
        countryOfOrigin: US
        quantity: 1
        productId: "productId"
        hsCode: "1006.30"
        description: "description"
        measurements: [
          { type: WIDTH, value: 2, unitOfMeasure: CENTIMETER }
          { type: WEIGHT, value: 2, unitOfMeasure: POUND }
        ]
      }
      {
        amount: 62
        currencyCode: CAD
        countryOfOrigin: US
        hsCode: "1006.30"
        quantity: 1
        productId: "productId2"
        description: "description2"
        measurements: [
          { type: WIDTH, value: 2, unitOfMeasure: CENTIMETER }
          { type: WEIGHT, value: 2, unitOfMeasure: POUND }
        ]
      }
    ]
  ) {
    id
    amount
  }
  cartonizeWorkflow {
    id
    type
    items {
      item {
        id
      }
    }
  }
  shipmentRatingCalculateWorkflow {
    id
    amount
  }
  landedCostCalculateWorkflow(
    input: { endUse: FOR_RESALE, method: DAP, tariffRate: ZONOS_PREFERRED }
  ) {
    id
    duties {
      amount
      currency
    }
    taxes {
      amount
      currency
    }
    fees {
      amount
      currency
    }
  }
}

Antwoord

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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
{
  "data": {
    "partyCreateWorkflow": [
      {
        "type": "ORIGIN",
        "id": "party_749959ae-b9ff-4de4-b4ac-59cc990c53ba",
        "organization": "organization_dbb64939-12d7-4f12-98ea-7ae5b21acfd0"
      },
      {
        "type": "DESTINATION",
        "id": "party_cd7ff245-76b6-464f-a7bf-151ebe1f8833",
        "organization": "organization_dbb64939-12d7-4f12-98ea-7ae5b21acfd0"
      },
      {
        "type": "PAYOR",
        "id": "party_00e63a9e-9735-44d9-b129-3b3e76c5df25",
        "organization": "organization_dbb64939-12d7-4f12-98ea-7ae5b21acfd0"
      }
    ],
    "itemCreateWorkflow": [
      {
        "id": "item_eb27f071-de8b-4578-9db9-ae69aaf9be3e",
        "amount": 69
      },
      {
        "id": "item_fffa8ba8-cc8d-4e13-bed6-55044a71c115",
        "amount": 62
      }
    ],
    "cartonizeWorkflow": [
      {
        "id": "carton_b34b29c1-ce27-464b-b91b-df8e4a696312",
        "type": "PACKAGE",
        "items": [
          {
            "item": {
              "id": "item_eb27f071-de8b-4578-9db9-ae69aaf9be3e"
            }
          },
          {
            "item": {
              "id": "item_fffa8ba8-cc8d-4e13-bed6-55044a71c115"
            }
          }
        ]
      }
    ],
    "shipmentRatingCalculateWorkflow": [
      {
        "id": "shipment_rating_96787309-9510-43cc-b4fa-c341ff80f4cc",
        "amount": 173.2
      },
      {
        "id": "shipment_rating_b0ccb109-7794-4c7c-b5cc-e2cfbbc5c8ac",
        "amount": 190.1
      }
    ],
    "landedCostCalculateWorkflow": [
      {
        "id": "landed_cost_74d3ce11-bff2-4326-9e6f-368e03ac88b4",
        "duties": [
          {
            "amount": 0.0,
            "currency": "USD"
          },
          {
            "amount": 0.0,
            "currency": "USD"
          }
        ],
        "taxes": [
          {
            "amount": 3.45,
            "currency": "USD"
          },
          {
            "amount": 3.1,
            "currency": "USD"
          },
          {
            "amount": 0.0,
            "currency": "USD"
          },
          {
            "amount": 0.0,
            "currency": "USD"
          }
        ],
        "fees": [
          {
            "amount": 0.13,
            "currency": "USD"
          },
          {
            "amount": 1.44,
            "currency": "USD"
          }
        ]
      },
      {
        "id": "landed_cost_7bbfd354-028c-457f-8c8e-c81bb8fa09a0",
        "duties": [
          {
            "amount": 0.0,
            "currency": "USD"
          },
          {
            "amount": 0.0,
            "currency": "USD"
          }
        ],
        "taxes": [
          {
            "amount": 3.45,
            "currency": "USD"
          },
          {
            "amount": 3.1,
            "currency": "USD"
          },
          {
            "amount": 0.0,
            "currency": "USD"
          },
          {
            "amount": 0.0,
            "currency": "USD"
          }
        ],
        "fees": [
          {
            "amount": 0.13,
            "currency": "USD"
          },
          {
            "amount": 1.44,
            "currency": "USD"
          }
        ]
      }
    ]
  }
}

Was deze pagina nuttig?