Sending
Validate
Check a UBL document against the Oman rule set without sending it.
Runs the full Oman rule set against a UBL document without sending anything. Free of rate-limit cost against your send quota, and safe to call as often as you like — use it in your test suite or as a pre-flight check in CI before going live.
POST
synchronous/v1/api/documents/validate| Field | Type | Description | |
|---|---|---|---|
| document | string | required | The UBL XML as a JSON string |
| profile | string | optional | Assert which profile you expect. If it disagrees with the document you get 400 PROFILE_MISMATCH — useful for catching a generator emitting the wrong CustomizationID |
Response fields
| Field | Type | Description | |
|---|---|---|---|
| valid | boolean | — | true when there are no errors. Warnings don't make a document invalid |
| profile | string | — | Which rule set was resolved from the document |
| issues[].severity | enum | — | error blocks sending · warning doesn't · info is advisory |
| issues[].code | string | — | The Oman rule identifier, e.g. IBR-019-OM. Quotable against the published rule text |
| issues[].location | string | — | XPath to the element at fault |
A 200 means the document was checked, not that it passed — read valid. Failing this returns the
same SCHEMATRON_INVALID issue shape as Create an invoice's 422
response, so the same handling code works for both.