BodyliaBodylia OpenB2BSign in

Standard 2.0 · event-driven

Message standard & test lab

42 messages in one signed event envelope, 55 shared code lists (1,322 values), numbered business rules and 36 end-to-end scenarios, from a simple order to recalls, re-exports and failed deliveries. Read the implementation guides.

Event envelope (CloudEvents-style)

Every message travels in this envelope. Delivery is at-least-once, ordered per sender + subject, signed with HMAC-SHA256 and acknowledged synchronously.

FieldTypeReqDescriptionCode list / formatEDI / GS1 / SAP mapping
specversionstringyesNutraB2B spec version. Must be 2.0.
x12: GS08 version
edifact: UNH S009 version/release
idstringyesGlobally unique event id (UUID v4/v7 or ULID). Never reused.
x12: ST02 control number
edifact: UNH 0062 message ref
typestringyesEvent type: nutrab2b.<family>.<event>.v2^nutrab2b\.[a-z_]+\.[a-z_]+\.v2$
x12: ST01 transaction set id
edifact: UNH S009 message type
sourcestringyesURI of the sending system
subjectstringyesBusiness key the event is about (PO number, lot, SSCC…). Ordering is guaranteed per subject.
timedatetimeyesWhen the business event happened (RFC 3339 with offset)
x12: GS04/GS05
edifact: UNB 0017/0019
datacontenttypestringAlways application/json
dataschemastringURI of the JSON Schema for data
senderobjectyesWho sends the event
glnstringyesGS1 Global Location Number of the legal party^\d{13}$
x12: ISA06/ISA08 + N104 (qualifier UL)
edifact: UNB 0004/0010, NAD C082 (agency 9)
gs1: sender/receiver Identifier Authority=GS1
leistringISO 17442 Legal Entity Identifier^[A-Z0-9]{18}\d{2}$
dunsstringD-U-N-S number^\d{9}$
namestringLegal name (informational)
receiverobjectyesWho must process the event
glnstringyesGS1 Global Location Number of the legal party^\d{13}$
x12: ISA06/ISA08 + N104 (qualifier UL)
edifact: UNB 0004/0010, NAD C082 (agency 9)
gs1: sender/receiver Identifier Authority=GS1
leistringISO 17442 Legal Entity Identifier^[A-Z0-9]{18}\d{2}$
dunsstringD-U-N-S number^\d{9}$
namestringLegal name (informational)
correlationidstringyesShared by every event in one business conversation (RFQ → … → remittance)
causationidstringid of the event that caused this one (e.g. PO response → PO)
idempotencykeystringyesReceiver processes each key once; re-sends return the first acknowledgement
sequenceintegeryesMonotonic per sender + subject, starting at 1. Gaps are parked until filled.
envstringyestest or prod
signatureobjectOptional detached signature. Webhooks additionally carry X-NB2B-Signature (HMAC).
algstringyesJWS algorithm (ES256, EdDSA, RS256) or HMAC-SHA256
kidstringyesKey id published in the sender's JWKS
valuestringyesDetached JWS over the canonical body (RFC 7515 Appendix F)
attachmentsarray<object>Large documents travel by reference, never inline
doc_typestringyesKind of document
uristringyesHTTPS or object-store URI; signed URLs valid ≥ 7 days
sha256stringyesHex SHA-256 of the file^[a-f0-9]{64}$
media_typestringe.g. application/pdf
Max event
1 MB
Max batch
10 MB
Signature window
300 s
Retries then DLQ
7 attempts