Platform
Launch state, what is available per country, and the agreements people accept.
/v1/platform/statusLaunch state of the platform and any per-country overrides
curl -X GET https://api.tbbnetwork.com/v1/platform/status \
-H "Authorization: Bearer sk_sandbox_..." \Response (200)
| Field | Type | Required |
|---|---|---|
| launchState | PRELAUNCH | LIVE | — |
| launchedAt | string,null (date-time) | — |
| countryOverrides | object | — |
{
"launchState": "PRELAUNCH",
"launchedAt": "2026-07-01T12:00:00Z",
"countryOverrides": null
}/v1/platform/marketsCountries with their own site on tbbnetwork.com
curl -X GET https://api.tbbnetwork.com/v1/platform/markets \
-H "Authorization: Bearer sk_sandbox_..." \Response (200)
| Field | Type | Required |
|---|---|---|
| defaultCountry | string | yes |
| countries | string[] | yes |
{
"defaultCountry": "US",
"countries": [
"US"
]
}/v1/platform/availabilityWhere TBBN is available, and which services each country has
curl -X GET https://api.tbbnetwork.com/v1/platform/availability \
-H "Authorization: Bearer sk_sandbox_..." \Response (200)
| Field | Type | Required |
|---|---|---|
| countries | object[] | yes |
{
"countries": [
{
"country": "DE",
"live": false,
"services": {
"marketplaceListings": false,
"merchantOnboarding": false,
"spaceHosting": false,
"acceptPayments": false,
"payouts": false,
"identityVerification": false,
"businessVerification": false
}
}
]
}/v1/platform/countries/{country}What TBBN offers in a country right now — identity verification, business verification, merchant accounts, Space hosting, payments, payouts, marketplace listings — plus the per-country form configuration (labels and required fields) every onboarding form reads.
curl -X GET https://api.tbbnetwork.com/v1/platform/countries/{country} \
-H "Authorization: Bearer sk_sandbox_..." \Parameters
| country | path | required |
Response (200)
| Field | Type | Required |
|---|---|---|
| country | string | — |
| identityVerification | boolean | — |
| businessVerification | boolean | — |
| merchantOnboarding | boolean | — |
| spaceHosting | boolean | — |
| acceptPayments | boolean | — |
| payouts | boolean | — |
| marketplaceListings | boolean | — |
| currency | string | — |
| formConfig | object | — |
{
"country": "US",
"identityVerification": false,
"businessVerification": false,
"merchantOnboarding": false,
"spaceHosting": false,
"acceptPayments": false,
"payouts": false,
"marketplaceListings": false,
"currency": "USD",
"formConfig": null
}/v1/platform/pricingWhat TBBN charges in a country — plans, usage rates, top-ups and Space fees
curl -X GET https://api.tbbnetwork.com/v1/platform/pricing \
-H "Authorization: Bearer sk_sandbox_..." \Parameters
| country | query | optional |
Response (200)
| Field | Type | Required |
|---|---|---|
| country | stringnull | — |
| currency | string | — |
| local | boolean | — |
| prices | object | — |
| labels | object | — |
{
"country": null,
"currency": "USD",
"local": false,
"prices": null,
"labels": null
}/v1/agreements/{kind}/currentThe current version of an agreement (business-profile, merchant, space-host, trade-terms)
curl -X GET https://api.tbbnetwork.com/v1/agreements/{kind}/current \
-H "Authorization: Bearer sk_sandbox_..." \Parameters
| kind | path | required |
Response (200)
| Field | Type | Required |
|---|---|---|
| id | string (uuid) | — |
| kind | BUSINESS_PROFILE | MERCHANT | SPACE_HOST | TRADE_TERMS | — |
| version | integer | — |
| title | string | — |
| summary | stringnull | — |
| body | string | — |
| effectiveAt | string (date-time) | — |
{
"id": "a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"kind": "BUSINESS_PROFILE",
"version": 1,
"title": "title",
"summary": null,
"body": "body",
"effectiveAt": "2026-07-01T12:00:00Z"
}Possible errors
Any other failure (validation, auth, rate limiting, a resource that doesn't exist) returns this same envelope with a non-2xx status — error.code is stable and safe to branch on; error.requestId is worth logging and including in a support request.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "A human-readable description of what went wrong.",
"requestId": "req_01hxyz..."
}
}/v1/agreements/statusWhich agreements the signed-in person has accepted at their current version
curl -X GET https://api.tbbnetwork.com/v1/agreements/status \
-H "Authorization: Bearer <session access token>" \Response (200)
nullPossible errors
Any other failure (validation, auth, rate limiting, a resource that doesn't exist) returns this same envelope with a non-2xx status — error.code is stable and safe to branch on; error.requestId is worth logging and including in a support request.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "A human-readable description of what went wrong.",
"requestId": "req_01hxyz..."
}
}/v1/agreements/{kind}/acceptAccept the current version of an agreement. Idempotent per person and version.
curl -X POST https://api.tbbnetwork.com/v1/agreements/{kind}/accept \
-H "Authorization: Bearer <session access token>" \
-H "Idempotency-Key: 5f2f...b91" \
-H "Content-Type: application/json" \
-d '{
"businessId": "a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"merchantId": "a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d"
}'Parameters
| kind | path | required |
Request body
| Field | Type | Required |
|---|---|---|
| businessId | string (uuid) | — |
| merchantId | string (uuid) | — |
Response (201)
| Field | Type | Required |
|---|---|---|
| accepted | boolean | — |
| version | integer | — |
| acceptedAt | string (date-time) | — |
{
"accepted": false,
"version": 1,
"acceptedAt": "2026-07-01T12:00:00Z"
}Possible errors
Any other failure (validation, auth, rate limiting, a resource that doesn't exist) returns this same envelope with a non-2xx status — error.code is stable and safe to branch on; error.requestId is worth logging and including in a support request.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "A human-readable description of what went wrong.",
"requestId": "req_01hxyz..."
}
}/v1/identity/statusThe signed-in person's identity verification status — unverified, pending, verified or needs attention — whether verification is offered in their country, and their latest attempt. A pending attempt is refreshed from the provider on read.
curl -X GET https://api.tbbnetwork.com/v1/identity/status \
-H "Authorization: Bearer <session access token>" \Response (200)
| Field | Type | Required |
|---|---|---|
| status | UNVERIFIED | PENDING | VERIFIED | NEEDS_ATTENTION | — |
| verifiedAt | string,null (date-time) | — |
| country | stringnull | — |
| verificationAvailable | boolean | — |
| configured | boolean | — |
| latest | objectnull | — |
{
"status": "UNVERIFIED",
"verifiedAt": "2026-07-01T12:00:00Z",
"country": null,
"verificationAvailable": false,
"configured": false,
"latest": {
"id": "a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"status": "PENDING",
"lastError": null,
"createdAt": "2026-07-01T12:00:00Z",
"completedAt": "2026-07-01T12:00:00Z"
}
}Possible errors
Any other failure (validation, auth, rate limiting, a resource that doesn't exist) returns this same envelope with a non-2xx status — error.code is stable and safe to branch on; error.requestId is worth logging and including in a support request.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "A human-readable description of what went wrong.",
"requestId": "req_01hxyz..."
}
}/v1/identity/sessionsStart an identity check (government ID + selfie). Returns the hosted page to send the person to; they come back to the return URL when done and the status endpoint reflects the outcome. Only where the country access matrix offers identity verification.
curl -X POST https://api.tbbnetwork.com/v1/identity/sessions \
-H "Authorization: Bearer <session access token>" \
-H "Idempotency-Key: 5f2f...b91" \
-H "Content-Type: application/json" \
-d '{
"returnUrl": "https://example.com/resource",
"country": "US"
}'Request body
| Field | Type | Required |
|---|---|---|
| returnUrl | string (uri) | — |
| country | string | — |
Response (201)
| Field | Type | Required |
|---|---|---|
| verificationId | string (uuid) | — |
| url | string (uri) | — |
{
"verificationId": "a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"url": "https://example.com/resource"
}Possible errors
| 403 | Identity verification is not available in the person's country yet |
Any other failure (validation, auth, rate limiting, a resource that doesn't exist) returns this same envelope with a non-2xx status — error.code is stable and safe to branch on; error.requestId is worth logging and including in a support request.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "A human-readable description of what went wrong.",
"requestId": "req_01hxyz..."
}
}