GET/v1/business-identity
Get the business identity
Who the business is to a card processor: its registration number, its legal address and the people who own it. It names people and their dates of birth, so only the owner reads it.
Responses
-
200
The business identity.
BusinessIdentity · application/json
-
addressAddressRequiredNullable
The business's legal address, or null while it is not given.
address_line_1stringRequired
First line of the address — street number, street name, building name.
≤ 255 chars
address_line_2stringSecond line of the address, if any.
≤ 255 chars
address_line_3stringThird line of the address, if any.
≤ 255 chars
administrative_district_level_1stringA civil entity within the country. The state in the US; the county in the UK.
≤ 128 chars
administrative_district_level_2stringA civil entity within
administrative_district_level_1.≤ 128 chars
countryCountryRequired
ISO 3166-1 alpha-2 country code.
ZZis the unknown/unspecified placeholder.One of 250 values; see the schema.
localitystringThe city or town.
≤ 128 chars
postal_codestringThe postal or ZIP code.
≤ 32 chars
sublocalitystringA civil region within the locality, if any.
≤ 128 chars
-
beneficial_ownersarray of BeneficialOwnerRequired
≤ 20 items
namestringRequired
1–200 chars
-
addressAddressRequiredNullable
Where the person lives, or null while it is not given.
address_line_1stringRequired
First line of the address — street number, street name, building name.
≤ 255 chars
address_line_2stringSecond line of the address, if any.
≤ 255 chars
address_line_3stringThird line of the address, if any.
≤ 255 chars
administrative_district_level_1stringA civil entity within the country. The state in the US; the county in the UK.
≤ 128 chars
administrative_district_level_2stringA civil entity within
administrative_district_level_1.≤ 128 chars
countryCountryRequired
ISO 3166-1 alpha-2 country code.
ZZis the unknown/unspecified placeholder.One of 250 values; see the schema.
localitystringThe city or town.
≤ 128 chars
postal_codestringThe postal or ZIP code.
≤ 32 chars
sublocalitystringA civil region within the locality, if any.
≤ 128 chars
date_of_birthstring · dateRequiredNullable
percent_ownershipPercentageRequired
A share of a whole, from
"0"to"100", as a percentage in a decimal string with at most four decimal places, as Square'spercentageand Stripe Tax'spercentage_decimalare: UK VAT at 20% is"20", and an 8.875% US sales tax is"8.875".A string because a JSON number is a binary float to most parsers, and a float cannot hold most decimal fractions exactly (RFC 7493 §2.2). Tenvelo computes with a percentage as an integer in parts per million (
"8.875"is 88750), which every four-place percentage is exactly. A client that computes with one should read the digits the same way, never through a float.pattern ^(100(\.0{1,4})?|(0|[1-9][0-9]?)(\.[0-9]{1,4})?)$
registration_numberstringRequiredNullable
The business's registration with its country's company registry, a company number in the UK.
≤ 64 chars
versionVersionRequiredRead only
Optimistic concurrency version, raised by the server on every write. A version is never lower than one already returned for the resource, though it may rise by more than one.
Returned in the
ETagresponse header as well as in the body. Send it back inIf-Matchon an update and the write is rejected with412if anyone else has written since — which is what stops two tills silently overwriting each other's edit to the same product when both come back online at once.≥ 1
-
-
400
The request could not be parsed. Malformed JSON, a bad query parameter, or a header that failed to decode, among them an
API-Versionlater than the server speaks or not a date (api-version-unknown, with the server's own inapi_version).Distinct from
422: a400never reached validation, soinvalid_paramsis absent. Retrying without changing the request will fail again, except that a request refused for itsAPI-Versiongoes once the server is updated. -
401
No credentials, or credentials that could not be verified — missing bearer token, malformed JWT, expired token, or a signature that failed against the issuer's JWKS.
Refresh the token and retry once. Repeated
401after a refresh means the device needs to re-enrol. -
403
Authenticated, but not permitted. The token is valid and its merchant was resolved, but the caller's role does not allow this operation, or the target belongs to a different merchant.
Cross-tenant access is reported as
403on a resource the caller may not see, and as404where even confirming existence would leak information. Retrying will not help. -
410
The request names an
API-Versionthis server no longer serves (docs/decisions/0011). Nothing in it was read.api_versionnames the version the server speaks: the client is behind, and sends the request again once it is updated. -
429
Rate limit exceeded. Honour
Retry-Afterrather than applying your own backoff.A fleet of tills coming back online together after an outage is the realistic cause, which is exactly when uncoordinated client-side retry turns a brief outage into a sustained one. The limit is per process, and per site for what records trade there — a request spends its site's budget, and a till's own smaller one inside it — and per
(client, merchant)for everything else; noRateLimitfield is sent, so this response and itsRetry-Afterare the whole of the contract. -
500
Something failed on our side.
trace_ididentifies the request in our tracing — quote it in a support ticket.The body never carries internal detail: no SQL, no stack traces, no upstream error strings. Safe to retry with the same
Idempotency-Key.