Self-billing invoice
nutrab2b.finance.self_billed.v2 · Finance
- Purpose
- Buyer issues the invoice on the supplier's behalf from receipts (consignment, toll).
- When to send
- Consumption or receipt.
- Sender → receiver
- Buyer → Supplier
- Expected responses
- ACK
- Equivalent standards
- EDIFACT: INVOIC (389) · SAP: ERS (MRRL)
- Scenarios using it
- -
Fields and mappings
| Field | Type | Req | Description | Code list / format | EDI / GS1 / SAP mapping |
|---|---|---|---|---|---|
| invoice_number | string | yes | Self-billed number | ||
| receipt_id | string | yes | Receipt basis | ||
| currency | string | yes | Currency | currency | |
| lines | array<object> | yes | Lines | ||
| line_no | integer | yes | Line | ||
| item_id | string | yes | Item | ||
| quantity | object | yes | Quantity | ||
| value | number | yes | Quantity | ||
| uom | string | yes | Unit of measure | uom | |
| unit_price | number | yes | Price | ||
| line_amount | number | yes | Amount | ||
| tax_total | number | yes | Tax | ||
| total | number | yes | TotalNB-R001 |
Business rules
- NB-R001 Totals mismatch, line totals, tax and charges do not add up to document total.
- NB-R011 Currency precision, amount has more decimals than the currency's ISO 4217 minor units.
Example
{
"specversion": "2.0",
"id": "evt-self_billing-SB-44-1",
"type": "nutrab2b.finance.self_billed.v2",
"source": "urn:gln:0614141000012:erp",
"subject": "SB-44",
"time": "2026-11-02T09:00:00Z",
"datacontenttype": "application/json",
"dataschema": "https://nutrab2b.org/schemas/2.0/SELF_BILLING.json",
"sender": {
"gln": "0614141000012"
},
"receiver": {
"gln": "4012345000009"
},
"correlationid": "CONV-RFQ-1001",
"idempotencykey": "SELF_BILLING:SB-44:1",
"sequence": 1,
"env": "test",
"data": {
"invoice_number": "SB-44",
"receipt_id": "GR-3301",
"currency": "USD",
"lines": [
{
"line_no": 1,
"item_id": "ASH-KSM-5",
"quantity": {
"value": 100,
"uom": "KGM"
},
"unit_price": 56,
"line_amount": 5600
}
],
"tax_total": 0,
"total": 5600
}
}Mapping checklist
- Every required field populated from your system of record
- Coded fields mapped to the Bodylia OpenB2B code lists
- GLN, GTIN and SSCC check digits validated
- Rules above pass in the validator
- Idempotency key and per-subject sequence generated
- Expected responses, including rejections, handled
