Goal
This guide walks you through the KYB flow end-to-end. By the end, you will have anACTIVE company that is ready for account creation and card issuance.
1
Create a company
Call Create a company with a display name. The response includes a company
id you will use for all subsequent calls. The company starts with status: CREATED.2
Create a company application
Call Advance company application with the company
id. The response includes a sessionUrl. Direct the company representative to this URL to complete the corporate verification form.The company status advances to PENDING once the application is created.3
Handle related persons
During the verification flow, Reap identifies the company’s officers and beneficial owners. Poll List related persons to detect when new related persons appear.For each related person, retrieve their active application via List related person applications to get the
sessionUrl. Send this URL to the individual so they can complete their KYC.Repeat this for every related person. The company cannot advance to IN_REVIEW until all related persons reach APPROVED.4
Handle the company status webhook
When all verification inputs are received and Reap’s compliance review completes, Reap fires a
COMPANY_STATUS_UPDATED event. See the COMPANY_STATUS_UPDATED for the full payload schema.Handle the status in the event:IN_REVIEW: inputs are received and the review is in progress.ACTION_REQUIRED: Reap needs more information. Your account manager will contact you.ACTIVE: company is verified. Proceed to account creation and card issuance.REJECTED: verification failed. Contact your account manager.RESTRICTED: company spend is stopped. Contact your account manager. CheckisDeactivatedif the company itself was deactivated.
Testing in sandbox
In the sandbox environment, use the simulation endpoint to move a company to any target status without running real verification. The update is processed asynchronously. Wait for theCOMPANY_STATUS_UPDATED webhook rather than polling.
The scenarios below use Managed KYB. For Universal KYB projects, see Testing in sandbox.
See Simulate company status in the API reference for the full request schema, including the required applicationDetails fields when simulating ACTIVE.
Simulating
ACTIVE rejects countries that cannot be used for card issuance (for example KP). Use a supported country such as AE, HK, or SG on country, registeredAddress, and operationalAddress.Scenario 1: Happy path (approved)
- Create a company
- Advance company application
- Simulate company status with
{ "status": "ACTIVE", "applicationDetails": { ... } } - Confirm webhook received with
status: "ACTIVE" - Create an account scoped to the company
Scenario 2: In review, then approved
- Create a company
- Advance company application
- Simulate company status with
{ "status": "IN_REVIEW" } - Confirm webhook received with
status: "IN_REVIEW" - Simulate company status with
{ "status": "ACTIVE", "applicationDetails": { ... } } - Confirm webhook received with
status: "ACTIVE"
Scenario 3: Rejected
- Create a company
- Advance company application
- Simulate company status with
{ "status": "REJECTED" } - Confirm webhook received with
status: "REJECTED"