Skip to main content
Universal KYB lets you bring business verification you have already completed. You submit the company pack and supporting documents, and Reap reviews them and returns a decision. Use this when your project is configured for Universal KYB. This is one of Reap’s company verification methods. See the KYB overview for the shared company statuses. Managed KYB (hosted session) is unchanged: send redirectUri to Advance company application and use sessionUrl.

How it works

  1. Create a company.
  2. Submit the Universal KYB pack on Advance company application with method: UNIVERSAL_KYB. The first call creates the application. Later calls with the same method amend it.
  3. Upload each outstanding document from nextAction. Company documents use Upload application documents. Beneficial-owner identity documents use Upload related person documents.
  4. When nextAction.type is SUBMIT, call Submit company application. The company moves to IN_REVIEW.
  5. Reap reviews the application and sends COMPANY_STATUS_UPDATED.
Submit is explicit. Uploading the last required document does not lock the application, so you can still add optional documents such as REGISTER_OF_DIRECTORS and BUSINESS_REGISTRY.

Pack

Send method: UNIVERSAL_KYB plus the verified business data: legal name, legal form, registration number, registered and operating addresses, email domains, line of business, and at least one beneficial owner. Both addresses require line2. Optional ddq and edd objects are accepted when you have them. Declared ownership may sum to less than 100. A sum above 100 is rejected. nextAction lists what is still required:
  • DOCUMENT_UPLOAD with the outstanding company documents and any outstanding UBO_IDENTITY items (relatedPersonId + uboDocumentType)
  • SUBMIT when required uploads are complete
  • null after submit, or for Managed KYB

Documents

Upload one document type per request.

Company documents

Required before submit: CERTIFICATE_OF_INCORPORATION, COMPANY_PROFILE, SHAREHOLDING_CHART. Optional: REGISTER_OF_DIRECTORS, BUSINESS_REGISTRY, SOURCE_OF_FUNDS, SOURCE_OF_WEALTH. Accepted formats: JPEG, PNG, GIF, PDF, Word (DOC, DOCX), Excel (XLS, XLSX), and CSV. Maximum 5 files per request and 5 MB total.

Beneficial-owner documents

Each declared identity-document type needs a file on that related person. Accepted formats: JPEG, PNG, and PDF only. Maximum 2 files per request (front, then back) and 5 MB total.

Incomplete submissions

If you submit before every required document is uploaded, the API returns 400 with code: COMPANY_APPLICATION_INCOMPLETE, plus missing and invalid, so you can fix every gap in one pass. When the outstanding items are documents, documents lists each one in the same shape as nextAction.documents, including relatedPersonId and uboDocumentType for beneficial-owner documents.

Testing in sandbox

Simulation runs the same completeness check and sends the same COMPANY_STATUS_UPDATED webhook as a real review.
  1. Submit a complete application as described in How it works.
  2. Call Simulate company status with ACTIVE, REJECTED, ACTION_REQUIRED, or CANCELLED.
  3. Wait for COMPANY_STATUS_UPDATED. The simulate call returns 204 and the new status arrives with the webhook.
Simulating before submit returns SIMULATION_INVALID_STATE. IN_REVIEW cannot be simulated because submit produces it. ACTIVE does not need applicationDetails. Reap uses the submitted application.

Managed KYB

Projects configured for Managed KYB keep the existing flow. Send only redirectUri (or method: MANAGED_KYB with redirectUri). The response still includes sessionUrl. nextAction is null. Get and list application stay the same resource shape.