DOCS

Bereken 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 zelf de douanerechten, belastingen en vergoedingen 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 douane- 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, de artikelen in de winkelwagentje en de 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 bij het gebruik van onze garantie.

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 tweeletterige 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 (welke is 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.

cartonsCreateWorkflowInput

De cartonsCreateWorkflowInput vereist alleen de invoer zelf. Bekijk het volledige schema in onze GraphQL API referentie om alle waarden te zien die kunnen worden doorgegeven. Het is belangrijk om de afmetingen en het gewicht van de doos door te geven als Zonos de verzendkosten berekent.

shipmentRatingCreateWorkflowInput

Dit workflow wordt gebruikt wanneer u al de verzendservice en kosten kent; 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 verzendserviceniveau aangeeft dat is gebruikt in de verzendbeoordeling.
landedCostWorkflowInput

De landedCostWorkflowInput bepaalt de voorkeuren voor de landed cost berekening. 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 terugbetalingsschema 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 door 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 u de verzendkosten vindt (gebruikt voor dimensionaal gewicht).

Opties bij het berekenen van een landed cost

GraphQL biedt de flexibiliteit om het verzoek aan uw voorkeur aan te passen. Er zijn een paar opties voor hoe u GS-codes en verzendkosten in het verzoek opneemt.

GS-codes

GS-codes beïnvloeden de douanetarieven en zijn daarom vereist. U kunt de GS-code voor elk item doorgeven of Classify ze laten genereren.

GS-codes voor elk item doorgeven

Zonos raadt sterk aan om productspecifieke GS-codes te gebruiken, omdat dit leidt tot een nauwkeurigere landed cost offerte. Als u uw GS-codes kent, geef dan de hsCode voor elk item door tijdens de itemCreateWorkflow.

Als u een GS-code doorgeeft, zal Zonos deze ter plekke valideren bij het verkrijgen van een landed cost offerte. Als de door u verstrekte GS-code ongeldig is (wat betekent dat deze niet bestaat), zal Zonos uw item ter plekke opnieuw classify en de nieuwe, geldige GS-code gebruiken in plaats van de door u verstrekte.

Als u hulp nodig heeft bij het genereren van GS-codes voor uw producten, leer dan meer over Zonos Classify en hoe u een classificatie kunt aanvragen.

GS-codes genereren met Classify

Als u Zonos geen hsCode doorgeeft, zullen we eerst Zonos Catalogus controleren om te zien of u een GS-code voor uw item heeft opgeslagen. Als dat niet het geval is, zullen we Classify aanroepen om een classificatie te genereren om uw landed cost berekening te ondersteunen op basis van de volgende itemCreateWorkflow productdetailvelden: description, category, en material. Als uw productdetailvelden niet gedetailleerd genoeg zijn om een classificatie te genereren op basis van Classify's vertrouwensscore, zal de standaard GS-code die aan uw winkel is toegewezen worden gebruikt.

Standaard, als u geen hsCode verstrekt en we Classify aanroepen, zal de hsCode die door Classify wordt gegenereerd niet in de respons worden teruggegeven, omdat deze alleen intern zal worden gebruikt om uw landed cost te genereren. Als u echter een Classify abonnement heeft, zullen we de GS-code van Classify's in uw landed cost respons teruggeven.

Verzendkosten

Zowel het verzendserviceniveau als de kosten ervan beïnvloeden de rechten, belastingen en vergoedingen en zijn daarom vereist. Zonos kan de verzending berekenen of u kunt dit aan ons doorgeven.

Verzending berekenen

Om Zonos de verzendkosten te laten berekenen, gebruikt u de shipmentRatingCalculateWorkflow. De verzendopties die in de berekende verzendrespons worden geretourneerd, zullen overeenkomen met de serviceLevels die u aan verzendprofielen in Dashboard heeft toegewezen.

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

Voeg de cartonizeWorkflow toe (die geen invoer heeft) als u wilt dat Zonos uw items sorteert in dozen voordat de verzendkosten worden gevonden (gebruikt voor dimensionaal gewicht.

Verzendkosten doorgeven

Als u het serviceLevel en amount voor een zending kent, kunt u deze doorgeven in het shipmentRatingCreateWorkflow gedeelte van het verzoek. We zullen die waarden gebruiken om eventuele bijbehorende vervoerderskosten te berekenen en deze in de respons terug te geven.

Stuur de mutatie 

Zodra u de vereiste invoergegevens heeft, stuurt u de GraphQL-mutatie naar het API-eindpunt met behulp van uw gekozen clientbibliotheek of -tool. Hier zijn enkele voorbeelden van hoe u de mutatie kunt structureren.

Gebruik dit verzoek wanneer u Zonos de verzendkosten laat berekenen als onderdeel van het Landed Cost verzoek. We zullen dan rechten en belastingen op verzending berekenen als deze door het bestemmingsland worden geheven.

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?