Skip to main content

Suppliers

Suppliers represent the organisations to which you allocate spend within Procurement Scorecards. All interactions with the Supplier API use your own vendor codes as the primary identifier. You will use these codes when creating, updating, retrieving, and deleting suppliers, as well as when loading procurement data.


Endpoints

MethodPathPurpose
GET/api/v1/suppliers/heartbeatConfirm API availability and authentication
GET/api/v1/suppliers/{vendor_code}Retrieve a supplier by vendor code
POST/api/v1/suppliersCreate a new supplier
PUT/api/v1/suppliers/{vendor_code}Update an existing supplier
DELETE/api/v1/suppliers/{vendor_code}Delete a supplier
Authentication

Include the following headers on every request:

  • Authorization: HMAC <signature>
  • X-Api-Key: <your account key>
  • Accept: application/json

See Authentication.


Attributes

Below is the full list of supported supplier fields. Unless stated otherwise, all fields are optional.

FieldTypeRequiredDescription
trading_namestringyesSupplier's trading name.
vendor_codestringyesYour internal supplier identifier. Must be unique.
vat_numberstringconditionalVAT number. Required when the account enforces compulsory VAT numbers and the supplier is not VAT exempt.
excludedbooleannoWhether the supplier is excluded from B-BBEE procurement.
excluded_reasonstringconditionalReason for exclusion. Required when exclusion is enabled for the supplier.
intragroupbooleannoWhether the supplier is part of your group.
intragroup_account_namestringconditionalInternal intragroup account name. Required when intragroup is true.
date_of_first_procurementstringnoFirst recorded procurement date (DD/MM/YYYY).
contract_start_datestringnoContract start date (DD/MM/YYYY).
contract_end_datestringnoContract end date (DD/MM/YYYY).
supplier_development_recipientbooleannoWhether the supplier receives Supplier Development support.
registered_namestringnoRegistered legal name.
registration_numberstringnoCompany registration number.
telephonestringnoSupplier telephone number.
emailstringnoSupplier email address.
postal_addressstringnoPostal address.
cost_centrestringnoCost centre reference.
prioritystringnoPriority level (if applicable).
custom_1stringnoCustom field 1.
custom_2stringnoCustom field 2.
custom_3stringnoCustom field 3.
custom_4stringnoCustom field 4.
property_service_providerbooleannoWhether this is a property service provider.
_disabled_participationbooleannoIndicates >5% disabled ownership participation.
living_with_disabilitybooleannoWhether the supplier is living with a disability.
stockbrokerbooleannoWhether the supplier is a stockbroker.
fund_managerbooleannoWhether the supplier is a fund manager.
intermediarybooleannoWhether the supplier is an intermediary.

System Fields (Response Only)

FieldTypeDescription
vat_exemptstringVAT exemption status.
greater_than_5_percent_disabled_participationstringDisabled participation flag.
created_atstringCreation timestamp (DD/MM/YYYY HH:MM:SS).
updated_atstringLast update timestamp (DD/MM/YYYY HH:MM:SS).

Notes

  • Dates must be formatted as DD/MM/YYYY.
  • vendor_code must be unique and is required for creation, updates, and lookups.
  • Boolean fields must be sent as JSON booleans (true / false).

Retrieve a supplier

Retrieve a single supplier by vendor code.

GET /api/v1/suppliers/{vendor_code}

Path parameters

NameTypeRequiredDescription
vendor_codestringyesThe supplier's vendor code.

Code examples

curl -X GET "https://www.suppliermanagement.co.za/api/v1/suppliers/af001" \
-H "Accept: application/json" \
-H "X-Api-Key: <your account key>" \
-H "Authorization: HMAC <your signature>"

Response

{
"trading_name": "African Reinforcing Construction",
"vendor_code": "af001",
"vat_number": "4312345678",
"vat_exempt": "false",
"excluded": "false",
"excluded_reason": "",
"intragroup": "false",
"intragroup_account_name": "",
"date_of_first_procurement": "",
"contract_start_date": "",
"contract_end_date": "",
"supplier_development_recipient": "false",
"registered_name": "",
"registration_number": "",
"telephone": "",
"email": "",
"postal_address": "",
"cost_centre": "",
"priority": "",
"custom_1": "",
"custom_2": "",
"custom_3": "",
"custom_4": "",
"property_service_provider": "false",
"greater_than_5_percent_disabled_participation": "false",
"living_with_disability": "false",
"stockbroker": "false",
"fund_manager": "false",
"intermediary": "false",
"created_at": "18/05/2022 11:14:34",
"updated_at": "18/05/2022 11:23:17"
}

Create a supplier

Create a new supplier.

POST /api/v1/suppliers

Request body

Send a JSON object with a supplier key:

{
"supplier": {
"trading_name": "New Supplier",
"vendor_code": "NS001"
}
}

Code examples

curl -X POST "https://www.suppliermanagement.co.za/api/v1/suppliers" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Api-Key: <your account key>" \
-H "Authorization: HMAC <your signature>" \
-d '{
"supplier": {
"trading_name": "New Supplier",
"vendor_code": "NS001"
}
}'

Response

{
"trading_name": "New Supplier",
"vendor_code": "NS001",
"vat_number": "",
"vat_exempt": "false",
"excluded": "false",
"excluded_reason": "",
"intragroup": "false",
"intragroup_account_name": "",
"date_of_first_procurement": "",
"contract_start_date": "",
"contract_end_date": "",
"supplier_development_recipient": "false",
"registered_name": "",
"registration_number": "",
"telephone": "",
"email": "",
"postal_address": "",
"cost_centre": "",
"priority": "",
"custom_1": "",
"custom_2": "",
"custom_3": "",
"custom_4": "",
"property_service_provider": "false",
"greater_than_5_percent_disabled_participation": "false",
"living_with_disability": "false",
"stockbroker": "false",
"fund_manager": "false",
"intermediary": "false",
"created_at": "16/02/2026 08:08:12",
"updated_at": "16/02/2026 08:08:12"
}

Update a supplier

Update an existing supplier by vendor code.

PUT /api/v1/suppliers/{vendor_code}

Path parameters

NameTypeRequiredDescription
vendor_codestringyesThe supplier's vendor code.

Request body

Send a JSON object with a supplier key containing only the fields to update:

{
"supplier": {
"trading_name": "Updated Supplier Name"
}
}

Code examples

curl -X PUT "https://www.suppliermanagement.co.za/api/v1/suppliers/NS001" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Api-Key: <your account key>" \
-H "Authorization: HMAC <your signature>" \
-d '{
"supplier": {
"trading_name": "Updated Supplier Name"
}
}'

Response

Returns the updated supplier record.


Delete a supplier

Delete a supplier by vendor code.

DELETE /api/v1/suppliers/{vendor_code}

Path parameters

NameTypeRequiredDescription
vendor_codestringyesThe supplier's vendor code.

Code examples

curl -X DELETE "https://www.suppliermanagement.co.za/api/v1/suppliers/NS001" \
-H "Accept: application/json" \
-H "X-Api-Key: <your account key>" \
-H "Authorization: HMAC <your signature>"

Response

Returns 204 No Content on success.