Complete Webhook Payload Example
Use this when you need a full sample of the JSON B1Link POSTs to your webhook. Copy it to validate your parser or to build test fixtures.
Full payload (all categories)
{
"onboardingRequestErpEventId": "550e8400-e29b-41d4-a716-446655440000",
"clientCompanyId": 123,
"supplierCompanyId": 456,
"workflowInstanceId": "660e8400-e29b-41d4-a716-446655440001",
"data": [
{
"category": "OnboardingRequestDetails",
"dataJson": {
"companyId": 123,
"supplierCompanyId": 456,
"supplierCompanyName": "ABC Manufacturing (Pty) Ltd",
"emailAddress": "contact@abcmfg.co.za",
"applicationManager": "John Doe",
"restrictions": null,
"motivationToOnboardReason": "Strategic supplier for manufacturing operations",
"createdDate": "2024-01-15T09:00:00Z",
"updatedDate": null,
"businessType": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Manufacturing"
},
"businessUnit": {
"id": "660e8400-e29b-41d4-a716-446655440001",
"name": "Production"
},
"contractingTier": {
"id": "770e8400-e29b-41d4-a716-446655440002",
"name": "Tier 1"
},
"paymentTerms": {
"id": "880e8400-e29b-41d4-a716-446655440003",
"name": "Net 30"
},
"supplierType": {
"id": "990e8400-e29b-41d4-a716-446655440004",
"name": "Standard Supplier",
"requiredDocuments": [
{
"name": "Certificate of Incorporation"
}
]
},
"selectedSpendSubCategories": [
{
"id": "aa0e8400-e29b-41d4-a716-446655440005",
"name": "Raw Materials"
}
]
},
"success": true,
"errorMessage": null
},
{
"category": "CompanyDetails",
"dataJson": {
"companyId": 456,
"retrievedAt": "2024-01-15T10:00:00Z",
"requirements": {
"requiresBankDetails": true,
"requiresCoidaInfo": true,
"requiresTaxPinInfo": true,
"requiresShareholderDetails": true,
"requiresTradeReferences": true,
"requiresNumberOfEmployees": false,
"requiresRoyalBafokengResidentInfo": false
},
"coreCompanyInfo": {
"registeredCompanyName": "ABC Manufacturing (Pty) Ltd",
"companyRegistrationNumber": "2024/123456/07",
"companyType": "Private Company",
"tradingName": "ABC Manufacturing",
"holdingCompanyName": "ABC Holdings Ltd",
"financialYearEndMonthId": 12,
"financialYearEndMonthName": "December"
},
"contactDetails": [
{
"fullNameSurname": "John Smith",
"emailAddress": "john.smith@abcmfg.co.za",
"contactNumber": "+27123456789"
}
],
"addressInfo": {
"physicalAddress": {
"streetAddressLine1": "123 Industrial Street",
"streetAddressLine2": "Building A",
"officeBlockComplexName": "ABC Business Park",
"unitNumber": "Unit 5",
"cityTown": "Johannesburg",
"country": "South Africa",
"provinceState": "Gauteng",
"postalCode": "2000",
"municipality": "City of Johannesburg"
},
"postalAddress": {
"streetAddressLine1": "PO Box 12345",
"cityTown": "Johannesburg",
"country": "South Africa",
"provinceState": "Gauteng",
"postalCode": "2000",
"municipality": "City of Johannesburg"
},
"geographicalLocations": ["Gauteng", "Western Cape"]
},
"bankDetails": {
"bankAccounts": [
{
"id": 789,
"accountNumber": "1234567890",
"accountName": "ABC Manufacturing (Pty) Ltd",
"swiftCode": "FIRNZAJJ",
"branchCode": "250655",
"bankName": "First National Bank",
"accountType": "Current Account",
"bankId": 1,
"bankAccountTypeId": 1,
"isPrimaryBankAccount": true
}
],
"count": 1
},
"coidaInfo": {
"isRegisteredForCoida": true,
"coidaDetails": {
"id": 101,
"cfRegistrationNumber": "CF123456",
"certificateNumber": "COIDA-2024-001",
"issueDate": "2024-01-01T00:00:00Z",
"expiryDate": "2025-01-01T00:00:00Z"
},
"message": "COIDA information retrieved successfully"
},
"shareholderDetails": {
"shareholders": [
{
"id": 201,
"shareholderType": "Individual",
"shareholderName": "John Smith",
"registrationNumber": "8001015800088",
"sharePercentage": 60.0,
"contactNumber": "+27123456789",
"title": "Mr"
}
],
"count": 1,
"totalSharePercentage": 100.0
},
"taxPinInfo": {
"isRegisteredForTax": true,
"taxClearancePin": "1234567890123",
"taxClearancePinIssueDate": "2024-01-01T00:00:00Z",
"taxClearancePinExpiryDate": "2025-01-01T00:00:00Z",
"isRegisteredForVat": true,
"vatNumber": "4123456789",
"vatRegistrationDate": "2020-01-15T00:00:00Z"
},
"tradeReferences": {
"references": [
{
"id": 301,
"dateCreated": "2023-06-01T00:00:00Z",
"companyId": 456,
"tradeReferenceName": "XYZ Corporation",
"contactName": "Bob Johnson",
"contactNumber": "+27111222333",
"contactEmail": "bob.johnson@xyzcorp.co.za",
"typeOfServiceProvided": "Manufacturing Services"
}
],
"count": 1,
"message": "Retrieved 1 trade references"
}
},
"success": true,
"errorMessage": null
},
{
"category": "BbbeeInfo",
"dataJson": {
"companyId": 456,
"hasBbbeeCertificate": true,
"isCurrentCertificate": true,
"certificateValidationDate": "2024-01-15T10:00:00Z",
"blackWomenOwnershipPercentage": 30.0,
"blackOwnershipPercentage": 51.5,
"bbbeeCertificateExpiryDate": "2025-12-31T23:59:59Z",
"bbbeeCertificateValidationStatus": true,
"bbbeeCertificateDocumentId": "d1d2d3d4-d5d6-4d7d-8d9d-0d1d2d3d4d5d6",
"valueAddingSupplier": false,
"isLocalServiceProvider": true,
"isLocalGoodsManufacturer": false,
"blackOwnedStatus": 1,
"blackWomenOwnedStatus": 1,
"flowThroughPrincipleApplied": false,
"blackDesignatedGroupPercentage": 15.5,
"blackYouthPercentage": 10.0,
"blackDisabledPercentage": 5.0,
"blackUnemployedPercentage": 8.0,
"isEmpoweringSupplier": true,
"blackRuralPercentage": 12.0,
"blackMilitaryVeteransPercentage": 3.0,
"farmWorkersPercentage": 2.0,
"legacyDesignatedGroupApplied": false,
"bbbeeCertificateIssueDate": "2024-01-01T00:00:00Z",
"bbbeeCertificateNumber": "BEE-2024-001234",
"bbbeeLevel": "Level 2",
"bbbeeSector": "Generic",
"annualTurnoverRange": "R50M - R100M"
},
"success": true,
"errorMessage": null
},
{
"category": "Documents",
"dataJson": {
"documents": [
{
"documentTypeId": 1,
"documentTypeName": "Certificate of Incorporation or ID",
"isUploaded": true,
"dateUploaded": "2024-01-15T09:00:00Z",
"documentId": "d1d2d3d4-d5d6-4d7d-8d9d-0d1d2d3d4d5d6",
"fileName": "certificate_of_incorporation.pdf",
"isDeleted": false
},
{
"documentTypeId": 9,
"documentTypeName": "B-BBEE Certificate/Affidavit",
"isUploaded": true,
"dateUploaded": "2024-01-15T09:15:00Z",
"documentId": "d2d3d4d5-d6d7-4d8d-9d0d-1d2d3d4d5d6d7",
"fileName": "bbbee_certificate.pdf",
"isDeleted": false
},
{
"documentTypeId": 8,
"documentTypeName": "VAT Certificate",
"isUploaded": true,
"dateUploaded": "2024-01-15T09:30:00Z",
"documentId": "d3d4d5d6-d7d8-4d9d-0d1d-2d3d4d5d6d7d8",
"fileName": "vat_certificate.pdf",
"isDeleted": false
},
{
"documentTypeId": 5,
"documentTypeName": "Proof of Banking",
"isUploaded": true,
"dateUploaded": "2024-01-15T09:45:00Z",
"documentId": "d4d5d6d7-d8d9-4d0d-1d2d-3d4d5d6d7d8d9",
"fileName": "bank_confirmation.pdf",
"isDeleted": false
},
{
"documentTypeId": 2,
"documentTypeName": "Proof of Address",
"isUploaded": false,
"dateUploaded": null,
"documentId": null,
"fileName": null,
"isDeleted": false
}
]
},
"success": true,
"errorMessage": null
}
]
}
What to take from it
- Callback body — Use
onboardingRequestErpEventIdasIdwhen you call the vendor-number endpoint. - Categories —
data[]hascategory,dataJson,success,errorMessage. Not every category is present every time; structure is camelCase.
Next steps
- Payload overview — Field list and categories.
- Send vendor number back — Callback API.