curl --request POST \
--url https://sandbox-api.terabusinessfinance.com/v1/supplier-submissions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"external_reference": "<string>",
"level": "application",
"first_name": "<string>",
"last_name": "<string>",
"email": "<string>",
"telephone": "<string>",
"business_name": "<string>",
"funding_amount": 5000500,
"privacy_information": {
"provided": true,
"wording_version": "<string>",
"captured_at": "2023-11-07T05:31:56Z"
},
"contact_expectation": {
"permission_stated": true,
"channels": [],
"wording_version": "<string>",
"captured_at": "2023-11-07T05:31:56Z"
},
"marketing": true,
"capture_timestamp": "2023-11-07T05:31:56Z",
"attribution": {
"source": "<string>",
"campaign": "<string>",
"lead_category": "<string>"
}
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
external_reference: '<string>',
level: 'application',
first_name: '<string>',
last_name: '<string>',
email: '<string>',
telephone: '<string>',
business_name: '<string>',
funding_amount: 5000500,
privacy_information: {
provided: true,
wording_version: '<string>',
captured_at: '2023-11-07T05:31:56Z'
},
contact_expectation: {
permission_stated: true,
channels: [],
wording_version: '<string>',
captured_at: '2023-11-07T05:31:56Z'
},
marketing: true,
capture_timestamp: '2023-11-07T05:31:56Z',
attribution: {source: '<string>', campaign: '<string>', lead_category: '<string>'}
})
};
fetch('https://sandbox-api.terabusinessfinance.com/v1/supplier-submissions', 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"
payload = {
"external_reference": "<string>",
"level": "application",
"first_name": "<string>",
"last_name": "<string>",
"email": "<string>",
"telephone": "<string>",
"business_name": "<string>",
"funding_amount": 5000500,
"privacy_information": {
"provided": True,
"wording_version": "<string>",
"captured_at": "2023-11-07T05:31:56Z"
},
"contact_expectation": {
"permission_stated": True,
"channels": [],
"wording_version": "<string>",
"captured_at": "2023-11-07T05:31:56Z"
},
"marketing": True,
"capture_timestamp": "2023-11-07T05:31:56Z",
"attribution": {
"source": "<string>",
"campaign": "<string>",
"lead_category": "<string>"
}
}
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": "application",
"status": "accepted",
"received_at": "2026-08-29T09:00:00.000Z",
"decided_at": "2026-08-29T09:12:00.000Z",
"application_reference": "TBF-ABCDEF12",
"application_created_at": "2026-08-29T11:05:00.000Z",
"billing": {
"billing_status": "not_billable",
"billable_at": null,
"billing_model": "accepted_submission",
"not_billable_reason": "sandbox"
}
}Create a submission
Send a customer’s enquiry to Tera. After commercial acceptance, Tera creates one Application and runs Pre-Underwriting. Status changes arrive by webhook.
curl --request POST \
--url https://sandbox-api.terabusinessfinance.com/v1/supplier-submissions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"external_reference": "<string>",
"level": "application",
"first_name": "<string>",
"last_name": "<string>",
"email": "<string>",
"telephone": "<string>",
"business_name": "<string>",
"funding_amount": 5000500,
"privacy_information": {
"provided": true,
"wording_version": "<string>",
"captured_at": "2023-11-07T05:31:56Z"
},
"contact_expectation": {
"permission_stated": true,
"channels": [],
"wording_version": "<string>",
"captured_at": "2023-11-07T05:31:56Z"
},
"marketing": true,
"capture_timestamp": "2023-11-07T05:31:56Z",
"attribution": {
"source": "<string>",
"campaign": "<string>",
"lead_category": "<string>"
}
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
external_reference: '<string>',
level: 'application',
first_name: '<string>',
last_name: '<string>',
email: '<string>',
telephone: '<string>',
business_name: '<string>',
funding_amount: 5000500,
privacy_information: {
provided: true,
wording_version: '<string>',
captured_at: '2023-11-07T05:31:56Z'
},
contact_expectation: {
permission_stated: true,
channels: [],
wording_version: '<string>',
captured_at: '2023-11-07T05:31:56Z'
},
marketing: true,
capture_timestamp: '2023-11-07T05:31:56Z',
attribution: {source: '<string>', campaign: '<string>', lead_category: '<string>'}
})
};
fetch('https://sandbox-api.terabusinessfinance.com/v1/supplier-submissions', 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"
payload = {
"external_reference": "<string>",
"level": "application",
"first_name": "<string>",
"last_name": "<string>",
"email": "<string>",
"telephone": "<string>",
"business_name": "<string>",
"funding_amount": 5000500,
"privacy_information": {
"provided": True,
"wording_version": "<string>",
"captured_at": "2023-11-07T05:31:56Z"
},
"contact_expectation": {
"permission_stated": True,
"channels": [],
"wording_version": "<string>",
"captured_at": "2023-11-07T05:31:56Z"
},
"marketing": True,
"capture_timestamp": "2023-11-07T05:31:56Z",
"attribution": {
"source": "<string>",
"campaign": "<string>",
"lead_category": "<string>"
}
}
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": "application",
"status": "accepted",
"received_at": "2026-08-29T09:00:00.000Z",
"decided_at": "2026-08-29T09:12:00.000Z",
"application_reference": "TBF-ABCDEF12",
"application_created_at": "2026-08-29T11:05:00.000Z",
"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.
1 - 128Body
1 - 128"application"1 - 1001 - 1001 - 3201 - 202 - 200limited-company, llp, partnership, sole-trader, other construction, transport, manufacturing, motor-trade, retail-wholesale, hospitality, professional-services, healthcare, agriculture, beauty-wellness, facilities, technology-media, education, other less-than-1, 1-2-years, 2-5-years, 5-plus-years 1000 <= x <= 10000000working-capital, equipment, stock, vehicles, property, tax-vat, acquisition, refinance, other asap, within-1-month, within-3-months, planning-ahead email, phone, either Show child attributes
Show child attributes
Show child attributes
Show child attributes
^(?:(?:\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
x <= 1000000000under-100k, 100k-250k, 250k-500k, 500k-1m, 1m-5m, over-5m ^(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$Show child attributes
Show child attributes
^\d{4}-(0[1-9]|1[0-2])$1 - 2001 - 20Show child attributes
Show child attributes
Show child attributes
Show child attributes
Response
Current supplier-visible object. Used for identical create replay and GET.
sandbox, production ^([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)$1 - 128basic, application received, accepted, duplicate_not_accepted, rejected, returned ^(?:(?:\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))$^(?:(?:\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))$^(?:(?:\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
Show child attributes
Show child attributes
Show child attributes
Show child attributes
