# Rain - [Rain](https://rain-sandbox-trial.mintlify.app/index.md) - [What Is Rain](https://rain-sandbox-trial.mintlify.app/docs/what-is-rain.md): Cards, accounts, ramps, payouts, wallets, and rewards on shared infrastructure, reachable through a single API. - [Platform Architecture](https://rain-sandbox-trial.mintlify.app/docs/platform-architecture.md): The four layers every Rain product runs on: your tenant, compliance, customer records, and the ledger. - [Products at a Glance](https://rain-sandbox-trial.mintlify.app/docs/products-at-a-glance.md): Where to start building, plus links to every product page: cards, accounts, payouts, subtenants, wallets, and rewards. - [Customers and Identity](https://rain-sandbox-trial.mintlify.app/docs/customers-and-identity.md): How tenants, companies, users, and authorized users relate, and how to tie Rain records to the customers in your own system. - [Compliance Comes First](https://rain-sandbox-trial.mintlify.app/docs/compliance-comes-first.md): Nothing unlocks before verification. What Cards KYC/KYB and payments verification each gate, and the application states along the way. - [Flow of Funds](https://rain-sandbox-trial.mintlify.app/docs/first-steps.md): Two setup choices decide who holds collateral, who authorizes and settles, and what each customer needs before they can transact. - [Wallets & Funds On-Chain](https://rain-sandbox-trial.mintlify.app/docs/wallets-and-funds-on-chain.md): How customer wallets, collateral contracts, and supported chains fit together across Rain's products. - [Transaction Lifecycle](https://rain-sandbox-trial.mintlify.app/docs/transaction-lifecycle.md): How a card transaction moves from authorization to settlement, and how every product's money movement lands on one ledger as a transaction. - [Set Up Your Integration](https://rain-sandbox-trial.mintlify.app/docs/quickstarts.md): Set up API keys, webhooks, and a compliance-approved customer once, then start the quickstart for your product. - [Issue Your First Card](https://rain-sandbox-trial.mintlify.app/docs/quickstart.md): Create a card for an approved customer, fund it, and decrypt the card details so they can start spending. - [Open a Virtual Account](https://rain-sandbox-trial.mintlify.app/docs/quickstart-onramp.md): Create a payment route, get named virtual account deposit details, and watch fiat convert and land on-chain. - [Make a Cross-Border Payout](https://rain-sandbox-trial.mintlify.app/docs/quickstart-offramp.md): Register a destination bank account, lock in an exchange rate, and send stablecoin that lands as fiat in another country. - [Integration Resources](https://rain-sandbox-trial.mintlify.app/docs/integration-resources.md): The technical assets you need on the way to production: egress IP addresses, session public keys, and sandbox test tokens. - [SDK Overview](https://rain-sandbox-trial.mintlify.app/sdks/overview.md): Install the Rain SDK, authenticate with your API key, and make your first API call in TypeScript, Go, or Python. - [Configuration](https://rain-sandbox-trial.mintlify.app/sdks/configuration.md): Configure error handling, retries, timeouts, pagination, and logging for the Rain SDK. - [IP Whitelisting](https://rain-sandbox-trial.mintlify.app/docs/ip-whitelisting.md): When integrating with Rain's API, you may need to whitelist our IP addresses in your firewall or security settings. This is particularly important if you have strict network security policies or if you're using webhooks that only accept connections from trusted sources. - [SessionId Public Keys (Development and Production)](https://rain-sandbox-trial.mintlify.app/docs/resource-sessionid-keys.md) - [Mint Test Tokens for Collateral (Sandbox)](https://rain-sandbox-trial.mintlify.app/docs/sandbox-mint-test-tokens-for-collateral.md) - [Restrictions & Availability](https://rain-sandbox-trial.mintlify.app/docs/restrictions-and-availability.md): Regional, country, and industry restrictions on payment routes, plus where to find card-specific merchant restrictions. - [Pricing and Fees](https://rain-sandbox-trial.mintlify.app/docs/pricing-and-fees.md): See how your contract tier determines your available pricing fields, fee structures, and FX and cross-border charges. - [Erroneous Transfers Policy](https://rain-sandbox-trial.mintlify.app/docs/erroneous-transfers-policy.md): How Rain defines and handles erroneous transfers, and what you need to do to prevent, report, and recover them if deemed possible. - [Support & Escalations](https://rain-sandbox-trial.mintlify.app/docs/escalations-and-support-paths.md): Use this guide to determine when to escalate issues to Rain Support, how to escalate and where to find reference codes for troubleshooting transactions. - [How Compliance Works](https://rain-sandbox-trial.mintlify.app/docs/compliance.md): How Rain verifies cardholders and payments customers, tracks applications, and screens for risk under Standard and Hybrid Compliance. - [Who Verifies What](https://rain-sandbox-trial.mintlify.app/docs/who-verifies-what.md): Your compliance model decides who collects identity data and who verifies it. Rain screens every party either way. - [Verification Requirements & Screening](https://rain-sandbox-trial.mintlify.app/docs/verification-requirements.md): The field-by-field tables for a person and a business, the country rules Rain applies, and what every applicant is screened against. - [Ultimate Beneficial Owner (UBO)](https://rain-sandbox-trial.mintlify.app/docs/ultimate-beneficial-owner-ubo.md): What an Ultimate Beneficial Owner (UBO) is, who qualifies, and how UBOs are added and verified in a corporate card application. - [Standard and Hybrid Compliance Flows](https://rain-sandbox-trial.mintlify.app/docs/hosted-flow.md): Choose how much of onboarding (identity verification, documents, terms acceptance) Rain handles for you under Standard Compliance, versus what you run in your own compliance program under Hybrid Compliance. - [Capturing End User Acceptance of Terms](https://rain-sandbox-trial.mintlify.app/docs/terms-acceptance.md): How Rain tracks a user's terms acceptance in the application flow, and how to embed the terms page in your own onboarding UI. - [KYC/KYB Documents](https://rain-sandbox-trial.mintlify.app/docs/kyc-kyb-documents.md): Documents you must submit for compliance checks. They differ depending on whether the customer is a person (KYC) or a business (KYB). - [Submit Pre-Collected Documents](https://rain-sandbox-trial.mintlify.app/docs/submit-pre-collected-documents.md): Upload ID and selfie photos you already hold, in four calls, then submit the consumer application. - [Reuse an Existing Verification](https://rain-sandbox-trial.mintlify.app/docs/reuse-existing-verification.md): Choose between sharing a Sumsub token, sharing a Persona inquiry, or submitting your own encrypted KYC payload. - [Sumsub Token Sharing](https://rain-sandbox-trial.mintlify.app/docs/sumsub-token-sharing.md): Reuse a customer's existing Sumsub verification with a share token instead of re-collecting their KYC. - [Persona Token Sharing](https://rain-sandbox-trial.mintlify.app/docs/persona-token-sharing.md): Reuse a customer's existing Persona inquiry with a share token instead of re-collecting their KYC. - [Encrypted KYC Submission](https://rain-sandbox-trial.mintlify.app/docs/encrypted-kyc-submission.md): Send KYC data as a hybrid RSA-AES encrypted payload, on the same user application endpoint you already call. - [KYC Encryption Public Keys](https://rain-sandbox-trial.mintlify.app/docs/kyc-encryption-public-keys.md): The two RSA public keys you encrypt a KYC payload with, one per environment. Keys are not interchangeable. - [Application States](https://rain-sandbox-trial.mintlify.app/docs/application-states.md): Every application state on the Rain platform: why an application lands in each one, what to do, and what transitions to expect. - [Rejection Reasons](https://rain-sandbox-trial.mintlify.app/docs/rejection-reasons.md): Decode the `applicationReason` labels a webhook returns, with each label's severity and the action it calls for. - [Rejection Catalog](https://rain-sandbox-trial.mintlify.app/docs/rejection-catalog.md): Every rejection reason Rain can return, grouped as the Dashboard groups them, with its Reason ID and webhook label. - [Verification Troubleshooting](https://rain-sandbox-trial.mintlify.app/docs/verification-troubleshooting.md): Common issues and solutions for the Sumsub identity verification flow, including camera errors, iframe permissions, and SDK integration problems. - [Industry Codes (KYB)](https://rain-sandbox-trial.mintlify.app/docs/industry-codes-kyb.md): How to classify a business with a NAICS industry code when creating a corporate application, including the two-tier selection and code format. - [Occupation Codes (KYC)](https://rain-sandbox-trial.mintlify.app/docs/occupation-codes.md): Which values Rain accepts for the consumer occupation field, and where to find the SOC code list. - [Payments Compliance](https://rain-sandbox-trial.mintlify.app/docs/payments-compliance.md): The second verification gate: account owner identification, transaction monitoring, and on-chain screening for money movement. - [How Card Issuing Works](https://rain-sandbox-trial.mintlify.app/docs/how-card-issuing-works.md): Build a card program with Rain in three phases: plan and set up, build, then run your program. - [Set Up Access](https://rain-sandbox-trial.mintlify.app/docs/set-up-access.md): Accept your Dashboard invite, get your API keys, choose the SDK or REST, and authenticate your requests to Rain. - [Connect Webhooks](https://rain-sandbox-trial.mintlify.app/docs/connect-webhooks.md): Set your webhook URL early so you receive Rain events from your first API call. - [Onboard a Cardholder](https://rain-sandbox-trial.mintlify.app/docs/onboard-a-cardholder.md): Submit a KYC or KYB application, track it through the application states, and confirm approval before issuing a card. - [Signing Up a Customer](https://rain-sandbox-trial.mintlify.app/docs/signing-up-a-customer.md): Learn how to submit applications and compliance documentation to enroll customers in your issuing program. - [Managing Users](https://rain-sandbox-trial.mintlify.app/docs/managing-users.md): Learn how to add, deactivate, and delete users in your Corporate or Authorized User programs. - [Issue a Card](https://rain-sandbox-trial.mintlify.app/docs/issuing-cards.md): Create virtual or physical cards for approved users, set limits, activate them, and add them to a mobile wallet. - [Card Management Best Practices](https://rain-sandbox-trial.mintlify.app/docs/card-management-best-practices.md): Recommended practices for locking cards, managing PINs, handling lost or stolen cards, applying spend controls, and staying in sync with Rain. - [Scoped Cards](https://rain-sandbox-trial.mintlify.app/docs/scoped-cards.md): Create spend-limited virtual cards for AI agents and purpose-specific use cases, then retrieve their encrypted details in one request. - [Ship Cards in Bulk](https://rain-sandbox-trial.mintlify.app/docs/bulk-shipping.md): Bulk shipping allows you to group multiple cards into a single shipment for efficient delivery. This reduces shipping costs and simplifies distribution, especially for organizations managing large numbers of cards. - [Manage a Card's PIN](https://rain-sandbox-trial.mintlify.app/docs/managing-a-cards-pin.md): Set, encrypt, and retrieve a card's PIN securely using the PIN management API. - [Set Up Push Provisioning](https://rain-sandbox-trial.mintlify.app/docs/push-provisioning.md): Enable users to add their Rain card to Apple Wallet or Google Wallet directly from your app with push provisioning. - [Card Issuance](https://rain-sandbox-trial.mintlify.app/sdks/card-issuance.md): Issue a virtual or physical card using the Rain SDK, from application submission through approval to card creation. - [Fund the Card](https://rain-sandbox-trial.mintlify.app/docs/managing-collateral.md): Fund a card with collateral. Deposit on-chain for Rain-Managed programs, or fund your Rain account for Partner-Managed programs. - [Rain-Managed Programs](https://rain-sandbox-trial.mintlify.app/docs/rain-managed-programs.md): Rain-Managed programs simplify collateral management by handling smart contract operations for users. Before spending on Rain, customers must deposit collateral into their assigned contracts. - [Partner-Managed Programs](https://rain-sandbox-trial.mintlify.app/docs/partner-managed-programs.md): Before your customers can start spending on Rain, you'll need collateral in your Rain account. Rain deploys a collateral contract per chain for your card program which serves as the reserve balance. - [Supported Chains and Tokens](https://rain-sandbox-trial.mintlify.app/docs/supported-chains-and-tokens.md): Rain is currently live on the following chains with support for the following tokens - [Withdraw Collateral](https://rain-sandbox-trial.mintlify.app/docs/withdraw-collateral.md): Only an admin wallet on the smart contract can withdraw collateral. However, withdrawals can be made to any address. - [Transfer Collateral Accounts](https://rain-sandbox-trial.mintlify.app/docs/transfer-collateral-accounts.md): If a user needs to update their wallet address used to manage a collateral account, they can follow the process below to update the admin addresses. - [Funding & Transfers](https://rain-sandbox-trial.mintlify.app/sdks/funding-and-transfers.md): Deposit collateral, process withdrawals, and check balances using the Rain SDK, for both Rain-managed and Partner-managed programs. - [Access Card Details](https://rain-sandbox-trial.mintlify.app/docs/viewing-encrypted-card-details.md): Securely retrieve and decrypt a virtual card's PAN and CVC on the client using an encrypted session key. - [Manually Implementing Encryption and Decryption](https://rain-sandbox-trial.mintlify.app/docs/manually-implementing-encryption-and-decryption.md) - [Use Encryption Outside a Browser Environment](https://rain-sandbox-trial.mintlify.app/docs/using-encryption-outside-of-a-browser-environment.md): Alternative encryption and decryption implementations for server-side environments using Node.js. - [Simulating Transactions](https://rain-sandbox-trial.mintlify.app/docs/simulating-transactions/overview.md): Test card flows, collateral deposits, and payment routes in sandbox without real funds. - [Card Authorizations](https://rain-sandbox-trial.mintlify.app/docs/simulating-transactions/card-authorizations.md): Simulate card authorization flows, including cross-currency transactions and decline scenarios. - [Authorization Updates](https://rain-sandbox-trial.mintlify.app/docs/simulating-transactions/authorization-updates.md): Simulate authorization updates on existing transactions, such as when a merchant adjusts the amount before settlement. - [Authorization Reversals](https://rain-sandbox-trial.mintlify.app/docs/simulating-transactions/authorization-reversals.md): Simulate reversing an open authorization, either fully (releasing the entire hold) or partially (reducing the authorized amount). - [Settlement](https://rain-sandbox-trial.mintlify.app/docs/simulating-transactions/settlement.md): Simulate settling an open authorization to test merchant fund capture flows. - [Refund](https://rain-sandbox-trial.mintlify.app/docs/simulating-transactions/refund.md): Simulate refunding a settled transaction to test merchant refund flows. - [3DS Challenges](https://rain-sandbox-trial.mintlify.app/docs/simulating-transactions/3ds-challenges.md): Simulate 3DS authentication challenges to test your 3DS Forwarding webhook handling. - [Transfer Transactions](https://rain-sandbox-trial.mintlify.app/docs/simulating-transactions/transfer-transactions.md): Simulate payment route transfers for MXN (SPEI) and USD (ACH/wire) flows. - [Collateral Funding](https://rain-sandbox-trial.mintlify.app/docs/simulating-transactions/collateral-funding.md): Simulate collateral deposits to test your collateral webhook handling. - [Manage Transactions](https://rain-sandbox-trial.mintlify.app/docs/manage-transactions.md): Run the transaction side of your card program: authorization, settlement, overcapture, webhooks, and reporting. - [Authorization](https://rain-sandbox-trial.mintlify.app/docs/authorization.md): Authorization occurs when a user swipes, taps, or inserts their card. The merchant estimates the cost of the goods and/or services and requests authorization for that amount. No money is moved at this stage. Instead, the card issuer places a hold on the funds to ensure they remain available. - [Rain-Managed](https://rain-sandbox-trial.mintlify.app/docs/authorization-rain-managed.md): How Rain validates a Rain-Managed authorization, places a hold, and settles or reverses it. - [Partner-Managed](https://rain-sandbox-trial.mintlify.app/docs/authorization-partner-managed.md): How Rain validates a Partner-Managed authorization and how you approve, decline, or reverse it. - [Authorize Transactions](https://rain-sandbox-trial.mintlify.app/docs/authorizing-transactions.md): Configure default authorization settings and register a webhook to approve or decline transactions in real time. - [Settlement](https://rain-sandbox-trial.mintlify.app/docs/settlement.md): Once both the merchant and the payment network are ready, they proceed with settlement. The merchant notifies the network of the amount to be transferred, and the network settles the balance with the card issuer. The network may adjust the amount the merchant can request based on prior authorization… - [Rain-Managed](https://rain-sandbox-trial.mintlify.app/docs/settlement-rain-managed.md): In the Rain-managed Settlement process, our system handles how authorized transactions are finalized and how funds are moved. Depending on the merchant’s request, settlements can capture the full authorized amount, a partial amount, or even exceed the authorization under certain conditions. In some… - [Partner-Managed](https://rain-sandbox-trial.mintlify.app/docs/settlement-partner-managed.md): In the Partner-managed Settlement process, your system manages authorization holds and posts transactions after receiving settlement webhooks from Rain. Once a merchant completes a settlement, Rain sends a webhook with the final amount. Your system must then release the corresponding authorization h… - [Handle Overcapture](https://rain-sandbox-trial.mintlify.app/docs/handling-overcapture.md): Permitted overcapture limits by merchant category code (MCC) and region - [Managing Transactions](https://rain-sandbox-trial.mintlify.app/docs/viewing-transactions.md): To monitor and manage transactions efficiently, you can retrieve transaction data, add memos, and attach receipts using the available API endpoints. - [Transaction Monitoring](https://rain-sandbox-trial.mintlify.app/sdks/transaction-monitoring.md): List, filter, and manage transactions using the Rain SDK. Build dashboards and reconciliation flows with typed transaction data. - [Transaction Reports](https://rain-sandbox-trial.mintlify.app/docs/reporting-field-descriptions.md): Retrieve your tenant transaction reports, understand each field, and reconcile them against your invoice - [User Balance](https://rain-sandbox-trial.mintlify.app/docs/user-balance.md): Read a user's credit limit, pending and posted charges, balance due, and spending power. Use these metrics for managing user accounts and tracking spending. - [Authorization, Declines & Risk Rules](https://rain-sandbox-trial.mintlify.app/docs/authorization-declines-risk-rules.md): This page outlines the authorization codes, common decline reasons, and risk prevention rules enforced by Rain before and during transaction processing. - [Blocked MCCs and Merchants](https://rain-sandbox-trial.mintlify.app/docs/blocked-mccs-and-merchants.md): Review the merchant category codes and individual merchants that Rain blocks by default. - [3D Secure (3DS)](https://rain-sandbox-trial.mintlify.app/docs/3ds.md): Rain supports three ways to validate cardholders' transactions using 3D Secure (3DS) authentication — Hosted (the default), Out-of-Band (push notifications and biometric authentication), and 3DS Forwarding. This guide explains each option, how to choose between them, and how to implement Forwarding… - [Visa Product Spend Limits](https://rain-sandbox-trial.mintlify.app/docs/visa-product-spend-limits.md): Compare the maximum amount each Visa product can authorize at the point of sale, and how those maximums differ by transaction type. - [Handle Disputes & Refunds](https://rain-sandbox-trial.mintlify.app/docs/transaction-issues-disputes.md): Handle unauthorized transactions, disputes, refunds, chargebacks, pending payments, in-progress authorizations, and terminal declines. - [Handling Refunds](https://rain-sandbox-trial.mintlify.app/docs/handling-refunds.md): How refunds flow through the card network, how funds are credited back, and how on-chain refunds return value to a user's wallet or contract. - [Rewards Overview](https://rain-sandbox-trial.mintlify.app/docs/rewards/overview.md): Learn how Raindrops works and what you need to configure, display, or integrate. - [Configuring Earn Rates](https://rain-sandbox-trial.mintlify.app/docs/rewards/configuring-rates.md): Set earn rates per spending category to control how many points cardholders receive. - [Earning Points](https://rain-sandbox-trial.mintlify.app/docs/rewards/earning.md): Understand how cardholders earn points and how those points move through the system. - [Minted Points](https://rain-sandbox-trial.mintlify.app/docs/rewards/minted.md): Understand where minted points live, how to read balances, and billing impact. - [Redemptions Overview](https://rain-sandbox-trial.mintlify.app/docs/rewards/redemptions/overview.md): Learn how cardholders can redeem their Raindrops for value. - [Statement Credit Redemptions](https://rain-sandbox-trial.mintlify.app/docs/rewards/redemptions/statement-credits.md): Cardholders can apply points as a credit toward their card balance. - [Travel Redemptions](https://rain-sandbox-trial.mintlify.app/docs/rewards/redemptions/travel-redemptions.md): Enable cardholders to book travel using their Raindrops at full face value. - [Rain-Managed](https://rain-sandbox-trial.mintlify.app/docs/rewards/redemptions/travel-redemptions/rain-managed.md): Integrate Rain-Managed travel redemptions, from the redemption flow to the code recipes. - [Partner-Managed](https://rain-sandbox-trial.mintlify.app/docs/rewards/redemptions/travel-redemptions/partner-managed.md): Integrate Partner-Managed travel redemptions, from the redemption flow to the code recipes. - [Custom Redemptions](https://rain-sandbox-trial.mintlify.app/docs/rewards/redemptions/custom-redemptions.md): Record or process a partner-initiated redemption for any reward you define. - [Embedded Wallets Overview](https://rain-sandbox-trial.mintlify.app/sdks/embedded-wallets-overview.md): Offer non-custodial embedded wallets in your Android or iOS app with a modular SDK: a vendor-free core plus adapters for Turnkey, Portal, and Privy. - [Common Flows](https://rain-sandbox-trial.mintlify.app/sdks/embedded-wallets-common-flows.md): The full integration path from wallet setup to card spend, and when to call from your backend versus your app with a Client Session Token. - [Authentication](https://rain-sandbox-trial.mintlify.app/sdks/embedded-wallets-authentication.md): Authenticate embedded wallets with Turnkey, Portal, or Privy, and call the Rain API with a Client Session Token: wallet first, then the Rain API. - [Set Up a Wallet](https://rain-sandbox-trial.mintlify.app/sdks/embedded-wallets-setup.md): Build the Rain Client SDK with a wallet provider, resolve a wallet-bound client, and read the wallet address. - [Create the User & KYC](https://rain-sandbox-trial.mintlify.app/sdks/embedded-wallets-onboarding.md): Create a Rain user application with the wallet address and complete KYC — the onboarding step after you create the embedded wallet. - [Fund the Wallet](https://rain-sandbox-trial.mintlify.app/sdks/embedded-wallets-funding.md): Read a user's collateral contract and confirm their card's spending power after funding it on-chain. - [Balances & Transactions](https://rain-sandbox-trial.mintlify.app/sdks/embedded-wallets-balances-and-transactions.md): Reference for the Balance and WalletTransaction types, send methods, and error codes the embedded wallet SDK exposes. - [Arbitrary Sends & DeFi](https://rain-sandbox-trial.mintlify.app/sdks/embedded-wallets-defi.md): Send tokens anywhere from the embedded wallet, and use it with DeFi and other dapps by driving the underlying wallet provider. - [Withdraw Collateral](https://rain-sandbox-trial.mintlify.app/sdks/embedded-wallets-withdraw-collateral.md): Fetch a user's collateral contract and admin withdrawal signature, then sign and submit the withdrawal on-chain. - [Error Reference](https://rain-sandbox-trial.mintlify.app/sdks/embedded-wallets-error-reference.md): Complete reference for Rain Client SDK error codes on Android and iOS, with handling patterns and troubleshooting guidance. - [How Money Movement Works](https://rain-sandbox-trial.mintlify.app/docs/how-money-movement-works.md): Learn how Rain money movement works and the two ways to move funds: payment routes and quotes and transfers. - [Payment Accounts](https://rain-sandbox-trial.mintlify.app/docs/payment-accounts.md): Register an external bank account as a reusable payment account, the funding source Rain uses when you create a payment route. - [Payment Account Details by Currency & Rail](https://rain-sandbox-trial.mintlify.app/docs/payment-account-details.md): Required bank-account fields for creating a payment account, per currency and rail. - [Payment Routes](https://rain-sandbox-trial.mintlify.app/docs/payment-routes.md): Set up a reusable onramp or offramp pathway and get the virtual account or deposit address a sender uses to fund it. - [Sender Fees](https://rain-sandbox-trial.mintlify.app/docs/sender-fees.md): Configure custom fees on transfers and payment routes to manage your revenue and subsidize user costs. - [Onramps](https://rain-sandbox-trial.mintlify.app/docs/onramps.md): Enable users to onramp fiat into crypto using payment routes with virtual accounts for ACH and wire transfers. - [MXN Onramps](https://rain-sandbox-trial.mintlify.app/docs/mxn-onramps.md): Enable users to onramp MXN to crypto using payment routes with SPEI transfers. - [Onramp to Rain Contract](https://rain-sandbox-trial.mintlify.app/docs/onramps-rain-contract.md): Enable virtual accounts for users to onramp fiat funds into their Rain smart contracts using ACH, RTP, and wire transfers. - [Offramps](https://rain-sandbox-trial.mintlify.app/docs/offramps.md): Enable users to offramp crypto to fiat using payment routes with payment accounts for ACH and wire transfers. - [MXN Offramps](https://rain-sandbox-trial.mintlify.app/docs/mxn-offramps.md): Enable users to offramp crypto to MXN using payment routes with SPEI transfers. - [Exchange Rates](https://rain-sandbox-trial.mintlify.app/docs/exchange-rates.md): Preview exchange rates and estimated destination amounts before creating payment accounts or transfers. - [Offramps with Transfers](https://rain-sandbox-trial.mintlify.app/docs/transfers.md): Enable users to offramp crypto to international fiat currencies using quotes and transfers for cross-border payments. - [Managing Subtenants](https://rain-sandbox-trial.mintlify.app/docs/managing-subtenants.md): Create subtenants, make API requests on their behalf, and move users and companies between them. - [Ledgering System](https://rain-sandbox-trial.mintlify.app/docs/ledgering-system.md): Understand how Rain tracks financial movements using double-entry accounting with balanced ledger entries across accounts and books. - [Ledgering Best Practices](https://rain-sandbox-trial.mintlify.app/docs/ledgering-best-practices.md): Follow these best practices to spot and prevent common refund fraud when you ledger transactions yourself. - [Smart Contract Wallets](https://rain-sandbox-trial.mintlify.app/docs/smart-contract-wallets.md) - [API Playground](https://rain-sandbox-trial.mintlify.app/api-playground.md): Explore Rain API flows interactively: configure a scenario, copy runnable cURL commands, and generate implementation prompts. - [Rain API](https://rain-sandbox-trial.mintlify.app/reference/rain-api.md) - [Authenticating with the API](https://rain-sandbox-trial.mintlify.app/reference/authenticating-with-the-api.md): Authenticate Rain API requests with an API key, including key roles, custom permissions, and IP restrictions. - [Idempotency for APIs](https://rain-sandbox-trial.mintlify.app/reference/idempotency.md): Use an Idempotency-Key header to safely retry Rain API requests without duplicating operations. - [Create a consumer application for a user](https://rain-sandbox-trial.mintlify.app/reference/applications/create-a-consumer-application-for-a-user.md): Creates a consumer application for a user. Can be used directly without calling the initiate endpoint first. Identity verification is handled through Sumsub share token, Persona share token, or by providing personal information through the API. The application goes through KYC review once created. - [Initiate a consumer application for a user](https://rain-sandbox-trial.mintlify.app/reference/applications/initiate-a-consumer-application-for-a-user.md): Initiates a consumer application for a user. Use this endpoint when you plan to upload existing identity documents - it creates a user record and returns completion links for document verification. If you're not uploading documents, skip this and use the Create endpoint directly. - [Update a user's consumer application](https://rain-sandbox-trial.mintlify.app/reference/applications/update-a-users-consumer-application.md) - [Get the status of a user's consumer application](https://rain-sandbox-trial.mintlify.app/reference/applications/get-the-status-of-a-users-consumer-application.md) - [Upload a document to support a user's consumer application](https://rain-sandbox-trial.mintlify.app/reference/applications/upload-a-document-to-support-a-users-consumer-application.md) - [Create a corporate application for a company](https://rain-sandbox-trial.mintlify.app/reference/applications/create-a-corporate-application-for-a-company.md) - [Update a company's corporate application](https://rain-sandbox-trial.mintlify.app/reference/applications/update-a-companys-corporate-application.md) - [Get the status of a company's corporate application](https://rain-sandbox-trial.mintlify.app/reference/applications/get-the-status-of-a-companys-corporate-application.md) - [Upload a document to support a company's corporate application](https://rain-sandbox-trial.mintlify.app/reference/applications/upload-a-document-to-support-a-companys-corporate-application.md) - [Update a company UBO's application](https://rain-sandbox-trial.mintlify.app/reference/applications/update-a-company-ubos-application.md) - [Upload a UBO's document to support a company's corporate application](https://rain-sandbox-trial.mintlify.app/reference/applications/upload-a-ubos-document-to-support-a-companys-corporate-application.md) - [Get the status of a user's consumer application by external id](https://rain-sandbox-trial.mintlify.app/reference/applications/get-the-status-of-a-users-consumer-application-by-external-id.md): Retrieves a user's consumer application using the tenant-defined external identifier. The externalId must have been set when creating or updating the user. - [Get the status of a company's corporate application by external id](https://rain-sandbox-trial.mintlify.app/reference/applications/get-the-status-of-a-companys-corporate-application-by-external-id.md): Retrieves a company's corporate application using the tenant-defined external identifier. The externalId must have been set when creating or updating the company. - [Add a new UBO to a company application](https://rain-sandbox-trial.mintlify.app/reference/applications/add-a-new-ubo-to-a-company-application.md) - [Get all companies](https://rain-sandbox-trial.mintlify.app/reference/companies/get-all-companies.md) - [Get a company by id](https://rain-sandbox-trial.mintlify.app/reference/companies/get-a-company-by-id.md) - [Update a company](https://rain-sandbox-trial.mintlify.app/reference/companies/update-a-company.md) - [Charge a company a custom fee](https://rain-sandbox-trial.mintlify.app/reference/companies/charge-a-company-a-custom-fee.md) - [Get a company by external id](https://rain-sandbox-trial.mintlify.app/reference/companies/get-a-company-by-external-id.md): Retrieves a company using the tenant-defined external identifier. The externalId must have been set when creating or updating the company. - [Get all users](https://rain-sandbox-trial.mintlify.app/reference/users/get-all-users.md) - [Create a user in a company](https://rain-sandbox-trial.mintlify.app/reference/users/create-a-user-in-a-company.md) - [Get a user by id](https://rain-sandbox-trial.mintlify.app/reference/users/get-a-user-by-id.md) - [Update a user](https://rain-sandbox-trial.mintlify.app/reference/users/update-a-user.md) - [Delete a user](https://rain-sandbox-trial.mintlify.app/reference/users/delete-a-user.md) - [Charge a user a custom fee](https://rain-sandbox-trial.mintlify.app/reference/users/charge-a-user-a-custom-fee.md) - [Get a user by external id](https://rain-sandbox-trial.mintlify.app/reference/users/get-a-user-by-external-id.md): Retrieves a user using the tenant-defined external identifier. The externalId must have been set when creating or updating the user. - [Create a subtenant](https://rain-sandbox-trial.mintlify.app/reference/subtenants/create-a-subtenant.md) - [Get all subtenants](https://rain-sandbox-trial.mintlify.app/reference/subtenants/get-all-subtenants.md) - [Get a subtenant by its id](https://rain-sandbox-trial.mintlify.app/reference/subtenants/get-a-subtenant-by-its-id.md) - [Update a subtenant](https://rain-sandbox-trial.mintlify.app/reference/subtenants/update-a-subtenant.md) - [Moving teams between subtenants](https://rain-sandbox-trial.mintlify.app/reference/subtenants/update-team-subtenant.md): Move a team and all of its associated entities (users, transactions, etc.) to a different subtenant - [Move a user to a subtenant](https://rain-sandbox-trial.mintlify.app/reference/subtenants/move-a-user-to-a-subtenant.md): Move a consumer user - along with their cards, transactions, and other related data - to one of your subtenants. - [Move a company to a subtenant](https://rain-sandbox-trial.mintlify.app/reference/subtenants/move-a-company-to-a-subtenant.md): Move a company - along with all of its users, cards, transactions, and other related data - to one of your subtenants. - [Create a card for a user](https://rain-sandbox-trial.mintlify.app/reference/cards/create-a-card-for-a-user.md): Creates a card for a user. For physical cards, the user's first name and last name must contain only latin characters (A-Z, a-z, spaces and hyphens) without accent marks. - [Create a scoped card for a user](https://rain-sandbox-trial.mintlify.app/reference/cards/create-a-scoped-card-for-a-user.md): Creates a virtual card scoped to a single transaction, optimized for AI agent usage. This endpoint is protected and requires tenant-level access—contact Rain to enable it during onboarding. - [Get all the cards for a user or company](https://rain-sandbox-trial.mintlify.app/reference/cards/get-all-the-cards-for-a-user-or-company.md) - [Get a card by its id](https://rain-sandbox-trial.mintlify.app/reference/cards/get-a-card-by-its-id.md) - [Update a card](https://rain-sandbox-trial.mintlify.app/reference/cards/update-a-card.md) - [Get a card's encrypted data](https://rain-sandbox-trial.mintlify.app/reference/cards/get-a-cards-encrypted-data.md) - [Get a card's PIN](https://rain-sandbox-trial.mintlify.app/reference/cards/get-a-cards-pin.md) - [Update a card's PIN.](https://rain-sandbox-trial.mintlify.app/reference/cards/update-a-cards-pin.md) - [Get processor details of a card](https://rain-sandbox-trial.mintlify.app/reference/cards/get-processor-details-of-a-card.md): Retrieve the processor card ID for a specific card. - [Get a tenant's credit balances](https://rain-sandbox-trial.mintlify.app/reference/balances/get-a-tenants-credit-balances.md) - [Get a company's credit balances](https://rain-sandbox-trial.mintlify.app/reference/balances/get-a-companys-credit-balances.md) - [Get a users's credit balances](https://rain-sandbox-trial.mintlify.app/reference/balances/get-a-userss-credit-balances.md) - [Create a smart contract for a company](https://rain-sandbox-trial.mintlify.app/reference/contracts/create-a-smart-contract-for-a-company.md) - [Create a smart contract for a user](https://rain-sandbox-trial.mintlify.app/reference/contracts/create-a-smart-contract-for-a-user.md) - [Get smart contract information for a company](https://rain-sandbox-trial.mintlify.app/reference/contracts/get-smart-contract-information-for-a-company.md) - [Get smart contract information for a user](https://rain-sandbox-trial.mintlify.app/reference/contracts/get-smart-contract-information-for-a-user.md) - [Update a smart contract](https://rain-sandbox-trial.mintlify.app/reference/contracts/update-a-smart-contract.md) - [Get all transactions](https://rain-sandbox-trial.mintlify.app/reference/transactions/get-all-transactions.md) - [Get a transaction by its id](https://rain-sandbox-trial.mintlify.app/reference/transactions/get-a-transaction-by-its-id.md) - [Update a transaction](https://rain-sandbox-trial.mintlify.app/reference/transactions/update-a-transaction.md) - [Get a transaction's receipt](https://rain-sandbox-trial.mintlify.app/reference/transactions/get-a-transactions-receipt.md) - [Upload a transaction's receipt](https://rain-sandbox-trial.mintlify.app/reference/transactions/upload-a-transactions-receipt.md) - [Create a dispute for a transaction](https://rain-sandbox-trial.mintlify.app/reference/disputes/create-a-dispute-for-a-transaction.md) - [Get all disputes](https://rain-sandbox-trial.mintlify.app/reference/disputes/get-all-disputes.md) - [Get a dispute by its id](https://rain-sandbox-trial.mintlify.app/reference/disputes/get-a-dispute-by-its-id.md) - [Update a dispute](https://rain-sandbox-trial.mintlify.app/reference/disputes/update-a-dispute.md) - [Upload a file as evidence for a dispute](https://rain-sandbox-trial.mintlify.app/reference/disputes/upload-a-file-as-evidence-for-a-dispute.md) - [Get a dispute's file evidence](https://rain-sandbox-trial.mintlify.app/reference/disputes/get-a-disputes-file-evidence.md) - [List a dispute's attachments](https://rain-sandbox-trial.mintlify.app/reference/disputes/list-dispute-attachments.md): Returns all attachments for a dispute. For disputes that only have legacy evidence (uploaded before multi-attachment support), a single virtual attachment with ID "legacy" is returned. - [Upload an attachment for a dispute](https://rain-sandbox-trial.mintlify.app/reference/disputes/upload-dispute-attachment.md): Upload a file as evidence for a dispute. Maximum file size is 20MB. Each dispute can have up to 20 attachments. - [Download a dispute attachment](https://rain-sandbox-trial.mintlify.app/reference/disputes/get-dispute-attachment.md): Download a specific attachment file. For disputes with legacy evidence, use "legacy" as the attachmentId. - [Delete a dispute attachment](https://rain-sandbox-trial.mintlify.app/reference/disputes/delete-dispute-attachment.md): Delete a specific attachment from a dispute. - [Create a bulk shipping group](https://rain-sandbox-trial.mintlify.app/reference/shipping/create-a-bulk-shipping-group.md) - [Get all bulk shipping groups](https://rain-sandbox-trial.mintlify.app/reference/shipping/get-all-bulk-shipping-groups.md) - [Get a bulk shipping group](https://rain-sandbox-trial.mintlify.app/reference/shipping/get-a-bulk-shipping-group.md) - [Validate an address for shipping](https://rain-sandbox-trial.mintlify.app/reference/shipping/validate-an-address-for-shipping.md): Validates a shipping address using Google Address Validation API with fallback to Google Geocoding API. Returns validation result with confidence level. - [Simulate a card authorization](https://rain-sandbox-trial.mintlify.app/reference/simulate/simulate-a-card-authorization.md): Triggers a card authorization against a real card, exactly as if a merchant had initiated it. Use this to test authorization flows, webhook handling, and decline scenarios end-to-end. - [Update a card authorization](https://rain-sandbox-trial.mintlify.app/reference/simulate/update-a-card-authorization.md): Simulates an authorization update on an existing transaction — for example, when a merchant adjusts the amount before settlement. This simulates an ISO 0120 authorization update message. - [Settle a card authorization](https://rain-sandbox-trial.mintlify.app/reference/simulate/settle-a-card-authorization.md): Simulates settling an open authorization — for example, when a merchant captures funds after the customer has left. This converts the authorization hold into a posted transaction. - [Reverse a card authorization](https://rain-sandbox-trial.mintlify.app/reference/simulate/reverse-a-card-authorization.md): Simulates reversing an open authorization — for example, when a merchant cancels a transaction before settlement or reduces the authorized amount. Reversals release the hold on the cardholder's balance without creating a posted transaction. - [Refund a settled transaction](https://rain-sandbox-trial.mintlify.app/reference/simulate/refund-a-settled-transaction.md): Simulates refunding a settled transaction — for example, when a merchant issues a refund after the original purchase was captured. This creates a credit back to the cardholder. - [Simulate a 3DS challenge](https://rain-sandbox-trial.mintlify.app/reference/simulate/simulate-a-3ds-challenge.md): Triggers a 3DS authentication challenge against a card to test your 3DS Forwarding webhook integration. The endpoint generates a one-time password (OTP), sends a `challenge.requested` webhook to your configured endpoint, and returns the challenge credentials. - [Simulate a payment route](https://rain-sandbox-trial.mintlify.app/reference/simulate/simulate-a-payment-route.md): Triggers a transfer transaction against a configured payment route, exactly as if a real deposit had triggered it. Use this to test the transfer and webhook lifecycle end-to-end. - [Simulate collateral funding](https://rain-sandbox-trial.mintlify.app/reference/simulate/simulate-collateral-funding.md): Triggers a collateral deposit to a smart contract, exactly as if a real on-chain transfer had occurred. Use this to test your collateral webhook handling and balance updates without executing actual blockchain transactions. - [Simulate raindrops minting](https://rain-sandbox-trial.mintlify.app/reference/raindrops/simulate-raindrops-minting.md): Mints a tenant's pending raindrops on demand, instead of waiting for the scheduled daily liquidation job. It settles pending transactions and creates mint jobs per team. Use this to test the rewards minting flow end to end. - [Create a key](https://rain-sandbox-trial.mintlify.app/reference/keys/create-a-key.md) - [Delete a key](https://rain-sandbox-trial.mintlify.app/reference/keys/delete-a-key.md) - [Get a tenant's report](https://rain-sandbox-trial.mintlify.app/reference/reports/get-a-tenants-report.md) - [Get a tenant's monthly report](https://rain-sandbox-trial.mintlify.app/reference/reports/get-a-tenants-monthly-report.md): Retrieves the monthly report for the specified year and month - [Download a user or company's monthly statement](https://rain-sandbox-trial.mintlify.app/reference/reports/get-a-monthly-statement.md): Downloads a user or company's monthly statement as a PDF for the statement period identified by `year` and `month`. The `year` and `month` identify the month the statement covers. The user or company must belong to the authenticated tenant. - [Download a user or company's monthly statement](https://rain-sandbox-trial.mintlify.app/reference/statements/download-a-user-or-companys-monthly-statement.md): Downloads a user or company's monthly statement as a PDF for the statement period identified by `year` and `month`. The `year` and `month` identify the month the statement covers. The user or company must belong to the authenticated tenant. - [Get all webhooks](https://rain-sandbox-trial.mintlify.app/reference/webhooks/get-all-webhooks.md) - [Get a webhook by its id](https://rain-sandbox-trial.mintlify.app/reference/webhooks/get-a-webhook-by-its-id.md) - [Get webhook configuration](https://rain-sandbox-trial.mintlify.app/reference/webhooks/get-webhook-configuration.md): Retrieves the current webhook configuration for the tenant. The configuration controls webhook behavior using pattern-based rules that match webhook event types (e.g., 'card.*', 'transaction.created.*'). Each pattern can specify a version. - [Update webhook configuration](https://rain-sandbox-trial.mintlify.app/reference/webhooks/update-webhook-configuration.md): Replaces the entire webhook configuration for the tenant. The configuration uses pattern-based rules to control webhook behavior. Patterns can use wildcards (e.g., 'card.*' matches all card events, 'transaction.created.*' matches all transaction created events). Each pattern can specify a version. - [Patch webhook configuration](https://rain-sandbox-trial.mintlify.app/reference/webhooks/patch-webhook-configuration.md): Partially updates the webhook configuration for the tenant. Only the provided patterns will be updated or removed. Set a pattern's value to null to remove it from the configuration. Existing patterns not included in the request body will remain unchanged. - [Create a secondary signing API key for webhook signatures](https://rain-sandbox-trial.mintlify.app/reference/webhooks/create-a-secondary-signing-api-key-for-webhook-signatures.md): Creates a new secondary signing API key that can be used to sign webhook requests. This endpoint is used for API key rotation - the secondary key will be used alongside the primary key to sign webhooks, allowing you to update your systems before promoting the secondary key to primary. - [Promote the secondary signing API key to primary](https://rain-sandbox-trial.mintlify.app/reference/webhooks/promote-the-secondary-signing-api-key-to-primary.md): Promotes the secondary signing API key to become the new primary signing API key. The old primary key will be deleted. This completes the API key rotation process. - [Get a user's points balance](https://rain-sandbox-trial.mintlify.app/reference/raindrops/get-a-users-points-balance.md): Returns a user's Raindrops balance. Response shape depends on the tenant points mode: `RAIN_MANAGED` returns the full balance breakdown; `PARTNER_OFFCHAIN` returns only `availablePoints` from Rain's off-chain ledger; `PARTNER_ONCHAIN` returns `405` because the partner is canonical for user balances. - [Get a user's points activity](https://rain-sandbox-trial.mintlify.app/reference/raindrops/get-a-users-points-activity.md): Returns a paginated list of the user's rewards activity, including earned and redeemed items. The response includes `items` only; it does not include `total`, `hasMore`, or cursor metadata. `PENDING` and `FAILED` travel-portal redemption rows are hidden because they represent unconfirmed or rejected… - [Create a points adjustment](https://rain-sandbox-trial.mintlify.app/reference/raindrops/create-a-points-adjustment.md): Creates a non-card-spend points adjustment for a user. This endpoint is not direct on-chain minting. For `RAIN_MANAGED`, the adjustment is queued for the normal minting flow. For `PARTNER_OFFCHAIN`, Rain records the adjustment in the off-chain rewards ledger. `PARTNER_ONCHAIN` tenants must manage ad… - [Redeem points for statement credit](https://rain-sandbox-trial.mintlify.app/reference/raindrops/redeem-points-for-statement-credit.md): Records a statement-credit redemption for `PARTNER_OFFCHAIN` tenants only. Rain checks and debits the off-chain rewards balance and records the points deduction. Rain does not derive or return a dollar value; the partner decides what the redeemed points are worth and applies the cardholder credit in… - [Create a custom redemption](https://rain-sandbox-trial.mintlify.app/reference/raindrops/create-a-custom-redemption.md): Creates a partner-initiated custom redemption with the partner-supplied reason. Behavior depends on the tenant points mode. `PARTNER_OFFCHAIN` checks and debits the off-chain rewards balance and records a completed `CUSTOM` redemption with no on-chain burn and no webhook, returning `COMPLETED`. `RAI… - [Create a travel redemption](https://rain-sandbox-trial.mintlify.app/reference/raindrops/create-a-travel-redemption.md): Creates a travel redemption for a booking. `amount` is a positive integer point string where 1 point = 1 cent; `totalBookingAmountCents` is the total booking price in cents. Lifecycle depends on points mode. `RAIN_MANAGED` reserves the redemption, sends `raindrop_redemption.created`, and returns `20… - [Get available points for travel redemptions](https://rain-sandbox-trial.mintlify.app/reference/raindrops/get-available-points-for-travel-redemptions.md): Returns the user's available points for travel redemptions. `RAIN_MANAGED` uses on-chain balance minus active travel holds. `PARTNER_OFFCHAIN` uses Rain's off-chain rewards ledger. `PARTNER_ONCHAIN` dispatches a synchronous `raindrop_balance.requested` webhook to the partner and returns the partner'… - [Refund a travel redemption](https://rain-sandbox-trial.mintlify.app/reference/raindrops/refund-a-travel-redemption.md): Refunds a completed travel redemption and marks it `REFUNDED`. For `PARTNER_ONCHAIN`, Rain only updates redemption status and sends `raindrop_redemption.refunded`; the partner updates the user balance in its own system. For `PARTNER_OFFCHAIN` and rain-managed programs, Rain records the refund balanc… - [Initiate a payment for a company](https://rain-sandbox-trial.mintlify.app/reference/payments/initiate-a-payment-for-a-company.md) - [Initiate a payment for a user](https://rain-sandbox-trial.mintlify.app/reference/payments/initiate-a-payment-for-a-user.md) - [Initiate a payment for an authorized user tenant](https://rain-sandbox-trial.mintlify.app/reference/payments/initiate-a-payment-for-an-authorized-user-tenant.md) - [Get payment signature for a company](https://rain-sandbox-trial.mintlify.app/reference/signatures/get-payment-signature-for-a-company.md) - [Get payment signature for a user](https://rain-sandbox-trial.mintlify.app/reference/signatures/get-payment-signature-for-a-user.md) - [Get payment signature for an authorized user tenant](https://rain-sandbox-trial.mintlify.app/reference/signatures/get-payment-signature-for-an-authorized-user-tenant.md) - [Get withdrawal signature for a company](https://rain-sandbox-trial.mintlify.app/reference/signatures/get-withdrawal-signature-for-a-company.md) - [Get withdrawal signature for a user](https://rain-sandbox-trial.mintlify.app/reference/signatures/get-withdrawal-signature-for-a-user.md) - [Get withdrawal signature for an authorized user tenant](https://rain-sandbox-trial.mintlify.app/reference/signatures/get-withdrawal-signature-for-an-authorized-user-tenant.md) - [Get withdrawal signature for a tenant](https://rain-sandbox-trial.mintlify.app/reference/signatures/get-withdrawal-signature-for-a-tenant.md) - [Create a payment route](https://rain-sandbox-trial.mintlify.app/reference/paymentroutes/create-a-payment-route.md): Creates a payment route that automatically processes incoming funds. Payment routes can route funds from fiat to on-chain or from on-chain to fiat. - [Get all payment routes](https://rain-sandbox-trial.mintlify.app/reference/paymentroutes/get-all-payment-routes.md): Returns all payment routes for the tenant, optionally filtered by team. - [Get a payment route](https://rain-sandbox-trial.mintlify.app/reference/paymentroutes/get-a-payment-route.md): Returns a single payment route by ID. - [Delete a payment route](https://rain-sandbox-trial.mintlify.app/reference/paymentroutes/delete-a-payment-route.md): Deletes a payment route by ID. - [Create a payment account](https://rain-sandbox-trial.mintlify.app/reference/paymentaccounts/create-a-payment-account.md): Creates a payment account that can be used as a destination for payment routes and transfers. Supports external fiat accounts. - [Get all payment accounts](https://rain-sandbox-trial.mintlify.app/reference/paymentaccounts/get-all-payment-accounts.md): Returns all payment accounts for the tenant, optionally filtered by team. - [Get a payment account](https://rain-sandbox-trial.mintlify.app/reference/paymentaccounts/get-a-payment-account.md): Returns a single payment account by ID. - [Delete a payment account](https://rain-sandbox-trial.mintlify.app/reference/paymentaccounts/delete-a-payment-account.md): Deletes a payment account by ID. - [Create a quote](https://rain-sandbox-trial.mintlify.app/reference/quotes/create-a-quote.md): Creates a quote for a transfer with an exchange rate and fee breakdown. Quotes expire after a short period (typically 15 minutes). - [Create a transfer](https://rain-sandbox-trial.mintlify.app/reference/transfers/create-a-transfer.md): Creates a transfer from a quote. The response includes a deposit address where the user should send crypto. The transfer expires if funds are not deposited before the expiration time. - [How Webhooks Work](https://rain-sandbox-trial.mintlify.app/docs/webhooks.md): How Rain webhooks work, how to set them up, and where to find the events available by category. - [Set Up Webhooks](https://rain-sandbox-trial.mintlify.app/docs/set-up-webhooks.md): Register your endpoint, secure it with signature verification, and learn the headers Rain sends with every webhook. - [Webhook Delivery](https://rain-sandbox-trial.mintlify.app/docs/webhook-delivery.md): How Rain delivers webhooks: the event lifecycle, responding to events, retries and idempotency, ordering, and versioning. - [Webhook Event Flow](https://rain-sandbox-trial.mintlify.app/docs/webhook-event-flow.md): A single swimlane showing the main card-program webhooks at the point they fire, from onboarding through spend, disputes, and reporting. - [Event Catalog](https://rain-sandbox-trial.mintlify.app/docs/event-catalog.md): Look up any Rain webhook event to see its category, whether it needs a response, and what triggers it. - [Transaction Events](https://rain-sandbox-trial.mintlify.app/docs/transaction.md): Track spend, collateral, payment, and transfer events across their full lifecycle. - [Authorization Method Codes](https://rain-sandbox-trial.mintlify.app/docs/list-of-authorizationmethod-codes.md): Reference for the authorizationMethod values on transaction webhooks, mapping each code to what it represents. - [Decline Reasons](https://rain-sandbox-trial.mintlify.app/docs/decline-reasons.md): What the declinedReason field on transaction webhooks means, and what to do about each common decline. - [Sample Webhooks](https://rain-sandbox-trial.mintlify.app/docs/sample-webhooks.md): Worked examples of how a spend transaction moves through webhooks, including partial, over, multi, and force captures and refunds. - [Cards & Authentication](https://rain-sandbox-trial.mintlify.app/docs/card.md): React to card lifecycle changes, digital wallet decisions, and 3D Secure challenges as they happen on a cardholder's account. - [Identity & Compliance](https://rain-sandbox-trial.mintlify.app/docs/identity-and-compliance.md): Keep your onboarding and compliance state in sync as users and companies move through approval, information requests, and account locks. - [Disputes](https://rain-sandbox-trial.mintlify.app/docs/disputes.md): Follow the dispute lifecycle: creation, status updates, evidence requests, and chargebacks. - [Account & Reports](https://rain-sandbox-trial.mintlify.app/docs/account-and-reports.md): Know when a collateral contract is deployed on-chain and when daily BIN report files are ready to fetch. - [Payment Routes](https://rain-sandbox-trial.mintlify.app/docs/paymentRoute.md): React to payment route activation and incoming micro deposits in real time instead of polling, so you can share deposit details the moment a route is ready and confirm account verification deposits as they arrive. - [Raindrops Rewards](https://rain-sandbox-trial.mintlify.app/docs/raindrops.md): Track Raindrops balance requests and the travel redemption lifecycle so you can keep user point balances in sync with your platform. - [API](https://rain-sandbox-trial.mintlify.app/changelog/api.md) - [3ds.notification](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/3ds/notification.md) - [card.created](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/card/created.md) - [card.notification](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/card/notification.md) - [card.updated](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/card/updated.md) - [company.updated](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/company/updated.md) - [contract.created](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/contract/created.md) - [dispute.created](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/dispute/created.md) - [dispute.updated](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/dispute/updated.md) - [dispute.evidenceRequested](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/dispute/evidenceRequested.md) - [dispute.chargebackCreated](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/dispute/chargebackCreated.md) - [onchainRefund.created](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/onchainRefund/created.md): Webhook triggered when an on-chain refund is created and processing begins - [onchainRefund.completed](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/onchainRefund/completed.md): Changelog for the onchainRefund.completed webhook, sent when an on-chain refund settles on-chain and returns stablecoin to the cardholder's destination. - [raindrop_balance.requested](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/raindrop_balance/requested.md) - [raindrop_redemption.created](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/raindrop_redemption/created.md) - [raindrop_redemption.completed](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/raindrop_redemption/completed.md) - [raindrop_redemption.refunded](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/raindrop_redemption/refunded.md) - [report.created](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/report/created.md) - [transaction.created](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/transaction/collateral/created.md) - [transaction.created](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/transaction/spend/created.md) - [transaction.requested](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/transaction/spend/requested.md) - [transaction.updated](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/transaction/spend/updated.md) - [transaction.completed](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/transaction/spend/completed.md) - [transaction.created](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/transaction/payment/created.md) - [transaction.completed](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/transaction/payment/completed.md) - [transactionReward.created](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/transactionReward/created.md): Webhook triggered when a Raindrops reward is created for a transaction - [transactionTransfer.created](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/transactionTransfer/created.md) - [transactionTransfer.updated](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/transactionTransfer/updated.md) - [transactionTransfer.completed](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/transactionTransfer/completed.md) - [paymentRoute.created](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/paymentRoute/created.md) - [user.updated](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v1/user/updated.md) - [challenge.requested](https://rain-sandbox-trial.mintlify.app/changelog/webhooks/v2/challenge/requested.md) - [Smart Contracts](https://rain-sandbox-trial.mintlify.app/changelog/contracts.md) ## OpenAPI Specs - [openapi](/openapi.json)