Correct working contact fields on a basic submission
curl --request POST \
--url https://sandbox-api.terabusinessfinance.com/v1/supplier-submissions/{submission_id}/contact-corrections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"operation_idempotency_key": "<string>",
"expected_revision": 4503599627370495
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({operation_idempotency_key: '<string>', expected_revision: 4503599627370495})
};
fetch('https://sandbox-api.terabusinessfinance.com/v1/supplier-submissions/{submission_id}/contact-corrections', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sandbox-api.terabusinessfinance.com/v1/supplier-submissions/{submission_id}/contact-corrections"
payload = {
"operation_idempotency_key": "<string>",
"expected_revision": 4503599627370495
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"environment": "sandbox",
"submission_id": "11111111-1111-4111-8111-111111111111",
"external_reference": "northbridge-enq-1001",
"level": "basic",
"status": "accepted",
"received_at": "2026-08-29T09:00:00.000Z",
"decided_at": "2026-08-29T09:12:00.000Z",
"application_reference": null,
"application_created_at": null,
"billing": {
"billing_status": "not_billable",
"billable_at": null,
"billing_model": "accepted_submission",
"not_billable_reason": "sandbox"
}
}Corrections
Correct working contact fields on a basic submission
POST
/
v1
/
supplier-submissions
/
{submission_id}
/
contact-corrections
Correct working contact fields on a basic submission
curl --request POST \
--url https://sandbox-api.terabusinessfinance.com/v1/supplier-submissions/{submission_id}/contact-corrections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"operation_idempotency_key": "<string>",
"expected_revision": 4503599627370495
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({operation_idempotency_key: '<string>', expected_revision: 4503599627370495})
};
fetch('https://sandbox-api.terabusinessfinance.com/v1/supplier-submissions/{submission_id}/contact-corrections', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sandbox-api.terabusinessfinance.com/v1/supplier-submissions/{submission_id}/contact-corrections"
payload = {
"operation_idempotency_key": "<string>",
"expected_revision": 4503599627370495
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"environment": "sandbox",
"submission_id": "11111111-1111-4111-8111-111111111111",
"external_reference": "northbridge-enq-1001",
"level": "basic",
"status": "accepted",
"received_at": "2026-08-29T09:00:00.000Z",
"decided_at": "2026-08-29T09:12:00.000Z",
"application_reference": null,
"application_created_at": null,
"billing": {
"billing_status": "not_billable",
"billable_at": null,
"billing_model": "accepted_submission",
"not_billable_reason": "sandbox"
}
}Authorizations
Canonical form uses underscore only: tcs_test_<public_id> or tcs_live<public_id>_. Scopes: supplier_submissions:create:basic, supplier_submissions:create:application, supplier_submissions:read, supplier_submissions:correct, supplier_submissions:promote. Effective permission is account ∩ credential ∩ environment. HMAC pepper is SUPPLIER_API_KEY_PEPPER.
Headers
Optional caller correlation id. Tera always returns X-Request-Id; that header is the only correlation identifier.
Required string length:
1 - 128Path Parameters
Body
application/json
Required string length:
8 - 128Required range:
0 <= x <= 9007199254740991Required string length:
1 - 100Required string length:
1 - 100Required string length:
1 - 20Required string length:
1 - 320Available options:
email, phone, either Response
Current supplier-visible object. Used for identical create replay and GET.
Available options:
sandbox, production Pattern:
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Required string length:
1 - 128Available options:
basic, application Available options:
received, accepted, duplicate_not_accepted, rejected Pattern:
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$Pattern:
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$Pattern:
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$Show child attributes
Show child attributes
