TBBNMerchantDocs
Available

Platform

Launch state, what is available per country, and the agreements people accept.

get/v1/platform/status

Launch 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)

FieldTypeRequired
launchStatePRELAUNCH | LIVE—
launchedAtstring,null (date-time)—
countryOverridesobject—
Example 200 response
{
  "launchState": "PRELAUNCH",
  "launchedAt": "2026-07-01T12:00:00Z",
  "countryOverrides": null
}
get/v1/platform/markets

Countries with their own site on tbbnetwork.com

curl -X GET https://api.tbbnetwork.com/v1/platform/markets \
  -H "Authorization: Bearer sk_sandbox_..." \

Response (200)

FieldTypeRequired
defaultCountrystringyes
countriesstring[]yes
Example 200 response
{
  "defaultCountry": "US",
  "countries": [
    "US"
  ]
}
get/v1/platform/availability

Where 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)

FieldTypeRequired
countriesobject[]yes
Example 200 response
{
  "countries": [
    {
      "country": "DE",
      "live": false,
      "services": {
        "marketplaceListings": false,
        "merchantOnboarding": false,
        "spaceHosting": false,
        "acceptPayments": false,
        "payouts": false,
        "identityVerification": false,
        "businessVerification": false
      }
    }
  ]
}
get/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

countrypathrequired

Response (200)

FieldTypeRequired
countrystring—
identityVerificationboolean—
businessVerificationboolean—
merchantOnboardingboolean—
spaceHostingboolean—
acceptPaymentsboolean—
payoutsboolean—
marketplaceListingsboolean—
currencystring—
formConfigobject—
Example 200 response
{
  "country": "US",
  "identityVerification": false,
  "businessVerification": false,
  "merchantOnboarding": false,
  "spaceHosting": false,
  "acceptPayments": false,
  "payouts": false,
  "marketplaceListings": false,
  "currency": "USD",
  "formConfig": null
}
get/v1/platform/pricing

What 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

countryqueryoptional

Response (200)

FieldTypeRequired
countrystringnull—
currencystring—
localboolean—
pricesobject—
labelsobject—
Example 200 response
{
  "country": null,
  "currency": "USD",
  "local": false,
  "prices": null,
  "labels": null
}
get/v1/agreements/{kind}/current

The 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

kindpathrequired

Response (200)

FieldTypeRequired
idstring (uuid)—
kindBUSINESS_PROFILE | MERCHANT | SPACE_HOST | TRADE_TERMS—
versioninteger—
titlestring—
summarystringnull—
bodystring—
effectiveAtstring (date-time)—
Example 200 response
{
  "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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}
get/v1/agreements/status

Which 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)

Example 200 response
null

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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}
post/v1/agreements/{kind}/accept

Accept 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

kindpathrequired

Request body

FieldTypeRequired
businessIdstring (uuid)—
merchantIdstring (uuid)—

Response (201)

FieldTypeRequired
acceptedboolean—
versioninteger—
acceptedAtstring (date-time)—
Example 201 response
{
  "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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}
get/v1/identity/status

The 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)

FieldTypeRequired
statusUNVERIFIED | PENDING | VERIFIED | NEEDS_ATTENTION—
verifiedAtstring,null (date-time)—
countrystringnull—
verificationAvailableboolean—
configuredboolean—
latestobjectnull—
Example 200 response
{
  "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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}
post/v1/identity/sessions

Start 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

FieldTypeRequired
returnUrlstring (uri)—
countrystring—

Response (201)

FieldTypeRequired
verificationIdstring (uuid)—
urlstring (uri)—
Example 201 response
{
  "verificationId": "a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
  "url": "https://example.com/resource"
}

Possible errors

403Identity 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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}