Before you start
- An account. See Create an account.
- An API key with
connected_accounts:readandconnected_accounts:write.
Steps
1
Read the people already on the account
A returning account holder should confirm rather than re-type. List the account’s people and find the one whose
relationship.representative is true. An empty list means no representative has been created yet.verification.status is the person’s own state: pending until a reviewer decides, then passed or failed. id_number_provided and document_provided tell you what has been supplied without echoing the number or the file. Read one person on its own at GET /v1/accounts/{account_id}/persons/{person_id}.2
Create or update the representative
Submit the person and flag them as the representative. Identifiers go in Copy the person
id_numbers, each naming its own scheme under type (nin, bvn, passport, a driver’s licence) and carrying its own issuing_country. The same call updates an existing person: address it by id at POST /v1/accounts/{account_id}/persons/{person_id} and only the fields you send change.id (per_...). One human can hold several roles at once: a founder is commonly representative, owner and director, so relationship is a set of flags rather than separate people.3
Upload the ID document
A document is a file plus a reference to it. Upload the file first, then attach it, so a mis-filed document is re-attached rather than re-uploaded and one file can satisfy two slots without being sent twice.The upload returns an
Request
Response
upload_id and nothing about a person yet. See Upstream for the upload’s full field reference. The file is not readable back through your API key: an attached ID is retrievable only through the admin review surface.4
Attach the document to the person
Point one of the person’s document slots at the uploaded file. The person’s
document is primary_verification for a government ID or secondary_verification for address evidence. A two-sided card is two files, each attached with its own side.verification.document_provided is now true. Attaching a document does not verify it: a reviewer accepting it is what moves verification.status to passed.5
Read the outcome
A person’s identity state lives on the person and on the account’s requirements, not a separate status resource. Re-read the person for its own state, or read the account for the whole picture at once.
For the account-wide view, read
GET /v1/accounts/{account_id}: its requirements.entries[] show which identity fields are still owed, and persons[] carries each person’s verification block. See Requirements.What happens next
A verified representative satisfies the identity fields on the account’s requirements. Watchrequirements.entries[] move, and wait for capability.updated before unlocking anything: a person passing is not the same as a capability being enabled. See Monitor onboarding.

