Create a Supplier Submission on the delivery contract. A valid basic body mints an Application after commercial acceptance and does not wait for promotion.
curl --request POST \
--url https://sandbox-api.terabusinessfinance.com/v2/supplier-submissions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"external_reference": "<string>",
"level": "basic",
"first_name": "<string>",
"last_name": "<string>",
"telephone": "<string>",
"business_name": "<string>",
"funding_amount": 5000500,
"contact_expectation": {
"permission_stated": true,
"channels": [],
"wording_version": "<string>",
"captured_at": "2023-11-07T05:31:56Z"
},
"capture_timestamp": "2023-11-07T05:31:56Z",
"attribution": {
"source": "<string>",
"campaign": "<string>",
"lead_category": "<string>"
},
"email": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
external_reference: '<string>',
level: 'basic',
first_name: '<string>',
last_name: '<string>',
telephone: '<string>',
business_name: '<string>',
funding_amount: 5000500,
contact_expectation: {
permission_stated: true,
channels: [],
wording_version: '<string>',
captured_at: '2023-11-07T05:31:56Z'
},
capture_timestamp: '2023-11-07T05:31:56Z',
attribution: {source: '<string>', campaign: '<string>', lead_category: '<string>'},
email: '<string>'
})
};
fetch('https://sandbox-api.terabusinessfinance.com/v2/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/v2/supplier-submissions"
payload = {
"external_reference": "<string>",
"level": "basic",
"first_name": "<string>",
"last_name": "<string>",
"telephone": "<string>",
"business_name": "<string>",
"funding_amount": 5000500,
"contact_expectation": {
"permission_stated": True,
"channels": [],
"wording_version": "<string>",
"captured_at": "2023-11-07T05:31:56Z"
},
"capture_timestamp": "2023-11-07T05:31:56Z",
"attribution": {
"source": "<string>",
"campaign": "<string>",
"lead_category": "<string>"
},
"email": "<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": "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"
}
}
Submissions
Create a Supplier Submission on the delivery contract. A valid basic body mints an Application after commercial acceptance and does not wait for promotion.
POST
/
v2
/
supplier-submissions
Create a Supplier Submission on the delivery contract. A valid basic body mints an Application after commercial acceptance and does not wait for promotion.
curl --request POST \
--url https://sandbox-api.terabusinessfinance.com/v2/supplier-submissions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"external_reference": "<string>",
"level": "basic",
"first_name": "<string>",
"last_name": "<string>",
"telephone": "<string>",
"business_name": "<string>",
"funding_amount": 5000500,
"contact_expectation": {
"permission_stated": true,
"channels": [],
"wording_version": "<string>",
"captured_at": "2023-11-07T05:31:56Z"
},
"capture_timestamp": "2023-11-07T05:31:56Z",
"attribution": {
"source": "<string>",
"campaign": "<string>",
"lead_category": "<string>"
},
"email": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
external_reference: '<string>',
level: 'basic',
first_name: '<string>',
last_name: '<string>',
telephone: '<string>',
business_name: '<string>',
funding_amount: 5000500,
contact_expectation: {
permission_stated: true,
channels: [],
wording_version: '<string>',
captured_at: '2023-11-07T05:31:56Z'
},
capture_timestamp: '2023-11-07T05:31:56Z',
attribution: {source: '<string>', campaign: '<string>', lead_category: '<string>'},
email: '<string>'
})
};
fetch('https://sandbox-api.terabusinessfinance.com/v2/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/v2/supplier-submissions"
payload = {
"external_reference": "<string>",
"level": "basic",
"first_name": "<string>",
"last_name": "<string>",
"telephone": "<string>",
"business_name": "<string>",
"funding_amount": 5000500,
"contact_expectation": {
"permission_stated": True,
"channels": [],
"wording_version": "<string>",
"captured_at": "2023-11-07T05:31:56Z"
},
"capture_timestamp": "2023-11-07T05:31:56Z",
"attribution": {
"source": "<string>",
"campaign": "<string>",
"lead_category": "<string>"
},
"email": "<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": "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 - 128Body
application/json
- Option 1
- Option 2
Required string length:
1 - 128Allowed value:
"basic"Required string length:
1 - 100Required string length:
1 - 100Required string length:
1 - 20Required string length:
2 - 200Required range:
1000 <= x <= 10000000Available options:
working-capital, equipment, stock, vehicles, property, tax-vat, acquisition, refinance, other Show child attributes
Show child attributes
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
Required string length:
1 - 320Required string length:
1 - 200Required string length:
1 - 20Available options:
construction, transport, manufacturing, motor-trade, retail-wholesale, hospitality, professional-services, healthcare, agriculture, beauty-wellness, facilities, technology-media, education, other Available options:
email, phone, either Available options:
asap, within-1-month, within-3-months, planning-ahead Available options:
less-than-1, 1-2-years, 2-5-years, 5-plus-years Required range:
x <= 1000000000Available options:
under-100k, 100k-250k, 250k-500k, 500k-1m, 1m-5m, over-5m Required string length:
1 - 500Show child attributes
Show child attributes
Show child attributes
Show child attributes
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
Show child attributes
Show child attributes
