API-ul Eurodebt (1.0.1 beta)

Descărcați specificația OpenAPI:Descarcă

Sprijin pentru datoria europeană: support@eurodebt.eu URL-ul: https://eurodebt.eu Licență: De proprietate

Eurodebt API oferă servicii de verificare a companiilor și a operatorilor de transport pentru întreprinderile europene.

Adresa URL de bază

https://api.eurodebt.eu/api/{version}
Versiune Stare URL-ul
v1.0.1 beta Curent https://api.eurodebt.eu/api/v1.0

Noțiuni de bază

  1. Obțineți o cheie API din tabloul de bord Eurodebt. Navigați la Management > Settings > API Keys și faceți clic pe „Create API Key”.
  2. Includeți cheia API în toate cererile prin intermediul x-api-key antet
  3. Trimiteți cereri de verificare și primiți rezultate prin webhook-uri sau sondaje

Autentificare

Toate solicitările API necesită autentificare folosind o cheie API. Includeți cheia API în x-api-key antet.

x-api-key: your-api-key-here

Cheile API au permisiuni care controlează accesul la diferite endpoint-uri:

  • cititAcces pentru a recupera cereri de verificare, rapoarte și date de utilizare
  • scriePosibilitatea de a trimite noi solicitări de verificare

Rata de Limitarea

API-ul are o rată limitată la 100 cereri pe minut per cheie API Când rata este limitată, veți primi un 429 Too Many Requests raspuns.

Anteturile cu limita de viteză sunt incluse în toate răspunsurile:

  • RateLimit-LimitNumărul maxim de solicitări per fereastră
  • RateLimit-RemainingCereri rămase în fereastra curentă
  • RateLimit-Reset: Momentul la care limita de rată se resetează (timestamp Unix)

Webhook-uri

Webhook-urile vă permit să primiți notificări în timp real atunci când au loc evenimente în contul dvs. În loc să solicitați actualizări prin API, furnizați o adresă URL, iar Eurodebt va trimite solicitări HTTP POST către acea adresă URL atunci când au loc evenimente relevante.

Cum funcționează Webhook-urile

  1. Configurați: Furnizeaza un webhookUrl la trimiterea unei solicitări (de exemplu, solicitare de verificare, generare PDF)
  2. Evenimentul are locCând operațiunea se finalizează sau eșuează, Eurodebt trimite o solicitare POST la adresa URL a dvs.
  3. EtapeServerul dumneavoastră primește sarcina utilă, verifică semnătura și procesează datele
  4. recunoașteReturnați un cod de stare 2xx în termen de 10 secunde pentru a confirma primirea

Securitate Webhook (Verificare semnătură)

Toate cererile webhook sunt semnate folosind HMAC-SHA256 cu secretul webhook al cheii API. Semnătura este inclusă în X-Eurodebt-Signature antet.

Format antet: sha256=<hex-encoded-signature>

Node.js / Express:

const crypto = require('crypto');

app.post('/webhook', (req, res) => {
  const signature = req.headers['x-eurodebt-signature'];
  
  const expected = 'sha256=' + crypto
    .createHmac('sha256', WEBHOOK_SECRET)
    .update(JSON.stringify(req.body))
    .digest('hex');

  if (signature !== expected) {
    return res.status(401).send('Invalid signature');
  }

  res.status(200).send('OK');
});

Python / Flask:

import hmac, hashlib

@app.route('/webhook', methods=['POST'])
def webhook():
    signature = request.headers.get('X-Eurodebt-Signature', '')
    expected = 'sha256=' + hmac.new(WEBHOOK_SECRET.encode(), request.data, hashlib.sha256).hexdigest()

    if not hmac.compare_digest(signature, expected):
        return 'Invalid signature', 401

    return 'OK', 200

PHP:

$payload = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_EURODEBT_SIGNATURE'] ?? '';
$expected = 'sha256=' . hash_hmac('sha256', $payload, WEBHOOK_SECRET);

if (!hash_equals($expected, $signature)) {
    http_response_code(401);
    exit('Invalid signature');
}

http_response_code(200);

Anteturi Webhook

Fiecare solicitare webhook include următoarele anteturi:

Antet Valoare
Content-Type application/json
User-Agent Eurodebt-Webhook/1.0
X-Eurodebt-Signature sha256=<signature>

Politica de reîncercare a Webhook-ului

Dacă livrarea webhook-ului eșuează, sistemul implementează un mecanism automat de reîncercare:

  1. Încercări imediatePână la 3 încercări cu întârzieri de 1s, 5s și 30s
  2. Reîncercări programateDacă încercările imediate eșuează, webhook-ul este programat pentru încercări în fundal la intervale crescătoare:
    • 5 minute, 15 minute, 30 de minute, 1 oră, 2 ore, 4 ore, 8 ore
  3. Numărul maxim de încercăriDupă 10 încercări în total, webhook-ul este marcat ca eșuat

Erori care pot fi reîncercate:

  • Expirări ale rețelei și erori de conexiune
  • Erori ale serverului HTTP 5xx

Erori care nu pot fi reîncercate (fără alte încercări):

  • Erori ale clientului HTTP 4xx (cu excepția 429)

Starea livrării Webhook-ului

Puteți verifica starea livrării webhook-ului prin preluarea cererii de verificare:

Stare Descriere
pending Webhook-ul este în coadă sau așteaptă o nouă încercare
delivered Webhook-ul a fost livrat cu succes
failed Toate încercările de reluare au fost epuizate

Note importante

  • Răspundeți rapidReturnează un status 2xx în termen de 10 secunde pentru a confirma primirea
  • Verificați semnăturileValidați întotdeauna X-Eurodebt-Signature antet

Flux de verificare

  1. Trimite cerereaPOST /verification/submit Returnează requestId
  2. Prelucrare → Verificarea este procesată
  3. Finalizare tranzactiei → Webhook-ul este trimis (dacă este configurat) cu status: "completed" or status: "rejected"
  4. Preluare raport → Utilizați verificationId din webhook sau sondaj GET /verification/request/{id}

Limbă

Mai multe puncte finale acceptă o language parametru pentru câmpuri traductibile.

🇧🇬 bg Bulgară 🇨🇿 cs cehă 🏴󠁧󠁢󠁷󠁬󠁳󠁿 cy velșă 🇩🇰 da daneză
🇩🇪 de Germană 🇬🇷 el Greacă ???????? en Engleză 🇪🇸 es Spaniolă
🇪🇪 et eston 🇮🇳 fi Finlandeză 🇫🇷 fr Franceză 🇮🇪 ga irlandez
🇭🇷 hr croat 🇭🇺 hu Maghiară 🇮🇸 is islandeză 🇮🇹 it Italiană
🇱🇹 lt Lituaniana 🇱🇻 lv letonă 🇲🇹 mt maltez 🇳🇱 nl Olandeză
🇵🇱 pl Poloneză 🇵🇹 pt Portugheză 🇷🇴 ro Română 🇷🇺 ru Rusă
🇸🇰 sk slovacă 🇸🇮 sl Slovenă 🇸🇪 sv Suedeză 🇹🇷 tr Turcă
🇺🇦 uk ucrainean

Gestionarea erorilor

Toate erorile returnează o structură JSON consistentă:

{
  "error": {
    "type": "ERROR_TYPE",
    "message": "Human-readable error description"
  }
}
Stare HTTP Tipul de eroare Descriere
400 BAD_REQUEST Parametri de solicitare nevalidi
401 UNAUTHORIZED Cheie API lipsă, nevalidă sau expirată
402 PAYMENT_REQUIRED Fonduri sau credite insuficiente
403 FORBIDDEN Cheia API nu are permisiunea necesară
404 NOT_FOUND Resursă negăsită
429 TOO_MANY_REQUESTS Limita de rată a fost depășită
500 INTERNAL_SERVER_ERROR Eroare de server

Verificare

Puncte finale pentru trimiterea și recuperarea cererilor și rapoartelor de verificare

Trimiteți o solicitare de verificare

Trimiteți o nouă solicitare de verificare a companiei sau a operatorului de transport.

Acest punct final necesită write permisiune asupra cheii API.

timp de procesare

Program de lucru - Procesare:
Cererile depuse în timpul programului nostru de lucru (Luni-Vineri, 7:00-18:00 CET) sunt de obicei procesate în câteva minute.

Procesare după orele de program:
Cererile trimise în afara orelor de program pot fi puse în așteptare pentru procesare în următoarea zi lucrătoare. Cu toate acestea, sistemele noastre automate continuă să proceseze cererile 24/7 ori de câte ori este posibil, așa că este posibil să primiți în continuare rezultate în afara orelor standard.

Notificări Webhook

În cazul în care o webhookUrl Dacă este furnizată, o notificare va fi trimisă când verificarea este finalizată sau este respinsă. Sarcina utilă webhook include:

  • requestId: Folosește pentru corelarea cu înregistrările tale
  • verificationId: Se utilizează pentru a prelua raportul complet (numai dacă este finalizat cu succes)
  • status: Starea solicitării (pending, completed, rejected)
  • rejectReasonMotivul respingerii, lizibil de către om (tradus în limba solicitată)

A se vedea Webhook-uri secțiune pentru formatul sarcinii utile, verificarea semnăturii și politica de reîncercare.

Alternativă: Sondaje

Dacă nu utilizați webhook-uri, puteți face sondaje GET /verification/request/{id} pentru a verifica starea.

Autorizații:
ApiKeyAuth
Schema corpului solicitării: aplicație / json
tip
necesar
şir
enumerare: "companie" "purtător"

Tipul de verificare de efectuat

Codul tarii
necesar
şir = 2 caractere

Codul de țară ISO 3166-1 alpha-2

Cod TVA
necesar
şir [ 1 .. 18 ] caractere

Număr de TVA fără prefixul codului de țară

Numele companiei
şir <= 256 de caractere

Numele opțional al companiei pentru referință

URL-ul webhook
şir <uri>

Adresa URL pentru a primi notificarea webhook după finalizarea verificării. Trebuie să fie o adresă URL HTTP sau HTTPS validă. HTTPS este recomandat insistent pentru producție. Consultați secțiunea Webhooks pentru formatul sarcinii utile și detalii despre securitate.

Răspunsuri

Solicitați mostre

Tip de conținut
aplicație / json
Exemplu
{}

Eșantioane de răspuns

Tip de conținut
aplicație / json
{
  • "requestId": "507f1f77bcf86cd799439011"
}

Obțineți o solicitare de verificare

Preia detalii despre o anumită solicitare de verificare după ID-ul acesteia.

Acest punct final necesită read permisiune asupra cheii API.

Autorizații:
ApiKeyAuth
cale parametrii
id
necesar
şir^[af\d]{24}$
Exemplu: 507f1f77bcf86cd799439011

ID-ul cererii de verificare

întrebare parametrii
limbă
şir
Mod implicit: "ro"
enumerare: „bg” „cs” „cy” "da" "de" "el" "ro" "es" „și” "fi" "fr" "ga" "HR" "hu" "este" "câine" "lt" „lv” "mt" „nl” „pl” "pt" "ro" „ru” „sk” "sl" "sv" „tr” "Regatul Unit"
Exemplu: limba=ro

Cod de limbă pentru câmpuri traductibile

Răspunsuri

Eșantioane de răspuns

Tip de conținut
aplicație / json
{
  • "request": {
    }
}

Lista solicitărilor de verificare

Obțineți o listă paginată cu toate solicitările de verificare pentru compania dvs.

Acest punct final necesită read permisiune asupra cheii API.

Rezultatele sunt sortate în ordine descrescătoare după data creării (cele mai noi).

Autorizații:
ApiKeyAuth
întrebare parametrii
tip
şir
Mod implicit: "orice"
enumerare: "companie" "purtător" "orice"

Filtrați solicitările după tipul de verificare

limita
întreg [ 1 .. 25 ]
Mod implicit: 10

Numărul maxim de solicitări de returnat (1-25)

compensa
întreg > = 0
Mod implicit: 0

Numărul de solicitări de omis pentru paginare

limbă
şir
Mod implicit: "ro"
enumerare: „bg” „cs” „cy” "da" "de" "el" "ro" "es" „și” "fi" "fr" "ga" "HR" "hu" "este" "câine" "lt" „lv” "mt" „nl” „pl” "pt" "ro" „ru” „sk” "sl" "sv" „tr” "Regatul Unit"
Exemplu: limba=ro

Cod de limbă pentru câmpuri traductibile

Răspunsuri

Eșantioane de răspuns

Tip de conținut
aplicație / json
{
  • "requests": [
    ],
  • "total": 42
}

Obțineți un raport de verificare

Recuperați un raport de verificare completat după ID-ul său numeric.

Acest punct final necesită read permisiune asupra cheii API.

Raportul conține rezultate detaliate ale verificării, inclusiv informații despre companie, date financiare, indicatori de risc și multe altele, în funcție de tipul de verificare.

Autorizații:
ApiKeyAuth
cale parametrii
id
necesar
întreg
Exemplu: 12345

ID-ul numeric al raportului de verificare

întrebare parametrii
limbă
şir
Mod implicit: "ro"
enumerare: „bg” „cs” „cy” "da" "de" "el" "ro" "es" „și” "fi" "fr" "ga" "HR" "hu" "este" "câine" "lt" „lv” "mt" „nl” „pl” "pt" "ro" „ru” „sk” "sl" "sv" „tr” "Regatul Unit"
Exemplu: limba=ro

Cod de limbă pentru câmpuri traductibile

Răspunsuri

Eșantioane de răspuns

Tip de conținut
aplicație / json
{
  • "report": {
    }
}

Solicitați generarea unui raport de verificare în format PDF

Solicitați generarea asincronă a unui raport de verificare ca document PDF.

Acest punct final necesită read permisiune asupra cheii API.

Livrare Webhook Async

Generarea PDF-urilor se efectuează asincron. La finalizare, un webhook este trimis către adresa furnizată. webhookUrl cu un link de descărcare temporar. URL-ul este valabil timp de 1 oră.

Punctul final returnează imediat cu un requestId pentru a urmări generația.

Rata de Limitarea

Generarea de PDF-uri necesită multe resurse și are o limitare separată a ratei (implicit: 1 solicitare pe minut per cheie API).

Sarcină utilă Webhook

La succes:

{
  "requestId": "507f1f77bcf86cd799439011",
  "verificationId": 12345,
  "status": "completed",
  "downloadUrl": "https://...",
  "dateExpires": "2024-01-15T15:45:00.000Z",
  "fileName": "EURODEBT.eu - PL1234567890 - ABC12XYZ.pdf"
}

În caz de eșec:

{
  "requestId": "507f1f77bcf86cd799439011",
  "verificationId": 12345,
  "status": "failed"
}

Webhook-ul este semnat cu același X-Eurodebt-Signature antet ca și alte webhook-uri.

Autorizații:
ApiKeyAuth
cale parametrii
id
necesar
întreg
Exemplu: 12345

ID-ul numeric al raportului de verificare

Schema corpului solicitării: aplicație / json
limbă
şir
Mod implicit: "ro"
enumerare: „bg” „cs” „cy” "da" "de" "el" "ro" "es" „și” "fi" "fr" "ga" "HR" "hu" "este" "câine" "lt" „lv” "mt" „nl” „pl” "pt" "ro" „ru” „sk” "sl" "sv" „tr” "Regatul Unit"

Codul de limbă pentru câmpurile traduse din PDF

URL-ul webhook
necesar
şir <uri>

Adresă URL pentru a primi notificarea webhook când PDF-ul este gata. Trebuie să fie o adresă URL HTTP sau HTTPS validă. HTTPS este recomandat insistent.

Răspunsuri

Solicitați mostre

Tip de conținut
aplicație / json
Exemplu
{}

Eșantioane de răspuns

Tip de conținut
aplicație / json
{
  • "requestId": "507f1f77bcf86cd799439011",
  • "status": "queued"
}

Listați rapoartele de verificare

Obțineți o listă paginată cu toate rapoartele de verificare completate pentru compania dvs.

Acest punct final necesită read permisiune asupra cheii API.

Rezultatele sunt sortate în ordine descrescătoare după data creării (cele mai noi). Returnează o versiune rezumată a rapoartelor, potrivită pentru listări.

Autorizații:
ApiKeyAuth
întrebare parametrii
tip
şir
Mod implicit: "orice"
enumerare: "companie" "purtător" "orice"

Filtrați rapoartele după tipul de verificare

limita
întreg [ 1 .. 25 ]
Mod implicit: 10

Numărul maxim de rapoarte de returnat (1-25)

compensa
întreg > = 0
Mod implicit: 0

Numărul de rapoarte de omis pentru paginare

Codul tarii
şir = 2 caractere
Exemplu: Cod țară=PL

Filtrare după codul de țară ISO 3166-1 alpha-2 (de exemplu, PL, DE)

Cod TVA
şir [ 1 .. 32 ] caractere
Exemplu: Cod TVA = 123456

Filtrare după numărul de TVA

căutare
şir [ 2 .. 128 ] caractere
Exemplu: căutare=Transport

Căutare după numele companiei

Răspunsuri

Eșantioane de răspuns

Tip de conținut
aplicație / json
{
  • "reports": [
    ],
  • "total": 156
}

Folosire

Puncte finale pentru monitorizarea utilizării contului și a cotelor

Obțineți informații despre utilizarea contului

Preluați informații despre utilizarea curentă a contului dvs., inclusiv soldul punctelor, cotele de pachete și abonamentele active.

Acest punct final necesită read permisiune asupra cheii API.

Autorizații:
ApiKeyAuth

Răspunsuri

Eșantioane de răspuns

Tip de conținut
aplicație / json
{
  • "usage": {
    }
}

Webhook-uri

Apeluri de tip webhook trimise de Eurodebt la finalizarea operațiunilor. Fiecare tip de webhook are propria structură de payload documentată mai jos.

Verificare finalizată prin apel invers webhook

Acest webhook este trimis către configurația dvs. webhookUrl când o cerere de verificare se finalizează sau este respinsă.

Important: Punctul final ar trebui:

  • Returnează un cod de stare 2xx în termen de 10 secunde
  • Verificați semnătura folosind X-Eurodebt-Signature antet

Webhook-ul va fi reîncercat automat în caz de eșec (consultați Politica de reîncercare Webhook din descrierea principală).

Structura sarcinii utile

{
  "apiVersion": "1.0",
  "requestId": "507f1f77bcf86cd799439011",
  "verificationId": 12345,
  "countryCode": "PL",
  "vatNumber": "1234567890",
  "companyName": "Przykładowa Firma Sp. z o.o.",
  "type": "company",
  "status": "completed",
  "rejectReason": null,
  "dateCreated": "2024-01-15T10:30:00.000Z",
  "dateCompleted": "2024-01-15T14:45:00.000Z"
}

Câmpuri de sarcină utilă

Câmp Tip Descriere
apiVersion şir Versiunea API care a creat solicitarea
requestId şir ID-ul cererii de verificare
verificationId întreg ID-ul numeric al raportului de verificare completat (numai dacă a fost completat cu succes)
countryCode şir Codul de țară ISO 3166-1 alpha-2
vatNumber şir Codul TVA care a fost verificat
companyName şir Numele companiei (dacă a fost furnizat în timpul depunerii)
type şir Tip de verificare: company or carrier
status şir Starea solicitării: pending, completed, rejected
rejectReason şir Motivul respingerii (dacă este respinsă)
dateCreated şir Marcaj temporal ISO 8601 la trimiterea cererii
dateCompleted şir Marcaj temporal ISO 8601 la finalizarea verificării
Autorizații:
ApiKeyAuth
Schema corpului solicitării: aplicație / json
apiVersion
necesar
şir

Versiunea API care a creat solicitarea de verificare

requestId
necesar
şir^[af\d]{24}$

ID-ul cererii de verificare

ID de verificare
întreg

ID numeric al raportului de verificare completat. Prezent numai când status is completed (verificare finalizată cu succes). Folosește acest ID cu GET /verification/report/{id} pentru a recupera raportul complet.

Codul tarii
necesar
şir

Codul de țară ISO 3166-1 alpha-2

Cod TVA
necesar
şir

Codul TVA care a fost verificat

Numele companiei
şir

Numele companiei

tip
necesar
şir
enumerare: "companie" "purtător"

Tipul de verificare efectuată

Starea
necesar
şir (Stare Cerere Verificare)
enumerare: "in asteptarea" „completat” „respins”

Starea unei cereri de verificare:

  • pendingVerificarea este în curs de desfășurare
  • completedVerificare finalizată cu succes
  • rejectedVerificarea a fost respinsă (vezi rejectReason pentru detalii)
respingeMotiv
șir de caractere sau nul

Motivul respingerii, lizibil de către om, tradus în limba solicitată. Prezent numai când statusul este rejected.

dataCreației
necesar
şir <data-ora>

Marcaj temporal ISO 8601 la momentul trimiterii solicitării

dataCompleted
şir <data-ora>

Marcaj temporal ISO 8601 la finalizarea sau respingerea verificării

Răspunsuri

Solicitați mostre

Tip de conținut
aplicație / json
Exemplu
{
  • "apiVersion": "1.0",
  • "requestId": "507f1f77bcf86cd799439011",
  • "verificationId": 12345,
  • "countryCode": "PL",
  • "vatNumber": "1234567890",
  • "companyName": "Example Company Sp. z o.o.",
  • "type": "company",
  • "status": "completed",
  • "dateCreated": "2024-01-15T10:30:00.000Z",
  • "dateCompleted": "2024-01-15T14:45:00.000Z"
}