Getting Started

Routing page for the Reap Compliance API. Clarifies the KYC and KYB integration methods, how Reap verifies under each, and links to each guide, webhook setup, and event reference

Overview

The Reap Compliance API verifies cardholders and businesses for card issuance through Reap Cards API or via BIN sponsorship route. Four integration methods are supported across two entity types, differentiated by where verification is collected and how it is submitted.

Approval of an entity returns a signed payload that authorises card creation through POST /cards. Approval status is delivered asynchronously by webhook.


Method Selection

Comparison

MethodEntity TypeVerification SourceSubmission ShapeGuide
KYCaaSINDIVIDUALReap, via the SumSub WebSDKSDK token requestKYCaaS Integration Guide
Verified Token SharingINDIVIDUALThe integrator's SumSub accountShare token, single-record synchronous ingestionVerified Token Sharing Guide
Universal KYCINDIVIDUALThe integrator's own KYC providerCanonical KYC Pack with document uploadsUniversal KYC Guide
Universal KYBBUSINESSThe integrator's own KYB providerCanonical KYB pack, with beneficial owners and company documents uploadUniversal KYB Guide

Decision Guide

Apply these in order:

  1. Retail or commercial card? For retail cards, the cardholder is an INDIVIDUAL and goes through KYC. For commercial (corporate) cards, the business your program serves is a BUSINESS and goes through Universal KYB.
  2. Already have a SumSub KYC contract? Use Verified Token Sharing.
  3. Using a KYC provider other than SumSub, or more than one provider? Use Universal KYC.
  4. Otherwise, use KYCaaS.

Verification Methods

KYCaaS

Hosted identity verification for individual cardholders through the SumSub WebSDK. Reap orchestrates the verification and returns the decision via webhook.

PropertyValue
Entity typeINDIVIDUAL
Verification locationSumSub WebSDK embedded on the integrator frontend
RequirementsIdentity document, address verification, liveness check
Approval deliveryWebhook (account_status_change)
Approval outputSingle JWT string (signedPayload) returned by GET /entity/entityId/signed-payload
Jurisdiction handlingInclude binCountry only for issuing BINs with jurisdiction specific rules (currently MEX)

KYCaaS Integration Guide


Verified Token Sharing

Reuse of a verification already completed in the integrator's SumSub account, imported as a share token. Cardholders are held to a Reap-defined SumSub Partner Level, and Reap issues the final decision

PropertyValue
Entity typeINDIVIDUAL
Verification locationCompleted previously in the integrator's SumSub account, against a Reap-defined Partner Level
Sync endpointPOST /entity/kyc/import/sync
Approval deliveryWebhook (account_status_change)
Approval outputStructured object containing verified identity fields and a signature, returned by GET /entity/entityId/signed-payload
PrerequisitesCompliance approval from Reap; signed SumSub Reusable KYC Agreement; Reap added as an authorised recipient in the donor SumSub account
BIN sponsorshipcardProcessorPublicToken mandatory at ingestion for BIN sponsorship clients, optional for all others
  • A token minted against any other level fails ingestion with SHARE_TOKEN_LEVEL_MISMATCH.
  • A cardholder who doesn't meet the level is rejected with LEVEL_ENFORCED_MISMATCH and reject type RETRY.
  • An ingestion response of status: "completed" means the token was accepted. It is not an approval, which arrives by webhook.

Verified Token Sharing Guide


Universal KYC

Submission of individual cardholder data to Reap using a canonical payload structure, where verification is captured by the integrator's own KYC provider. Reap re-verifies every submission and issues the decision.

PropertyValue
Entity typeINDIVIDUAL
Verification locationExternal provider operated by the integrator
Submission endpointPOST /entity/entityId/ukyc
Required contentIdentity, identification document, residential address, liveness result, provider verification outcome
Document uploadsukyc-id-document, ukyc-proof-of-address-document, ukyc-curp-document (when identity.nationality = "MEX")
Jurisdiction handlingInclude binCountry and matching jurisdictionData.<COUNTRY> for issuing BINs with jurisdiction specific rules (currently MEX)
Approval deliveryWebhook (account_status_change)
Approval outputStructured object containing verified identity fields and a signature, returned by GET /entity/entityId/signed-payload

Behaviour after approval depends on Reap's position in the card creation path:

  • Standard card issuance programs- Reap is in the card creation path. Fetch the signed payload and pass it into POST /cards. No valid signed payload, no card
  • BIN sponsorship programs - Cards are created directly on the processor, so Reap cannot gate issuance at source. Every card must be linked to an approved Reap KYC record via cardProcessorPublicToken, which is mandatory at submission.

Universal KYC Guide


Universal KYB

For commercial card programs. You submit KYB on the business your program serves: its legal profile, beneficial owners, due-diligence answers and company documents. Reap Compliance reviews every case and decides. Approval enables card issuance for that business.

PropertyValue
Entity typeBUSINESS. Each declared beneficial owner becomes its own INDIVIDUAL entity (returned as uboEntities)
KYB packPOST /entity/{entityId}/ukyb: legal profile, uboDeclaration, and the optional ddq and edd sections. PATCH amends it while the case is editable, and GET reads it back
DocumentsPOST /entity/{entityId}/ukyb/documents. Required: certificate-of-incorporation, company-profile, shareholding-chart, plus ubo-kyc for each owner (uploaded against that owner's entity)
SubmissionPOST /entity/{entityId}/ukyb/submit checks completeness, locks the case and queues it for review. It fails with INCOMPLETE_KYB if anything required is missing
DecisionWebhook (kyb_status_change) with cardIssuanceEnabled
After approvalCard issuance is enabled for that business entity. There is no signed payload for KYB

Universal KYB Guide


Authentication

All Reap Compliance API requests require an API key passed in the x-reap-api-key header.

x-reap-api-key: <API_KEY>
EnvironmentBase URL
Sandboxhttps://sandbox-compliance.api.reap.global
Productionhttps://compliance.api.reap.global

API keys are generated in the Reap Dashboard at Settings → Product Settings → KYC API Keys and are linked to a Business UUID (BUUID) that scopes all activity to the issuing business. Sandbox validation is required before switching to production keys.


Core Concepts

Business

The organisation registered with Reap, identified by a unique API Key and Business UUID (BUUID). All entities, requirements, and KYC activity are scoped to the BUUID.

Entity

The individual or business being verified. Every applicant is represented as an entity created via POST /entity with type: INDIVIDUAL or type: BUSINESS.

Reap assigns a unique entityId at creation. An optional externalId may be supplied to correlate the entity with the integrator's internal records.

{
  "entityId": "ent_123e4567-e89b-12d3-a456-426614174000",
  "externalId": "user_123"
}

Entity type by method.

MethodEntity Type
KYCaaSINDIVIDUAL
Verified Token SharingINDIVIDUAL
Universal KYCINDIVIDUAL
Universal KYBBUSINESS

Feature

A capability enabled for a business. Card Issuance is the feature governing verification and card issuance authority and must be enabled by Reap before use.


Requirement Slug

A typed name for a document category or a submission, for example ukyc-id-document for Universal KYC, or certificate-of-incorporation and ubo-kyc for Universal KYB.


Status

Every entity and requirement carries a status from the RequirementStatus enum.

StatusMeaning
APPROVEDVerification passed. Card issuance is enabled for the entity
PENDINGSubmitted and under review
REJECTEDVerification failed. Inspect reviewRejectType to determine retry eligibility

Universal KYB tracks the case as a whole:

StatusMeaning
PENDING_SUBMISSIONThe case is open. You can amend the pack and upload documents
UNDER_REVIEWSubmitted and locked. Compliance is reviewing
PENDING_ADDITIONAL_INFOCompliance needs more from you
APPROVEDKYB passed. Card issuance is enabled for the business
REJECTEDKYB failed
CANCELLED_BY_CLIENTYou withdrew the case

Signed Payload

A cryptographically signed object retrieved from Reap once an entity reaches APPROVED. The payload authorises card creation when passed into POST /cards.

Shape depends on the method.

MethodSigned Payload Shape
KYCaaSStructured object containing verified identity fields, signature, and expiresAt
Universal KYCStructured object containing verified identity fields, signature, and expiresAt
Verified Token SharingStructured object containing verified identity fields, signature, and expiresAt
Universal KYBUniversal KYB has no signed payload. Approval enables card issuance for the business entity.

External ID

An integrator supplied identifier passed as externalId and echoed back by Reap. Used to correlate Reap records with integrator internal records.


BIN Country and Jurisdiction Data

binCountry is the ISO 3166-1 alpha-3 code of the issuing BIN. The field is included only when the issuing BIN belongs to a jurisdiction with jurisdiction specific KYC requirements (currently MEX).

For Universal KYC, a matching jurisdictionData.<COUNTRY> block accompanies binCountry. The field is independent of identity.nationality, and nationality driven document requirements (such as ukyc-curp-document for Mexican nationals) are determined separately.


Webhook Notifications

Register a webhook before you start, because decisions are delivered asynchronously. Use POST /notification and subscribe to the event type for your method:

MethodsEvent typeMain event
KYCaaS, Verified Token Sharing, Universal KYCaccount_status_changecard_issuance_api_access_updated: card issuance access granted or revoked, or a requirement rejected
Universal KYBkyb_status_changekyb_status_changed: the KYB case moved to a new status
ResourceDocument
Registration, subscription management and signature verificationWebhook Setup
card_issuance_api_access_updated schema and statusesCard Issuance KYC API Access Webhook
kyb_status_changed schema and statusesUniversal KYB Guide

Documentation Map

DocumentCoverage
KYCaaS Integration GuideReap hosted individual cardholder verification through the SumSub WebSDK, including SDK token generation and signed payload retrieval
Verified Token Sharing GuideReuse of an existing SumSub verification by share token against a Reap-defined Partner Level, including level enforcement and signed payload retrieval
Universal KYC GuideSubmission of a canonical KYC Pack and supporting documents for individual cardholders verified externally, including the BIN sponsorship branch
Universal KYB GuideCreating the business entity, KYB pack, documents and submission, through to the decision webhook
Webhook SetupRegistration, lifecycle management, and signature verification of webhook subscriptions
Card Issuance KYC API Access WebhookReference schema and status semantics for the card_issuance_api_access_updated event

Next Steps

  1. Identify the appropriate integration method using the Comparison table and Decision Guide.
  2. Configure the webhook endpoint first by following the Webhook Setup guide. Reap's verification decision is delivered by webhook for every method that emits one.
  3. Follow the appropriate integration guide.


Did this page help you?