Compliance

JP-Verify Invoice Facts — the same facts read from a JP PINT UBL Invoice (XML)

The same check as POST /v1/invoice/check, with the facts read from a JP PINT UBL Invoice (Content-Type: application/xml or text/xml): the seller's VAT CompanyID (ibt-031) is the 登録番号, ActualDeliveryDate (ibt-072) or the InvoicePeriod (ibg-14) is the evaluation date, the document-currency TaxTotal's subtotals are the per-rate lines, and the PINT-01..15 structural rules are added (checks against the published JP PINT 1.1.3 rule ids — NOT a Schematron validation; no OpenPeppol files are redistributed). The document.digest is sha256 over the exact bytes received.

NOT tax advice: register facts, document checks and the published schedule only; no determination of any deduction, credit or entitlement — the buyer's consumption-tax treatment is for the taxpayer and their 税理士.

Free refusal, nothing charged: 413 over INVOICE_XML_MAX_BYTES (1 MiB by default); 415 for a media type other than XML; 400 for a document that cannot be read (not UTF-8 — NUL bytes, i.e. a BOM-less UTF-16/UTF-32 document, included; a DOCTYPE / entity declaration; an entity reference other than the five predefined / numeric ones, or a bare & anywhere in the document, CDATA sections and comments included — encode it as &; not well-formed; element or depth caps; a root other than Invoice — a UBL CreditNote is not a JP PINT document: JP PINT models a 適格返還請求書 as a negative Invoice 380, checked with ?document_type=return_invoice; a JP BIS Self Billing Invoice (389); a missing IssueDate / DocumentCurrencyCode; more than 10 tax subtotals) or a malformed ?transaction_date= / ?document_type= / ?sign=. A missing or malformed 登録番号 in the document is a metered finding, reported WITHOUT its text. Metered 1 unit per document; ?sign=1 (or true; 0 / false / empty = unsigned, any other value a free 400) as on the JSON route; opt-in Idempotency-Key (fingerprint = method + path + the effective transaction_date / document_type / sign query parameters + the document bytes — the same key with a different query is refused, 422). The media type is checked before the body is read and an invalid / exhausted key is refused before the document is parsed. Nothing from the document is stored, logged or echoed beyond dates, counts, the well-formed T-number, and identifiers / codes that match a bounded identifier shape (otherwise null, presence in extraction.fields_found).

post/v1/invoice/check/pint

Request

  • Base URL: https://jp-verify.obolpay.xyz
  • URL: https://jp-verify.obolpay.xyz/v1/invoice/check/pint
  • Auth: one of:
    • none
    • API key in header X-API-Key

Query parameters

signstring

1 or true = return an Ed25519-signed record (Growth+); 0, false or empty (default) = unsigned; any other value is a free 400

transaction_datestring

'YYYY-MM-DD' — overrides the document's own Delivery/ActualDeliveryDate (ibt-072) / InvoicePeriod (ibg-14) as the evaluation date

document_typestring

qualified_invoice (default) | simplified_qualified_invoice | return_invoice (適格返還請求書 — a negative JP PINT Invoice 380; the original supply date comes only from ?transaction_date=) — as claimed by the caller; ignored, with a note, for a JP BIS Invoice for Non-tax Registered Businesses document (document_type is derived as non_tax_invoice)

Headers

X-API-Keystring

Response

One document's register facts, document checks, published schedule tier and limitations — every rule with a status and a source; never a verdict. Two real responses on the sample register: a registered issuer, and a malformed 登録番号 reported as a finding whose register record is invalid with every key present (null) and the printed text never echoed.

unknown required

Changes

No recorded changes to this operation across all 1 revision of this API.