Supplier Update Webhook
Use this when an already-onboarded supplier has a change approved, for example an updated bank account or a changed B-BBEE certificate. This is a separate webhook from onboarding. It has its own trigger, its own payload shape, and no callback step.
The categories keys are changing to PascalCase. For example Bank Details becomes BankDetails, BBBEE becomes Bbbee, and Tax PIN & VAT Details becomes TaxPinAndVatDetails. This is a hard cutover with no dual-emit period: once it ships, a receiver still matching an old key will not error. It iterates the map as this page instructs, finds no key it recognises, and silently skips the update. Update your key matching before the cutover.
| Old key | New key |
|---|---|
Bank Details | BankDetails |
Tax Clearance | TaxClearance |
Tax PIN & VAT Details | TaxPinAndVatDetails |
COIDA | Coida |
BBBEE | Bbbee |
Company Details | CompanyDetails |
Contact Details | ContactDetails |
Documents | Documents (unchanged) |
Confirm the effective release with your B1Link administrator.
When it fires
B1Link sends this webhook when an approved change to an already-onboarded supplier crosses its approval threshold.
One category per delivery
Approval happens per category, and each approval dispatches its own delivery with its own correlationId. So if a supplier changes their bank details and their contact details, and both are approved, you receive two separate POSTs: one carrying BankDetails and one carrying ContactDetails, not a single POST containing both.
Write your receiver to loop over categories anyway. The field is a map, and the delivery contract allows more than one entry even though today exactly one is populated. A receiver that reads "the single key" will break if that ever changes; a receiver that iterates the map handles both cases and costs nothing extra:
for (const [category, snapshot] of Object.entries(payload.categories)) {
// handle the categories you support, log and skip the rest
}
Treat an unrecognised category key as something to log and skip rather than an error, so a category added in future does not break your receiver.