68trust / 100

Generate Efactura Ubl

by api.ibancheck.co.uk in Markets & finance

x402 APIFailing, checked 33 min ago

Convert JSON invoice into valid European Standard EN 16931 / CIUS-RO ANAF UBL 2.1 XML e-Factura

POST https://api.ibancheck.co.uk/api/generate-efactura-ubl

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
66.7%
Response time
282 ms typical, 374 ms slowest 5%
Last check
33 min ago: Expected HTTP 402, got 530
Next check
any minute now

How to call it

# See the payment challenge (nothing is charged)
curl -i -X POST "https://api.ibancheck.co.uk/api/generate-efactura-ubl" \
  -H "content-type: application/json" \
  -d '{"currency":"RON","customer":{"address":"Bulevardul Unirii 10","cif":"2816464","city":"Bacau","countryCode":"RO","name":"Client SRL"},"invoiceNumber":"FACT-2026-001","lines":[{"name":"Servicii Consultanta AI","quantity":1,"taxRatePercent":19,"unitPrice":2500}],"supplier":{"address":"Strada Exemplu 1","cif":"14399840","city":"Bucuresti","countryCode":"RO","iban":"RO49AAAA1B31007593840000","name":"Furnizor SRL"}}'
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client().register(
  "eip155:8453",
  new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fapi.ibancheck.co.uk%2Fapi%2Fgenerate-efactura-ubl
const res = await pay("https://api.ibancheck.co.uk/api/generate-efactura-ubl", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({"currency":"RON","customer":{"address":"Bulevardul Unirii 10","cif":"2816464","city":"Bacau","countryCode":"RO","name":"Client SRL"},"invoiceNumber":"FACT-2026-001","lines":[{"name":"Servicii Consultanta AI","quantity":1,"taxRatePercent":19,"unitPrice":2500}],"supplier":{"address":"Strada Exemplu 1","cif":"14399840","city":"Bucuresti","countryCode":"RO","iban":"RO49AAAA1B31007593840000","name":"Furnizor SRL"}}),
});
console.log(await res.json());

Example input

{
  "currency": "RON",
  "customer": {
    "address": "Bulevardul Unirii 10",
    "cif": "2816464",
    "city": "Bacau",
    "countryCode": "RO",
    "name": "Client SRL"
  },
  "invoiceNumber": "FACT-2026-001",
  "lines": [
    {
      "name": "Servicii Consultanta AI",
      "quantity": 1,
      "taxRatePercent": 19,
      "unitPrice": 2500
    }
  ],
  "supplier": {
    "address": "Strada Exemplu 1",
    "cif": "14399840",
    "city": "Bucuresti",
    "countryCode": "RO",
    "iban": "RO49AAAA1B31007593840000",
    "name": "Furnizor SRL"
  }
}

Example output

{
  "formattedXmlSize": "3.53 KB",
  "invoiceNumber": "FACT-2026-001",
  "totals": {
    "currency": "RON",
    "linesCount": 1,
    "totalGross": 2975,
    "totalNet": 2500,
    "totalVat": 475
  },
  "validationReport": {
    "hasValidCustomerCif": true,
    "hasValidSupplierCif": true,
    "hasValidSupplierIban": true,
    "isCiusRoCompliant": true,
    "isEn16931Compliant": true,
    "schemaErrors": [],
    "validationScope": "structural-local",
    "warnings": [
      "Notă: \"isCiusRoCompliant\"/\"isEn16931Compliant\" verifică doar prezența câmpurilor obligatorii și plaje numerice valide — NU validează integral regulile de business BR-* din EN 16931/CIUS-RO. Nu folosiți acest flag ca singură confirmare \"gata de trimis la ANAF\"."
    ]
  },
  "xmlBytesCount": 3616,
  "xmlUblContent": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Invoice xmlns=\"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2\" xmlns:cac=\"urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2\" xmlns:cbc=\"urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2\">\n  <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:efactura.mfinante.ro:CIUS-RO:1.0.1</cbc:CustomizationID>\n  <cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>\n  <cbc:ID>FACT-2026-001</cbc:ID>\n  <cbc:IssueDate>2026-10-06</cbc:IssueDate>\n  <cbc:DueDate>2026-10-06</cbc:DueDate>\n  <cbc:Inv…"
}

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
33 min agoExpected HTTP 402, got 530530213 ms-
5 h agoPassed402374 ms$0.03
8 h agoPassed402745 ms$0.03
12 h agoPassed402281 ms$0.03
15 h agoPassed402282 ms$0.03
19 h agoPassed402272 ms$0.03
23 h agoPassed402304 ms$0.03
26 h agoPassed402307 ms$0.03
30 h agoExpected HTTP 402, got 502502310 ms-
35 h agoExpected HTTP 402, got 502502259 ms-
37 h agoExpected HTTP 402, got 502502278 ms-
41 h agoExpected HTTP 402, got 502502254 ms-
45 h agoPassed402202 ms$0.03
2 days agoPassed402310 ms$0.03
2 days agoPassed402263 ms$0.03