What it carries
Five fields, three of them required. Each is stated by you; the Platform derives none of them.
An optional field is stated or absent, never blank. A statement carrying
"brand_name": "" or "brand_name": null is refused 422 naming the field; leaving the key out is the ordinary statement, and the answer leaves the field out too rather than returning an empty string.
The Platform holds no tax rate, no address, no tax identifier, no bank account and no officer. A body carrying one is refused
400 naming that field rather than accepted with the field dropped: a Tenancy that sent a value believes the value is held.Stating it
You state the whole profile withPUT /v1/tenants/{tenant_id}/company-profile. There is no partial edit: a field you leave out is you saying the company has none.
A correction is the same call with the whole profile again. Onboarding and a later correction are the same act performed at different times, so both answer 200 and neither is told apart by its status.
The whole profile, stated
stated_at added — the moment the Platform recorded it, in UTC.
200
stated_at included. A retry after a lost response is therefore indistinguishable from the attempt it repeats, and the call needs no Reference and no idempotency key.
Absence is an answer
A Tenancy that has never stated a profile answers404 and names the state:
404
404 too, which keeps a profile that exists elsewhere and one that was never stated indistinguishable from outside.
What the Platform suggests
The Platform has worked four markets out for onboarding and carries a list of legal forms for each. A screen offers them so the operator picks from a filled list instead of typing into an empty field.
The registry also answers the tax rules each of these markets admits, as
tax_rules. Those are not a suggestion and not part of the profile: they are what a Loan’s tax is held to at issuance. See Markets.
Every country carries a suggested time zone, not only the four with a pack: the registry answers suggested_time_zone on every entry, the Console prefills the field from it, and you confirm or change it. A country is not a zone — Mexico spans three — so the suggestion is the one thing the Platform will not apply for you. What a record freezes is the zone you stated.
They suggest and constrain nothing. A legal form no list carries is recorded as stated — a list that constrained would make every correction to it a breaking change for companies already registered under an older form.
The country is the one field the Platform does hold you to. A code outside the 50 it names is refused 422 naming the country:
422
What it does not govern
No figure the Platform computes reads the profile. Two consequences are worth stating on their own, because both are easy to assume the other way. A Loan’s tax owes nothing to the profile. Tax on a Loan is one of the rules the Platform admits for the Loan’s jurisdiction, chosen in the Loan’stax and frozen when it is issued. The profile states no rate to differ from it. Mexico lists the rules Mexico admits.
The stated country neither opens nor closes lending. Whether the Platform can carry a Loan in a market is decided at issuance, from the rule tables, by name — and decided the same way for a Tenancy that stated nothing. A company that states Spain and issues in Mexico is admitted; a company that states Spain and issues in Spain is refused, because the Platform reads none of Spain’s law. Where a company is and what the Platform is supplied to do there are two statements, and only the second gates anything.
The profile is not a precondition for lending. A Tenancy issues Loans, registers Clients and reports Receipts without ever stating one. Facilities and credit decisions are the exception: they read the stated time zone, and are refused no_time_zone until a profile carrying one stands.
Reading it back and stating it are Read the company profile and State the company profile.