Kūrėjams
Muitinės patikros API
Ta pati patikra kaip šioje svetainėje, iškviečiama iš jūsų programinės įrangos. Atsiunčiate bylą JSON formatu ir gaunate balą iš 100, blokuojančius punktus, įspėjimus ir rekomenduojamus veiksmus — su stabiliais neatitikimų kodais ir pranešimais 24 oficialiosiomis Europos Sąjungos kalbomis.
Tai serverio–serverio API. API raktas yra paslaptis. Iškvietimai iš naršyklės nepalaikomi, o autentifikuotuose keliuose CORS antraštės nesiunčiamos: raktas, patekęs į naršyklę, yra nutekėjęs raktas.
Apžvalga
API atveria tikrintuvo kontrolės variklį: keturiolika bendrųjų taisyklių, penkias TARIC taisykles, keturias dokumentų išsamumo taisykles ir kiekvienos deklaravimo sistemos tikrinimus. Ji nieko nesiunčia: tikrina jūsų bylos formatą ir nuoseklumą, kodų buvimą nomenklatūroje ir, importuojant į ES, kilmei taikomas TARIC priemones (antidempingas, kontrolė, lengvatos, muito tarifas), prieš jums rengiant deklaraciją.
Visi keliai turi savo versijos priešdėlį. Atradimo keliai ir specifikacija yra vieši: integruotojas arba agentas gali perskaityti schemą dar neturėdamas rakto.
| Kelias | Vaidmuo | Autentifikavimas |
|---|---|---|
| POST/v1/checks | Patikrina bylą ir grąžina visą ataskaitą | Reikia rakto |
| POST/v1/checks/batch | Vienu iškvietimu patikrina iki 25 bylų | Reikia rakto |
| GET/v1/me | Grąžina esamą raktą ir jo kvotą jos nenaudodamas | Reikia rakto |
| GET/v1/declaration-types | Išvardija atpažįstamus deklaracijų tipus | Viešas |
| GET/v1/declaration-types/{type} | Aprašo laukus, kurių tikimasi konkrečiam tipui | Viešas |
| GET/v1/openapi.json | Šio API OpenAPI 3.1 specifikacija | Viešas |
Autentifikavimas
API autentifikuojasi nešiklio prieigos raktu. Raktas parodomas tik kartą, kuriant: saugoma tik jo santrauka, todėl pamestas raktas pakeičiamas, bet niekada neatkuriamas.
Vienu metu galite turėti tris aktyvius raktus, todėl raktą galite pakeisti nenutraukdami integracijos: sukurkite naują, įdiekite jį, tada panaikinkite senąjį.
- 01Sukurkite raktą savo paskyroje, skiltyje „API raktai“.
- 02Siųskite jį kiekvienos užklausos Authorization antraštėje.
- 03Nutekėjus panaikinkite jį: nutraukimas yra nedelsiamas, o tuo raktu pateiktų bylų turinys tuoj pat ištrinamas.
Authorization: Bearer cc_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxPirmoji patikra
Bylą sudaro tipas, antraštė ir prekių eilutės. Visos reikšmės yra eilutės: jų interpretavimu pasirūpina variklis. Laukų pavadinimai atrandami vykdymo metu, tipas po tipo.
Atsakas ateina iš karto; vėliau nieko nereikia užklausti.
curl https://www.customs-check.com/api/v1/checks \
-H "Authorization: Bearer $CUSTOM_CHECK_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "import-export",
"reference": "PO-2026-114",
"header": {
"flow": "IM",
"shipmentCountry": "CN",
"destinationCountry": "FR",
"incoterm": "FOB",
"companyName": "Acme SAS",
"companyCountry": "FR",
"eori": "FR12345678900012",
"transportMode": "sea",
"currency": "USD",
"invoiceTotal": "12500"
},
"items": [
{
"description": "Leather sport shoes",
"hsCode": "6403990000",
"quantity": "500",
"value": "12500",
"origin": "VN",
"grossMass": "850",
"netMass": "800"
}
],
"documents": { "commercialInvoice": "available", "packingList": "missing" }
}'Atsako skaitymas
Kiekvienas neatitikimas turi ir mašininę tapatybę, ir skaitomą sakinį. Kurkite savo logiką ant mašininės tapatybės: ji nesikeičia be versijos pakeitimo.
- severity · code · path · rule
- Stabili sutartisStabilūs. Gali atsirasti naujų kodų; esami nepervadinami be versijos pakeitimo.
- field · message · text
- Tik rodymuiIšversta rodymui. Formuluotė gali bet kada pasikeisti — niekada jų nelyginkite savo kode.
- engine.version
- Pasikeičia, kai taisyklių pakeitimas pakeičia nepakitusios bylos balą. Archyvuokite ją kartu su ataskaitomis.
Laukas „path“ atkartoja jūsų užklausos formą, todėl neatitikimą galite susieti tiesiai su atitinkamu lauku savo sąsajoje.
header.<laukas> · items.<n>.<laukas> · documents.<category> · global
{
"id": "4c749e25-3408-48f9-b3ca-b18a7ad84681",
"createdAt": "2026-09-16T12:46:13.186Z",
"type": "import-export",
"locale": "en",
"reference": "PO-2026-114",
"score": 90,
"level": "good",
"counts": { "errors": 0, "warnings": 2, "infos": 1 },
"documents": { "commercialInvoice": "available", "packingList": "missing" },
"issues": [
{
"severity": "warning",
"code": "docPackingListMissing",
"path": "documents.packingList",
"rule": "DOC-002",
"params": null,
"field": "Packing list",
"message": "Packing list not provided",
"text": "Packing list not provided"
},
{
"severity": "warning",
"code": "docTransportMissing",
"path": "documents.transportDocument",
"rule": "DOC-003",
"params": null,
"field": "Transport document (B/L, AWB, CMR)",
"message": "Transport document not provided",
"text": "Transport document not provided"
}
],
"actions": [
{ "severity": "warning", "code": "docPackingListMissing",
"path": "documents.packingList", "text": "Add: Packing list" }
],
"tips": [
{
"severity": "info",
"code": "taricControlsPossible",
"path": "items.0.hsCode",
"rule": "RULE-017",
"params": { "measures": "Import control - CITES ; Import control on seal products" },
"field": "Product 1 — HS / commodity code (if known)",
"message": "Possible import controls depending on the goods (Import control - CITES ; Import control on seal products): check whether they apply.",
"text": "Product 1 — HS / commodity code (if known): Possible import controls depending on the goods (Import control - CITES ; Import control on seal products): check whether they apply."
}
],
"engine": { "version": "1.6.0", "rules": 25, "taric": "2026-10-01" }
}Laukų atradimas
Deklaracijų tipai ir jų laukai yra vieši, rakto nereikia. Tai kelias formai sukurti, susiejimui iš jūsų ERP maitinti arba agentui pateikti schemą, kurią jis turi užpildyti.
Čia grąžinami pavadinimai yra būtent tie raktai, kuriuos reikia naudoti antraštėje ir kiekvienoje prekių eilutėje. Pasirinkimų sąrašai grąžinami išspręsti ir išversti; pridėkite parametrą, kad juos praleistumėte, jei atsakas atrodo per sunkus.
# The 8 declaration types
curl "https://www.customs-check.com/api/v1/declaration-types?locale=en"
# The fields of one type
curl "https://www.customs-check.com/api/v1/declaration-types/h7?locale=en"
# Same, without the resolved option lists
curl "https://www.customs-check.com/api/v1/declaration-types/h7?options=false"Paketinis apdorojimas
Iki 25 bylų vienam iškvietimui. Atsakas visada sėkmingas, kai paketas priimamas, ir kiekvienas įrašas turi savo būseną: viena netaisyklinga byla niekada nesugriauna kitų.
Jei likusi kvota nepadengia visų galiojančių įrašų, atmetamas visas paketas, o ne apdorojamas iš dalies — jums niekada nereikia spėlioti, kur apdorojimas sustojo.
curl https://www.customs-check.com/api/v1/checks/batch \
-H "Authorization: Bearer $CUSTOM_CHECK_KEY" \
-H "Content-Type: application/json" \
-d '{ "checks": [ { "type": "h7", "header": {}, "items": [] } ] }'Agentai ir įrankiai
Be REST maršrutų, tas pats variklis ir tie patys duomenys pasiekiami iš dirbtinio intelekto asistento per Model Context Protocol (MCP) serverį ir iš API kliento per paruoštą Postman kolekciją. Abu naudoja aukščiau aprašytą API raktą ir dienos kvotą.
MCP serveris
MCP serveris leidžia asistentui ieškoti muitinės kodų, skaityti kodo ES importo muitą, tikrinti EORI, PVM ar AEO numerį oficialiuose registruose ir tikrinti deklaracijos juodraštį, neparašant nė vienos jungiamojo kodo eilutės. Atsako adresu POST /api/mcp, JSON atsakymais.
Jis yra be būsenos ir kalba abiem protokolo kartomis: 2026-07-28 redakcija, kurioje kiekviena užklausa nešasi savo versiją, ir ankstesnėmis redakcijomis, kurios prasideda initialize iškvietimu. Prisijungimas, aptikimas ir įrankių sąrašas nieko nekainuoja; kiekvienas įrankio iškvietimas sunaudoja vieną rakto dienos kvotos vienetą.
Autentifikavimas yra tas pats bearer žetonas kaip ir REST API. Klientas, palaikantis tik OAuth prisijungimą, pavyzdžiui, claude.ai žiniatinklio jungtys, kol kas negali prisijungti: naudokite klientą, leidžiantį nustatyti antraštę.
POST https://www.customs-check.com/api/mcp
claude mcp add --transport http customs-check https://www.customs-check.com/api/mcp \
--header "Authorization: Bearer $CUSTOM_CHECK_KEY"| check_declaration | Deklaracijos juodraščio patikra: įvertinimas iš 100, lygis ir kiekviena problema su lauku ir veiksmu. Failo turinio nesaugo, nebent paprašoma. |
| list_declaration_types | Palaikomos deklaravimo sistemos su institucija, regionu ir laukiamais dokumentais. |
| describe_declaration_type | Tipo antraštės ir prekių laukai, kad būtų sudaryta check_declaration įvestis. |
| search_hs_codes | Kombinuotosios nomenklatūros kandidatų kodai pagal produkto aprašymą bet kuria iš 24 ES kalbų. |
| describe_hs_code | Ar 4–10 skaitmenų kodas egzistuoja galiojančioje nomenklatūroje, su oficialiu keliu ir formuluote. |
| lookup_import_duty | Kodo ES importo muitas pagal Komisijos TARIC duomenis: trečiųjų šalių muitas, lengvatos pagal kilmę, kvotos, antidempingo priemonės ir kontrolė. |
| search_chemical | Cheminė medžiaga pagal CAS numerį, CUS numerį arba pavadinimą Komisijos ECICS sąraše: kiekvienam įrašui nurodytas Kombinuotosios nomenklatūros kodas, kurį reikia patikrinti. |
| get_quota_balance | ES tarifinės kvotos likutis Komisijos QUOTA duomenų bazėje pagal eilės numerį arba pagal kodą ir kilmę: likutis, būsena (atvira, kritinė, užblokuota, išnaudota), laikotarpis ir nuskaitymo laikas. |
| validate_eori | EORI numerio formatas ir jo statusas oficialiame registre (Europos Komisija, HMRC). |
| validate_vat | ES PVM numerio formatas ir jo galiojimas VIES, su registruotu pavadinimu, jei paskelbtas. |
| check_rex | Registruoto eksportuotojo REX numerio formatas ir jo būsena Komisijos REX duomenų bazėje (galioja, panaikintas arba nežinomas), su datomis. |
| screen_sanctions | Įmonė, asmuo ar laivas pagal ES, JT, Jungtinės Karalystės ir JAV sankcijų sąrašus, atnaujinamus kasdien: kiekvienas atitikmuo su balu, stiprus ar dalinis. |
| search_aeo | Komisijos įgaliotųjų ekonomikos operatorių duomenų bazės paieška pagal įmonės pavadinimą. |
- Muitinės kodai yra pasiūlymai, paimti iš nomenklatūros formuluotės. Klasifikavimą gali patvirtinti tik deklarantas arba muitinės privalomoji tarifinė informacija.
- Muitai yra orientaciniai: sąlygos, šalių išimtys ir išnaudotos kvotos nevertinamos. Kiekvienas atsakymas nurodo kas mėnesį atnaujinamo TARIC ištraukos etalono datą.
- Registras, kuris neatsako, pranešamas kaip neprieinamas, niekada kaip negaliojantis numeris. Muitinei niekada nieko nesiunčiama.
Postman kolekcija
Kolekcija generuojama iš OpenAPI specifikacijos, todėl visada jai atitinka: viena užklausa kiekvienam maršrutui, sugrupuotos pagal žymę, su kiekvieno POST kūno karkasu. Importuokite ją į Postman, užpildykite kintamąjį apiKey (saugomą kaip paslaptis), ir užklausos paruoštos siųsti.
Atsisiųsti kolekcijąKvota
Kiekvienas raktas turi 500 patikrų per UTC kalendorinę dieną. Dabartinė būsena keliauja su kiekvienu autentifikuotu atsaku, todėl jai sužinoti niekada nereikia papildomo iškvietimo.
Atmesti iškvietimai taip pat skaičiuojami: klientas, ciklu siuntinėjantis negaliojančias užklausas, apriboja pats save. Kvota nustatoma kiekvienam raktui — parašykite mums, jei reikia daugiau.
X-RateLimit-Limit: 500
X-RateLimit-Remaining: 437
X-RateLimit-Reset: 1789603200
X-RateLimit-Policy: 500;w=86400Klaidos
Klaidų pranešimai yra tik anglų kalba: tai protokolo pranešimai, skirti kūrėjams. Verčiamas tik dalykinis turinys.
Kiekvienas atsakas turi užklausos identifikatorių, pakartotą tekste. Nurodykite jį susisiekdami su mumis — jis nuveda mus tiesiai prie iškvietimo.
{
"error": {
"code": "invalid_request",
"message": "The request body failed validation.",
"details": [
{ "path": "items.0.quantity", "message": "expected a string" }
],
"requestId": "2bbb0946-6178-4b54-921c-b28f794c44bd"
}
}| Būsena | code | Reikšmė |
|---|---|---|
| 400 | invalid_json | Tekstas nėra tinkamas JSON. |
| 422 | invalid_request | JSON tinkamas, bet jo turinys ne. Detalės nurodo klaidingą lauką. |
| 401 | missing_credentials | Trūksta Authorization antraštės arba ji netaisyklinga. |
| 401 | invalid_key | Nežinomas raktas. |
| 401 | key_revoked | Panaikintas raktas. |
| 403 | account_suspended | Rakto savininko paskyra sustabdyta. |
| 415 | unsupported_media_type | Turinio tipas nėra JSON. |
| 413 | payload_too_large | Užklausos tekstas per didelis. |
| 429 | rate_limit_exceeded | Pasiekta dienos kvota. Žiūrėkite Retry-After antraštę. |
| 500 | internal_error | Klaida mūsų pusėje. Bandykite dar kartą ir praneškite mums su užklausos identifikatoriumi. |
Duomenys ir saugojimas
Per API atsiųstos bylos yra jūsų klientų duomenys: saugome kuo mažiau, o jūs turite jungiklį nesaugoti nieko.
- Siųskite „store“ kaip false ir joks bylos turinys nebus įrašytas: liks tik balas ir neatitikimų kodai.
- Priešingu atveju bylų turinys ištrinamas po 30 dienų.
- Rakto panaikinimas iškart ištrina juo pateiktų bylų turinį.
- Apdorojimas vyksta Frankfurte, o duomenų bazė talpinama Europos Sąjungoje.
- Per API failai neįkeliami: jūs tik nurodote, kuriuos dokumentus turite.
200 items · 256 KB · 25 / batch · reference ≤ 64
Kas šis API nėra
Patikra padeda pasirengti. Ji nėra muitinės administracijos patvirtinimas, ji nieko neteikia ir nepakeičia jūsų operacijai taikomų teisinių pareigų.
Muitinės kodai tikrinami pagal formatą, buvimą nomenklatūroje ir, importuojant į ES, pagal jų kilmės TARIC priemones, bet niekada pagal prekės klasifikavimą: esamas kodas lieka tikrintinu kodu. TARIC priemonės yra orientacinės (kas mėnesį Europos Komisijos teikiamas išrašas): šalių išimtys, išnaudotos kvotos ir sąlyginiai muitai nevertinami.