# Reap API > Modular fintech infrastructure. Cards, wallets, compliance, and payments via a single API. ## Docs - [Funding via Deposits](https://docs.reap.global/accounts/deposits.md): How to fund an account with on-chain token transfers. - [Overview](https://docs.reap.global/accounts/overview.md): How accounts work and how their balance is computed. - [Supported Assets](https://docs.reap.global/accounts/supported-assets.md): Which tokens and chains are accepted for deposits. - [3ds challenge created](https://docs.reap.global/api-reference/3ds-challenge-created.md): Fired when a new 3DS authentication challenge is received for a card. The partner must respond within the expiry window. - [Account status updated](https://docs.reap.global/api-reference/account-status-updated.md): Fired when an account status changes (e.g., restricted, reactivated). - [Create an account](https://docs.reap.global/api-reference/accounts/create-an-account.md): Creates a new account for the given owner. The account owner type is determined by the project account ownership mode (`USER` or `COMPANY`). The owner must have an approved application (KYC for users, KYB for companies). For projects that provision user wallets (`USER_FUNDED` funding model), deposit… - [Generate signer auth message](https://docs.reap.global/api-reference/accounts/generate-signer-auth-message.md): Generates a time-limited authentication message that must be signed by the end-user's wallet to prove key ownership. The signed message is required when creating an account (`POST /accounts`). Messages expire after 15 minutes. - [Get account assets](https://docs.reap.global/api-reference/accounts/get-account-assets.md): Retrieves per-asset balance breakdown with valuations, aggregated by symbol across all chains. All valuations are in USD. - [Get account balance](https://docs.reap.global/api-reference/accounts/get-account-balance.md): Retrieves the account financial position including total asset value, liabilities, and net available balance. Use `GET /accounts/:id/assets` for per-asset breakdown. All values are in USD. - [Get an account by ID](https://docs.reap.global/api-reference/accounts/get-an-account-by-id.md): Retrieves account details and chain addresses. Use `GET /accounts/:id/balance` to retrieve balance information. - [List accounts](https://docs.reap.global/api-reference/accounts/list-accounts.md): Retrieves a paginated list of accounts. Use `GET /accounts/:id/balance` to retrieve balance details for a specific account. - [List activities](https://docs.reap.global/api-reference/activities/list-activities.md): Retrieves a paginated, chronologically ordered list of all fund movements. Supports filtering by activity type, account, card, and resource-specific statuses. - [Authentication](https://docs.reap.global/api-reference/authentication.md): How to authenticate API requests to Reap. - [Card shipment status updated](https://docs.reap.global/api-reference/card-shipment-status-updated.md): Fired when a card shipment status changes (e.g., in production, ready to ship, in transit, delivered) or per-card production state changes. - [Add a card to a draft shipment](https://docs.reap.global/api-reference/card-shipments/add-a-card-to-a-draft-shipment.md): Append a card to a shipment in `DRAFT` status. Rejects if the card is already in another active shipment, or if the shipment is already at the 200-card limit. - [Create a card shipment draft](https://docs.reap.global/api-reference/card-shipments/create-a-card-shipment-draft.md): Creates a new card shipment in `DRAFT` status. No manufacturer call is made until the draft is explicitly submitted. - [Delete a card shipment draft](https://docs.reap.global/api-reference/card-shipments/delete-a-card-shipment-draft.md): Only shipments in `DRAFT` status can be deleted. - [Get a card shipment](https://docs.reap.global/api-reference/card-shipments/get-a-card-shipment.md): Unified card shipments API. Ship one card or up to 200 cards in a single draft-first shipment. - [List card shipments](https://docs.reap.global/api-reference/card-shipments/list-card-shipments.md): Returns a paginated list of card shipments, most recent first. - [Remove a card from a draft shipment](https://docs.reap.global/api-reference/card-shipments/remove-a-card-from-a-draft-shipment.md): Remove a card from a shipment in `DRAFT` status. Removing the last remaining card is not allowed - delete the shipment instead. - [Submit a card shipment to the manufacturer](https://docs.reap.global/api-reference/card-shipments/submit-a-card-shipment-to-the-manufacturer.md): Transitions the shipment from `DRAFT` to `PLACED`. Single-card shipments hit the single-ship endpoint; multi-card shipments use the bulk-ship endpoint. On failure the shipment remains in `DRAFT` so the client can retry. - [Update card shipment shipping details](https://docs.reap.global/api-reference/card-shipments/update-card-shipment-shipping-details.md): Update the box-level destination, recipient, or courier on a `DRAFT` shipment. Use `POST /:id/cards` and `DELETE /:id/cards/:memberId` to change the card set. - [Card status updated](https://docs.reap.global/api-reference/card-status-updated.md): Fired when a card status changes (e.g., activated, frozen, unfrozen, cancelled). - [Card transaction created](https://docs.reap.global/api-reference/card-transaction-created.md): Fired when a new card transaction is created (e.g., authorization, purchase). - [Card transaction updated](https://docs.reap.global/api-reference/card-transaction-updated.md): Fired when a card transaction receives a new lifecycle event (e.g., clearing, reversal, refund). - [Get a card transaction by ID](https://docs.reap.global/api-reference/card-transactions/get-a-card-transaction-by-id.md): Retrieves card transaction details including merchant information, amounts, and lifecycle events. The response shape varies by transaction status. - [Activate physical card](https://docs.reap.global/api-reference/cards/activate-physical-card.md): Activates a physical card using the 6-digit activation code from the card mailer. Use `GET /cards/:id/activation-code` only when the cardholder has lost the code that came with the card packaging. - [Create a new card](https://docs.reap.global/api-reference/cards/create-a-new-card.md): Creates a new virtual or physical card for a user. User must have approved application; account must be active. The phone number used for OTP verification is taken from the user record; the card is issued against the user's verified identity. - [Delete card](https://docs.reap.global/api-reference/cards/delete-card.md): Deletes a card. Returns `404 CARD_NOT_FOUND` if the card does not exist or has already been deleted. - [Freeze card](https://docs.reap.global/api-reference/cards/freeze-card.md): Freezes a card. Frozen cards cannot be used for transactions. - [Get 3DS challenge](https://docs.reap.global/api-reference/cards/get-3ds-challenge.md): Retrieves a 3DS challenge by ID. - [Get a card by ID](https://docs.reap.global/api-reference/cards/get-a-card-by-id.md): Retrieves a single card by its unique identifier. - [Get activation code for a physical card](https://docs.reap.global/api-reference/cards/get-activation-code-for-a-physical-card.md): Retrieves the 6-digit activation code for a physical card. Use only when the cardholder has lost the code that came with the card packaging. Verify the cardholder's identity through your own secure channel before sharing the code. - [List cards](https://docs.reap.global/api-reference/cards/list-cards.md): Retrieves a paginated list of cards. Use cursor-based pagination. Filter by `accountId` to get cards for a specific account. - [Respond to 3DS challenge](https://docs.reap.global/api-reference/cards/respond-to-3ds-challenge.md): Approves or rejects a 3DS authentication challenge. Must respond within 5 minutes of the challenge being created. - [Reveal card details](https://docs.reap.global/api-reference/cards/reveal-card-details.md): Generates a short-lived URL to securely display card details (PAN, CVV, expiry) in an iframe or WebView. The URL is valid for 5 minutes and is single-use. Do not store, log, or expose this URL beyond the immediate display context. - [Unfreeze card](https://docs.reap.global/api-reference/cards/unfreeze-card.md): Unfreezes a previously frozen card. - [Update 3DS challenge method](https://docs.reap.global/api-reference/cards/update-3ds-challenge-method.md): Updates the 3DS challenge verification method for a card. - [Update card PIN](https://docs.reap.global/api-reference/cards/update-card-pin.md): Updates the PIN for a card. Only supported for physical cards; virtual cards have no PIN. PIN must be 4-12 digits and cannot contain sequences of 3+ consecutive or repeated numbers. - [Create a company](https://docs.reap.global/api-reference/companies/create-a-company.md): Creates a new company with the provided name. Only available in `CORPORATE` program mode. - [Create company application](https://docs.reap.global/api-reference/companies/create-company-application.md): Initiates a new verification for the company. Generates a verification URL for the corporate client to complete their business verification. Returns an error if an active application already exists. - [Get a company by ID](https://docs.reap.global/api-reference/companies/get-a-company-by-id.md): Retrieves a single company by its unique identifier. - [Get company application by ID](https://docs.reap.global/api-reference/companies/get-company-application-by-id.md): Retrieves a specific company application by its ID. - [Get related person application by ID](https://docs.reap.global/api-reference/companies/get-related-person-application-by-id.md): Retrieves a specific KYC verification application for a related person. - [Get related person by ID](https://docs.reap.global/api-reference/companies/get-related-person-by-id.md): Retrieves a specific related person by their ID. - [List companies](https://docs.reap.global/api-reference/companies/list-companies.md): Retrieves a paginated list of companies. Use cursor-based pagination by passing the `nextCursor` value from the response to get subsequent pages. - [List company applications](https://docs.reap.global/api-reference/companies/list-company-applications.md): Returns a paginated list of all company applications, ordered by creation date descending. Use the `status` query parameter to filter by application status. For example, to retrieve only active applications: `?status=INITIATED,IN_PROGRESS,REVIEW_REQUIRED`. - [List related person applications](https://docs.reap.global/api-reference/companies/list-related-person-applications.md): Returns a paginated list of related person KYC applications for the company, ordered by creation date descending. Use the `status` query parameter to filter by application status (comma-separated), or `relatedPersonId` to scope to a single related person. - [List related persons](https://docs.reap.global/api-reference/companies/list-related-persons.md): Returns a paginated list of active related persons (officers and UBOs) for the company, ordered by creation date descending. Use the `status` query parameter to filter by verification status (comma-separated), or `id` to fetch a single person by ID. Related persons are automatically discovered durin… - [Company status updated](https://docs.reap.global/api-reference/company-status-updated.md): Fired when a company status changes (e.g., KYB approved, rejected, restricted). - [Crypto deposit created](https://docs.reap.global/api-reference/crypto-deposit-created.md): Fired when a new on-chain deposit is detected on an account deposit address. - [Crypto deposit status updated](https://docs.reap.global/api-reference/crypto-deposit-status-updated.md): Fired when a crypto deposit status changes (e.g., approved, rejected). - [Get a crypto deposit by ID](https://docs.reap.global/api-reference/crypto-deposits/get-a-crypto-deposit-by-id.md): Retrieves crypto deposit details including asset metadata. - [Errors](https://docs.reap.global/api-reference/errors.md): Error response format and status codes. - [Idempotency](https://docs.reap.global/api-reference/idempotency.md): Safely retry POST requests with the Idempotency-Key header. - [Overview](https://docs.reap.global/api-reference/overview.md): Reap API reference. - [Rate Limiting](https://docs.reap.global/api-reference/rate-limiting.md): Per-project request limits, response headers, and 429 handling. - [Simulate account status](https://docs.reap.global/api-reference/simulation/simulate-account-status.md): Simulates an account status change between `ACTIVE` and `RESTRICTED`. `RESTRICTED` causes all account addresses and cards to be blocked or restricted. `ACTIVE` will unrestrict the account and unblock the cards depending on the previous state. - [Simulate authorization](https://docs.reap.global/api-reference/simulation/simulate-authorization.md): Simulates a card authorization event. Creates a new `PENDING` transaction, or performs incremental authorization on an existing one. Checks the account balance and returns 400 if insufficient funds. - [Simulate card status](https://docs.reap.global/api-reference/simulation/simulate-card-status.md): Simulates a card status change. `ACTIVE` unfreezes a frozen or blocked card. `FROZEN` freezes an active card. `BLOCKED` blocks an active or frozen card. `EXPIRED` expires a card. - [Simulate clearing](https://docs.reap.global/api-reference/simulation/simulate-clearing.md): Simulates a clearing (settlement) event. Pass `transactionId` to clear an existing authorization, or omit to simulate offline/direct clearing. - [Simulate company status](https://docs.reap.global/api-reference/simulation/simulate-company-status.md): Simulates a company status change. `ACTIVE` completes the company onboarding. `REJECTED` simulates a declined KYB verification. `IN_REVIEW` simulates a pending KYB review. - [Simulate decline](https://docs.reap.global/api-reference/simulation/simulate-decline.md): Simulates a declined card transaction. Creates a new `DECLINED` transaction, or declines an existing `PENDING` one. - [Simulate refund](https://docs.reap.global/api-reference/simulation/simulate-refund.md): Simulates a refund event. Pass `transactionId` to refund an existing `CLEARED` transaction, or omit to simulate an unrelated refund (e.g., tax refund). - [Simulate reversal](https://docs.reap.global/api-reference/simulation/simulate-reversal.md): Simulates a reversal (partial or full) of an existing `PENDING` authorization. A full reversal transitions the transaction to `VOID`. - [Simulate user application status](https://docs.reap.global/api-reference/simulation/simulate-user-application-status.md): Simulates a user application (KYC) status change. The status update is processed asynchronously via an internal webhook pipeline, so the user status may not reflect the change immediately after this call returns. Clients should poll `GET /users/{userId}` until the desired status is observed. - [User application status updated](https://docs.reap.global/api-reference/user-application-status-updated.md): Fired when a user application status changes (e.g., KYC approved, rejected, retry required). - [Create a user](https://docs.reap.global/api-reference/users/create-a-user.md): Creates a new user with the provided details. Requires terms acceptance for compliance. Phone number must be unique within the project. In `CORPORATE` mode, `companyId` is required. - [Delete a user](https://docs.reap.global/api-reference/users/delete-a-user.md): Deletes a user, restricts their account, and blocks all cards. - [Get a user by ID](https://docs.reap.global/api-reference/users/get-a-user-by-id.md): Retrieves a single user by their unique identifier. - [Initiate application flow](https://docs.reap.global/api-reference/users/initiate-application-flow.md): Initiates the user application flow and returns provider-specific initiation data. Only valid for users with pending application status. The response structure may vary by provider configured for the client. - [List users](https://docs.reap.global/api-reference/users/list-users.md): Retrieves a paginated list of users. Use cursor-based pagination by passing the `nextCursor` value from the response to get subsequent pages. In `CORPORATE` mode, use `companyId` to filter users by company. - [Update user phone number](https://docs.reap.global/api-reference/users/update-user-phone-number.md): Updates the phone number for a user. Phone number must be in E.164 format and unique within the project. - [Create a virtual asset posting](https://docs.reap.global/api-reference/virtual-asset-postings/create-a-virtual-asset-posting.md): Atomically applies a posting against the target account's virtual asset balances. See the `type` field for variant semantics. For `SETTLEMENT`, the value applied to the outstanding card debt is returned as `settledAmount`, with the per-entry rate used reflected in `entries[].rateSnapshot`. - [Get a virtual asset posting by ID](https://docs.reap.global/api-reference/virtual-asset-postings/get-a-virtual-asset-posting-by-id.md): Client-driven postings (deposit, withdrawal, settlement) against an account's virtual asset balances. - [Create a virtual asset](https://docs.reap.global/api-reference/virtual-assets/create-a-virtual-asset.md): Defines a new virtual asset for the project. Only available when virtual assets are enabled for the project. For `FIXED` rate source, an initial rate must be provided. For `HTTP` rate source, an endpoint URL is required. - [Disable a virtual asset](https://docs.reap.global/api-reference/virtual-assets/disable-a-virtual-asset.md): Permanently disable a virtual asset. One-way operation: disabled assets cannot be reactivated. Existing ledger balances remain but are excluded from balance computation and no new allocations are allowed. Idempotent: re-disabling an already-disabled asset is a no-op. - [Get a virtual asset](https://docs.reap.global/api-reference/virtual-assets/get-a-virtual-asset.md): Retrieves a virtual asset by ID, including the latest known rate. - [List virtual assets](https://docs.reap.global/api-reference/virtual-assets/list-virtual-assets.md): Returns all virtual assets defined for the project. - [Set rate for a `FIXED` virtual asset](https://docs.reap.global/api-reference/virtual-assets/set-rate-for-a-`fixed`-virtual-asset.md): Sets a new USD exchange rate for a virtual asset with `FIXED` rate source. Not available for `HTTP` rate source assets. - [Update a virtual asset](https://docs.reap.global/api-reference/virtual-assets/update-a-virtual-asset.md): Update mutable fields (`name`, `httpEndpoint`). To disable the asset, use the dedicated `POST /:id/disable` endpoint. - [Create a webhook endpoint](https://docs.reap.global/api-reference/webhooks/create-a-webhook-endpoint.md): Registers a new webhook endpoint for the project. The response includes a one-time `signingSecret` that the partner must store to verify incoming webhook signatures. A maximum of 5 ACTIVE webhooks per project is enforced; disable an existing endpoint to make room. - [Disable a webhook endpoint](https://docs.reap.global/api-reference/webhooks/disable-a-webhook-endpoint.md): Permanently disable a webhook endpoint. One-way operation: disabled endpoints cannot be reactivated. Create a new webhook to resume delivery to the same URL. Idempotent: re-disabling an already-disabled webhook is a no-op. - [Get a webhook endpoint](https://docs.reap.global/api-reference/webhooks/get-a-webhook-endpoint.md): Webhook endpoint management. Configure HTTPS URLs that receive signed POST notifications when events occur in your project. Signing secrets are returned exactly once at create and at rotate-secret time - store them securely. - [List webhook endpoints](https://docs.reap.global/api-reference/webhooks/list-webhook-endpoints.md): Returns all webhook endpoints for the project, including disabled endpoints. - [Rotate the signing secret](https://docs.reap.global/api-reference/webhooks/rotate-the-signing-secret.md): Mints a new HMAC signing secret and returns it exactly once. The previous secret is invalidated immediately; in-flight deliveries signed with the old secret will fail verification on your endpoint and be retried automatically by the platform. - [Update a webhook endpoint](https://docs.reap.global/api-reference/webhooks/update-a-webhook-endpoint.md): Update mutable fields (`name`, `url`). To rotate the signing secret, use `POST /:id/rotate-secret`. To disable, use `POST /:id/disable`. - [3D Secure](https://docs.reap.global/cards/3d-secure.md): Authenticate cardholders during online card payments. - [Physical Card Activation](https://docs.reap.global/cards/activation.md): Activate a physical card once it reaches the cardholder. - [Overview](https://docs.reap.global/cards/overview.md): Issue payment cards to your users. - [Physical Card Shipping](https://docs.reap.global/cards/physical-shipping.md): Order physical cards and track production and delivery. - [Displaying Card Details](https://docs.reap.global/cards/secure-display.md): Securely display card PAN, CVV, and expiry to cardholders using an iframe. - [Managing Cards](https://docs.reap.global/cards/virtual-cards.md): Freeze, update, and delete cards. - [Quickstart](https://docs.reap.global/compliance/kyb/getting-started.md): Start KYB for a company and handle the outcome via webhooks. - [Overview](https://docs.reap.global/compliance/kyb/overview.md): How Reap verifies companies and the statuses to expect during KYB. - [Quickstart](https://docs.reap.global/compliance/kyc/getting-started.md): Start KYC for a user and handle the outcome via webhooks. - [Overview](https://docs.reap.global/compliance/kyc/overview.md): How Reap handles user identity verification and application statuses. - [Sumsub Token Sharing](https://docs.reap.global/compliance/kyc/sumsub-token-sharing.md): Reuse identity verifications you have already completed in your own Sumsub account, instead of asking your users to re-verify on Reap. - [Introduction](https://docs.reap.global/index.md): Modular fintech infrastructure. Cards, wallets, compliance, and payments via a single API. - [Funding Models](https://docs.reap.global/program-configuration/funding-models.md): How user funds are held, and how card spending is backed in your project. - [Program Modes](https://docs.reap.global/program-configuration/modes.md): How your program mode shapes the compliance flow, account structure, and card issuance model. - [Overview](https://docs.reap.global/program-configuration/overview.md): The choices Reap locks in when your project is set up. - [Quickstart](https://docs.reap.global/quickstart.md): Make your first Reap API call. - [Amounts](https://docs.reap.global/transactions/amounts.md): Per-status amount fields, currency, and the conversion rate Reap applies. - [ATM Withdrawal Limits](https://docs.reap.global/transactions/atm-limits.md): Platform-enforced limits and geographic restrictions on ATM cash withdrawals. - [Decline Reasons](https://docs.reap.global/transactions/decline-reasons.md): Reference for every code that can appear on a declined card transaction. - [Lifecycle](https://docs.reap.global/transactions/lifecycle.md): The four transaction statuses and the scenarios that drive them. - [Overview](https://docs.reap.global/transactions/overview.md): How card transactions are represented, retrieved, and tracked over their lifecycle. - [Restricted MCCs](https://docs.reap.global/transactions/restricted-mccs.md): Merchant Category Codes that the platform always declines. - [Testing in Sandbox](https://docs.reap.global/transactions/testing-in-sandbox.md): Drive every transaction lifecycle scenario end-to-end without a real card network. - [Defining Virtual Assets](https://docs.reap.global/virtual-assets/definitions.md): Declare an asset once, pick how its USD rate is priced, and use it across every account in your project. - [Overview](https://docs.reap.global/virtual-assets/overview.md): Unit balances Reap tracks on behalf of your users, contributing to their available balance. - [Virtual Asset Postings](https://docs.reap.global/virtual-assets/postings.md): Credit, debit, and settle virtual asset balances on an account through a single endpoint. - [Overview](https://docs.reap.global/webhooks/overview.md): Real-time event notifications when resources change. - [Signature Verification](https://docs.reap.global/webhooks/signature-verification.md): Verify webhook requests originate from Reap. ## OpenAPI Specs - [openapi](https://docs.reap.global/api-reference/openapi.json)