Descărcați specificația OpenAPI:Descarcă
Eurodebt API oferă servicii de verificare a companiilor și a operatorilor de transport pentru întreprinderile europene.
https://api.eurodebt.eu/api/{version}
| Versiune | Stare | URL-ul |
|---|---|---|
| v1.0.1 beta | Curent | https://api.eurodebt.eu/api/v1.0 |
x-api-key antetToate 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:
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-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.
webhookUrl la trimiterea unei solicitări (de exemplu, solicitare de verificare, generare PDF)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);
Fiecare solicitare webhook include următoarele anteturi:
| Antet | Valoare |
|---|---|
Content-Type |
application/json |
User-Agent |
Eurodebt-Webhook/1.0 |
X-Eurodebt-Signature |
sha256=<signature> |
Dacă livrarea webhook-ului eșuează, sistemul implementează un mecanism automat de reîncercare:
Erori care pot fi reîncercate:
Erori care nu pot fi reîncercate (fără alte încercări):
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 |
X-Eurodebt-Signature antetPOST /verification/submit Returnează requestIdstatus: "completed" or status: "rejected"verificationId din webhook sau sondaj GET /verification/request/{id}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 |
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 |
Trimiteți o nouă solicitare de verificare a companiei sau a operatorului de transport.
Acest punct final necesită write permisiune asupra cheii API.
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.
Î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 taleverificationId: 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.
Dacă nu utilizați webhook-uri, puteți face sondaje GET /verification/request/{id} pentru a verifica starea.
| 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. |
{- "type": "company",
- "countryCode": "PL",
- "vatNumber": "1234567890",
- "companyName": "Przykładowa Firma Sp. z o.o.",
}{- "requestId": "507f1f77bcf86cd799439011"
}Preia detalii despre o anumită solicitare de verificare după ID-ul acesteia.
Acest punct final necesită read permisiune asupra cheii API.
| id necesar | şir^[af\d]{24}$ Exemplu: 507f1f77bcf86cd799439011 ID-ul cererii de verificare |
| 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 |
{- "request": {
- "id": "507f1f77bcf86cd799439011",
- "type": "company",
- "dateCreated": "2024-01-15T10:30:00.000Z",
- "dateCompleted": "2024-01-15T14:45:00.000Z",
- "countryCode": "PL",
- "vatNumber": "1234567890",
- "companyName": "Example Company Sp. z o.o.",
- "status": "pending",
- "verificationId": 12345,
- "rejectReason": null,
}
}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).
| 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 |
{- "requests": [
- {
- "id": "507f1f77bcf86cd799439011",
- "type": "company",
- "dateCreated": "2024-01-15T10:30:00.000Z",
- "dateCompleted": "2024-01-15T14:45:00.000Z",
- "countryCode": "PL",
- "vatNumber": "1234567890",
- "companyName": "Example Company Sp. z o.o.",
- "status": "pending",
- "verificationId": 12345,
- "rejectReason": null,
}
], - "total": 42
}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.
| id necesar | întreg Exemplu: 12345 ID-ul numeric al raportului de verificare |
| 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 |
{- "report": {
- "id": 12345,
- "type": "company",
- "dateCreated": "2024-01-15T14:45:00.000Z",
- "companyName": "Example Company Sp. z o.o.",
- "address": "ul. Przykładowa 123, 00-001 Warszawa",
- "postCode": "00-001",
- "countryCode": "PL",
- "vatNumber": "1234567890",
- "city": "Warszawa",
- "street": "Przykładowa",
- "houseNumber": "123",
- "apartmentNumber": "4A",
- "region": "Mazowieckie",
- "viesStatus": "true",
- "dateFounded": "2010-05-15T00:00:00.000Z",
- "dateTerminated": null,
- "employeesTotal": 25,
- "activityCodes": [
- {
- "code": "49.41.Z",
- "description": "Road freight transport"
}
], - "financialReportsStatus": "true",
- "turnover": 5000000,
- "estimatedTurnover": null,
- "profit": 500000,
- "estimatedProfit": null,
- "assetsTotal": 2500000,
- "estimatedAssetsTotal": 0,
- "assetsLiquid": 0,
- "estimatedAssetsLiquid": 0,
- "assetsFixed": 0,
- "estimatedAssetsFixed": 0,
- "workingCapital": 0,
- "estimatedWorkingCapital": 0,
- "cashInHand": 0,
- "estimatedCashInHand": 0,
- "equity": 0,
- "estimatedEquity": 0,
- "meansOfTransport": 0,
- "estimatedMeansOfTransport": 0,
- "currency": "PLN",
- "dateFinancialReport": "2019-08-24T14:15:22Z",
- "isDateFinancialReportYearOnly": true,
- "financialReportPeriodStart": "2019-08-24T14:15:22Z",
- "financialReportPeriodEnd": "2019-08-24T14:15:22Z",
- "vatWhitelist": {
- "status": "string",
- "ibans": [
- "string"
], - "dateRegistration": "2019-08-24T14:15:22Z",
- "dateRemoved": "2019-08-24T14:15:22Z",
- "dateRestoration": "2019-08-24T14:15:22Z",
- "hasVirtualAccounts": true
}, - "socialMedia": {
- "website": "string",
- "facebook": "string",
- "twitter": "string",
- "linkedIn": "string",
- "googleID": "string"
}, - "eurodebtCollectionListed": true,
- "debtCollectionListed": true,
- "eurodebtBlacklisted": true,
- "virtualOffice": "true",
- "lastYearNameChanged": "true",
- "lastYearBoardChanged": "true",
- "taxDebt": "true",
- "courtProceedingsListed": "true",
- "restructuringProceedingsListed": "true",
- "bunkrupcyProceedingsListed": "true",
- "isInSolventCapitalGroup": "true",
- "paymentDelay": "none",
- "score": 85,
- "subject": {
- "color": "string",
- "text": "string"
}, - "creditLimitFrom": 0,
- "creditLimitTo": 0,
- "comments": "string",
- "highlights": "string",
- "precautions": "string",
- "relatedCompanies": [
- {
- "countryCode": "string",
- "vatNumber": "string",
- "id": "string",
- "name": "string"
}
], - "companyRegisterChanges": {
- "hasChanges": true,
- "dateCaptured": "2019-08-24T14:15:22Z",
- "events": [
- {
- "date": "2019-08-24T14:15:22Z",
- "type": "registration",
- "event": "company.events.company.name.changed",
- "eventParams": {
- "oldName": "Old Company Name Sp. z o.o.",
- "newName": "New Company Name Sp. z o.o."
}, - "sourceRegister": "KRS",
- "sourceReference": "0000123456"
}
]
}, - "verdict": "true",
- "transportManagersDetails": [
- {
- "firstName": "string",
- "lastName": "string",
- "certificateNumber": "string",
- "certificateType": "string",
- "certificateIssuanceDate": "2019-08-24T14:15:22Z",
- "certificateIssuingCountry": "string"
}
], - "permits": [
- {
- "scope": "string",
- "id": "string",
- "status": "string",
- "issuingAuthority": "string",
- "issueDate": "2019-08-24T14:15:22Z",
- "statusChangeDate": "2019-08-24T14:15:22Z",
- "vehicleCount": 0,
- "expirationDate": "2019-08-24T14:15:22Z",
- "revocationDate": "2019-08-24T14:15:22Z",
- "suspensionDate": "2019-08-24T14:15:22Z",
- "suspensionLiftDate": "2019-08-24T14:15:22Z",
- "suspensionOrRevocationReason": "string"
}
], - "licenses": [
- {
- "id": "string",
- "scope": "string",
- "status": "string",
- "validityStartDate": "2019-08-24T14:15:22Z",
- "validityEndDate": "2019-08-24T14:15:22Z",
- "vehicleCount": 0,
- "expirationDate": "2019-08-24T14:15:22Z",
- "revocationDate": "2019-08-24T14:15:22Z",
- "suspensionDate": "2019-08-24T14:15:22Z",
- "suspensionLiftDate": "2019-08-24T14:15:22Z",
- "suspensionOrWithdrawalReason": "string"
}
], - "permitExtracts": [
- {
- "scope": "string",
- "id": "string",
- "status": "string"
}
], - "licenseExtracts": [
- {
- "id": "string",
- "type": "string",
- "scope": "string",
- "status": "string",
- "revocationDate": "2019-08-24T14:15:22Z",
- "revocationExpirationDate": "2019-08-24T14:15:22Z"
}
], - "legalRepresentatives": [
- {
- "firstName": "string",
- "lastName": "string"
}
], - "vehiclesNumber": 0
}
}Solicitați generarea asincronă a unui raport de verificare ca document PDF.
Acest punct final necesită read permisiune asupra cheii API.
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.
Generarea de PDF-uri necesită multe resurse și are o limitare separată a ratei (implicit: 1 solicitare pe minut per cheie API).
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.
| id necesar | întreg Exemplu: 12345 ID-ul numeric al raportului de verificare |
| 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. |
{- "language": "en",
}{- "requestId": "507f1f77bcf86cd799439011",
- "status": "queued"
}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.
| 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 |
{- "reports": [
- {
- "id": 12345,
- "type": "company",
- "dateAdded": "2024-01-15T14:45:00.000Z",
- "companyName": "Example Company Sp. z o.o.",
- "address": "ul. Przykładowa 123, 00-001 Warszawa",
- "countryCode": "PL",
- "vatNumber": "1234567890",
- "score": 85,
- "verdict": "true"
}
], - "total": 156
}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.
{- "usage": {
- "points": 1500,
- "packages": [
- {
- "service": "verification",
- "used": 45,
- "limit": 100,
- "isOverageEnabled": true,
- "dateActiveUntil": "2024-12-31T23:59:59.000Z",
- "autoRenewal": true
}
], - "subscriptions": [
- {
- "service": "blacklist",
- "dateActiveUntil": "2024-12-31T23:59:59.000Z",
- "autoRenewal": true
}
]
}
}Apeluri de tip webhook trimise de Eurodebt la finalizarea operațiunilor. Fiecare tip de webhook are propria structură de payload documentată mai jos.
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:
X-Eurodebt-Signature antetWebhook-ul va fi reîncercat automat în caz de eșec (consultați Politica de reîncercare Webhook din descrierea principală).
{
"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â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 |
| 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 |
| 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:
|
| respingeMotiv | șir de caractere sau nul Motivul respingerii, lizibil de către om, tradus în limba solicitată. Prezent numai când statusul este |
| 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 |
{- "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"
}