# Grid API Documentation ## Docs - [Create a new API token](https://ramps-feat-building-with-ai.mintlify.app/api-reference/api-tokens/create-a-new-api-token.md): Create a new API token to access the Grid APIs. - [Delete API token by ID](https://ramps-feat-building-with-ai.mintlify.app/api-reference/api-tokens/delete-api-token-by-id.md): Delete an API token by their system-generated ID - [Get API token by ID](https://ramps-feat-building-with-ai.mintlify.app/api-reference/api-tokens/get-api-token-by-id.md): Retrieve an API token by their system-generated ID - [List tokens](https://ramps-feat-building-with-ai.mintlify.app/api-reference/api-tokens/list-tokens.md): Retrieve a list of API tokens with optional filtering parameters. Returns all tokens that match the specified filters. If no filters are provided, returns all tokens (paginated). - [Authentication](https://ramps-feat-building-with-ai.mintlify.app/api-reference/authentication.md) - [List available Counterparty Providers](https://ramps-feat-building-with-ai.mintlify.app/api-reference/available-uma-providers/list-available-counterparty-providers.md): Retrieve a list of available Counterparty Providers. The response includes basic information about each provider, such as its UMA address, name, and supported currencies. - [Create a transfer quote](https://ramps-feat-building-with-ai.mintlify.app/api-reference/cross-currency-transfers/create-a-transfer-quote.md): Generate a quote for a cross-currency transfer between any combination of accounts and UMA addresses. This endpoint handles currency exchange and provides the necessary instructions to execute the transfer. **Transfer Types Supported:** - **Account to Account**: Transfer between internal/external accounts with currency exchange. - **Account to UMA**: Transfer from an internal account to an UMA address. - **UMA to Account or UMA to UMA**: This transfer type will only be funded by payment instructions, not from an internal account. **Key Features:** - **Flexible Amount Locking**: Always specify whether you want to lock the sending amount or receiving amount - **Currency Exchange**: Handles all cross-currency transfers with real-time exchange rates - **Payment Instructions**: For UMA or customer ID sources, provides banking details needed for execution **Important:** If you are transferring funds in the same currency (no exchange required), use the `/transfer-in` or `/transfer-out` endpoints instead. **Sandbox Testing:** When using the `externalAccountDetails` destination type in sandbox mode, use account number patterns ending in specific digits to test different scenarios. These patterns should be used with the primary alias, address, or identifier of whatever account type you're testing. For example, the US account number, a CLABE, an IBAN, a spark wallet address, etc. The failure patterns are: - Account numbers ending in **002**: Insufficient funds (transfer-in will fail) - Account numbers ending in **003**: Account closed/invalid (transfers will fail) - Account numbers ending in **004**: Transfer rejected (bank rejects the transfer) - Account numbers ending in **005**: Timeout/delayed failure (stays pending ~30s, then fails) - Any other account number: Success (transfers complete normally) - [Execute a quote](https://ramps-feat-building-with-ai.mintlify.app/api-reference/cross-currency-transfers/execute-a-quote.md): Execute a quote by its ID. This endpoint initiates the transfer between the source and destination accounts. This endpoint can only be used for quotes with a `source` which is either an internal account, or has direct pull functionality (e.g. ACH pull with an external account). Once executed, the quote cannot be cancelled and the transfer will be processed. - [Get quote by ID](https://ramps-feat-building-with-ai.mintlify.app/api-reference/cross-currency-transfers/get-quote-by-id.md): Retrieve a quote by its ID. If the quote has been settled, it will include the transaction ID. This allows clients to track the full lifecycle of a payment from quote creation to settlement. - [List transfer quotes](https://ramps-feat-building-with-ai.mintlify.app/api-reference/cross-currency-transfers/list-transfer-quotes.md): Retrieve a list of transfer quotes with optional filtering parameters. Returns all quotes that match the specified filters. If no filters are provided, returns all quotes (paginated). - [Look up an external account for payment](https://ramps-feat-building-with-ai.mintlify.app/api-reference/cross-currency-transfers/look-up-an-external-account-for-payment.md): Lookup an external account by ID to determine supported currencies and exchange rates. This endpoint helps platforms determine what currencies they can send to a given external account, along with the current estimated exchange rates and minimum and maximum amounts that can be sent. - [Look up an UMA address for payment](https://ramps-feat-building-with-ai.mintlify.app/api-reference/cross-currency-transfers/look-up-an-uma-address-for-payment.md): Lookup a receiving UMA address to determine supported currencies and exchange rates. This endpoint helps platforms determine what currencies they can send to a given UMA address. - [Add a new customer](https://ramps-feat-building-with-ai.mintlify.app/api-reference/customers/add-a-new-customer.md): Register a new customer in the system with an account identifier and bank account information - [Delete customer by ID](https://ramps-feat-building-with-ai.mintlify.app/api-reference/customers/delete-customer-by-id.md): Delete a customer by their system-generated ID - [Get a KYC link for onboarding a customer](https://ramps-feat-building-with-ai.mintlify.app/api-reference/customers/get-a-kyc-link-for-onboarding-a-customer.md): Generate a hosted KYC link to onboard a customer - [Get bulk import job status](https://ramps-feat-building-with-ai.mintlify.app/api-reference/customers/get-bulk-import-job-status.md): Retrieve the current status and results of a bulk customer import job. This endpoint can be used to track the progress of both CSV uploads. The response includes: - Overall job status - Progress statistics - Detailed error information for failed entries - Completion timestamp when finished - [Get customer by ID](https://ramps-feat-building-with-ai.mintlify.app/api-reference/customers/get-customer-by-id.md): Retrieve a customer by their system-generated ID - [List customers](https://ramps-feat-building-with-ai.mintlify.app/api-reference/customers/list-customers.md): Retrieve a list of customers with optional filtering parameters. Returns all customers that match the specified filters. If no filters are provided, returns all customers (paginated). - [Update customer by ID](https://ramps-feat-building-with-ai.mintlify.app/api-reference/customers/update-customer-by-id.md): Update a customer's metadata by their system-generated ID - [Upload customers via CSV file](https://ramps-feat-building-with-ai.mintlify.app/api-reference/customers/upload-customers-via-csv-file.md): Upload a CSV file containing customer information for bulk creation. The CSV file should follow a specific format with required and optional columns based on customer type. ### CSV Format The CSV file should have the following columns: Required columns for all customers: - umaAddress: The customer's UMA address (e.g., $john.doe@uma.domain.com) - platformCustomerId: Your platform's unique identifier for the customer - customerType: Either "INDIVIDUAL" or "BUSINESS" Required columns for individual customers: - fullName: Individual's full name - birthDate: Date of birth in YYYY-MM-DD format - addressLine1: Street address line 1 - city: City - state: State/Province/Region - postalCode: Postal/ZIP code - country: Country code (ISO 3166-1 alpha-2) Required columns for business customers: - businessLegalName: Legal name of the business - addressLine1: Street address line 1 - city: City - state: State/Province/Region - postalCode: Postal/ZIP code - country: Country code (ISO 3166-1 alpha-2) Optional columns for all customers: - addressLine2: Street address line 2 - platformAccountId: Your platform's identifier for the bank account - description: Optional description for the customer Optional columns for individual customers: - email: Customer's email address Optional columns for business customers: - businessRegistrationNumber: Business registration number - businessTaxId: Tax identification number ### Example CSV ```csv umaAddress,platformCustomerId,customerType,fullName,birthDate,addressLine1,city,state,postalCode,country,platformAccountId,businessLegalName john.doe@uma.domain.com,customer123,INDIVIDUAL,John Doe,1990-01-15,123 Main St,San Francisco,CA,94105,US acme@uma.domain.com,biz456,BUSINESS,,,400 Commerce Way,Austin,TX,78701,US ``` The upload process is asynchronous and will return a job ID that can be used to track progress. You can monitor the job status using the `/customers/bulk/jobs/{jobId}` endpoint. - [Environments](https://ramps-feat-building-with-ai.mintlify.app/api-reference/environments.md) - [Get exchange rates](https://ramps-feat-building-with-ai.mintlify.app/api-reference/exchange-rates/get-exchange-rates.md): Retrieve cached exchange rates for currency corridors. Returns FX rates that are cached for approximately 5 minutes. Rates include fees specific to your platform for authenticated requests. **Filtering Options:** - Filter by source currency to get all available destination corridors - Filter by specific destination currency or currencies - Provide a sending amount to get calculated receiving amounts - [Add a new external account](https://ramps-feat-building-with-ai.mintlify.app/api-reference/external-accounts/add-a-new-external-account.md): Register a new external bank account for a customer. **Sandbox Testing:** In sandbox mode, use these account number patterns to test different transfer scenarios. These patterns should be used with the primary alias, address, or identifier of whatever account type you're testing. For example, the US account number, a CLABE, an IBAN, a spark wallet address, etc. The failure patterns are: - Account numbers ending in **002**: Insufficient funds (transfer-in will fail) - Account numbers ending in **003**: Account closed/invalid (transfers will fail) - Account numbers ending in **004**: Transfer rejected (bank rejects the transfer) - Account numbers ending in **005**: Timeout/delayed failure (stays pending ~30s, then fails) - Any other account number: Success (transfers complete normally) - [Add a new platform external account](https://ramps-feat-building-with-ai.mintlify.app/api-reference/external-accounts/add-a-new-platform-external-account.md): Register a new external bank account for the platform. **Sandbox Testing:** In sandbox mode, use these account number patterns to test different transfer scenarios. These patterns should be used with the primary alias, address, or identifier of whatever account type you're testing. For example, the US account number, a CLABE, an IBAN, a spark wallet address, etc. The failure patterns are: - Account numbers ending in **002**: Insufficient funds (transfer-in will fail) - Account numbers ending in **003**: Account closed/invalid (transfers will fail) - Account numbers ending in **004**: Transfer rejected (bank rejects the transfer) - Account numbers ending in **005**: Timeout/delayed failure (stays pending ~30s, then fails) - Any other account number: Success (transfers complete normally) - [List Customer external accounts](https://ramps-feat-building-with-ai.mintlify.app/api-reference/external-accounts/list-customer-external-accounts.md): Retrieve a list of external accounts with optional filtering parameters. Returns all external accounts that match the specified filters. If no filters are provided, returns all external accounts (paginated). External accounts are bank accounts, cryptocurrency wallets, or other payment destinations that customers can use to receive funds from the platform. - [List platform external accounts](https://ramps-feat-building-with-ai.mintlify.app/api-reference/external-accounts/list-platform-external-accounts.md): Retrieve a list of all external accounts that belong to the platform, as opposed to an individual customer. These accounts are used for platform-wide operations such as receiving funds from external sources or managing platform-level payment destinations. - [Request Plaid Link token](https://ramps-feat-building-with-ai.mintlify.app/api-reference/external-accounts/request-plaid-link-token.md): Creates a Plaid Link token that can be used to initialize Plaid Link in your application. The Link token is used to authenticate the customer and allow them to select their bank account. **Async Flow:** 1. Platform calls this endpoint to get a link_token and callbackUrl 2. Platform displays Plaid Link UI to the end customer using the link_token 3. End customer authenticates with their bank and selects an account 4. Plaid returns a public_token to the platform 5. Platform POSTs the public_token to the callbackUrl 6. Lightspark exchanges the public_token with Plaid and creates the external account asynchronously 7. Platform receives a webhook notification when the external account is ready - [Submit Plaid public token](https://ramps-feat-building-with-ai.mintlify.app/api-reference/external-accounts/submit-plaid-public-token.md): After the customer completes Plaid Link authentication, the platform should POST the public_token to this callback URL (provided in the link token response). This will trigger asynchronous processing: 1. Lightspark exchanges the public_token for an access_token with Plaid 2. Lightspark retrieves and verifies the account details 3. An external account is created 4. A webhook notification is sent to the platform when complete - [List Customer internal accounts](https://ramps-feat-building-with-ai.mintlify.app/api-reference/internal-accounts/list-customer-internal-accounts.md): Retrieve a list of internal accounts with optional filtering parameters. Returns all internal accounts that match the specified filters. If no filters are provided, returns all internal accounts (paginated). Internal accounts are created automatically when a customer is created based on the platform configuration. - [List platform internal accounts](https://ramps-feat-building-with-ai.mintlify.app/api-reference/internal-accounts/list-platform-internal-accounts.md): Retrieve a list of all internal accounts that belong to the platform, as opposed to an individual customer. These accounts are created automatically when the platform is configured for each supported currency. They can be used for things like distributing bitcoin rewards to customers, or for other platform-wide purposes. - [Cancel an UMA invitation](https://ramps-feat-building-with-ai.mintlify.app/api-reference/invitations/cancel-an-uma-invitation.md): Cancel a pending UMA invitation. Only the inviter or platform can cancel an invitation. When an invitation is cancelled: 1. The invitation status changes from PENDING to CANCELLED 2. The invitation can no longer be claimed 3. The invitation URL will show as cancelled when accessed Only pending invitations can be cancelled. Attempting to cancel an invitation that is already claimed, expired, or cancelled will result in an error. - [Claim an UMA invitation](https://ramps-feat-building-with-ai.mintlify.app/api-reference/invitations/claim-an-uma-invitation.md): Claim an UMA invitation by associating it with an invitee UMA address. When an invitation is successfully claimed: 1. The invitation status changes from PENDING to CLAIMED 2. The invitee UMA address is associated with the invitation 3. An INVITATION_CLAIMED webhook is triggered to notify the platform that created the invitation This endpoint allows customers to accept invitations sent to them by other UMA customers. - [Create an UMA invitation](https://ramps-feat-building-with-ai.mintlify.app/api-reference/invitations/create-an-uma-invitation.md): Create an UMA invitation from a given platform customer. - [Get an UMA invitation by code](https://ramps-feat-building-with-ai.mintlify.app/api-reference/invitations/get-an-uma-invitation-by-code.md): Retrieve details about an UMA invitation by its invitation code. - [Get platform configuration](https://ramps-feat-building-with-ai.mintlify.app/api-reference/platform-configuration/get-platform-configuration.md): Retrieve the current platform configuration - [Update platform configuration](https://ramps-feat-building-with-ai.mintlify.app/api-reference/platform-configuration/update-platform-configuration.md): Update the platform configuration settings - [Create a transfer-in request](https://ramps-feat-building-with-ai.mintlify.app/api-reference/same-currency-transfers/create-a-transfer-in-request.md): Transfer funds from an external account to an internal account for a specific customer. This endpoint should only be used for external account sources with pull functionality (e.g. ACH Pull). Otherwise, use the paymentInstructions on the internal account to deposit funds. - [Create a transfer-out request](https://ramps-feat-building-with-ai.mintlify.app/api-reference/same-currency-transfers/create-a-transfer-out-request.md): Transfer funds from an internal account to an external account for a specific customer. - [Simulate funding an internal account](https://ramps-feat-building-with-ai.mintlify.app/api-reference/sandbox/simulate-funding-an-internal-account.md): Simulate receiving funds into an internal account in the sandbox environment. This is useful for testing scenarios where you need to add funds to a customer's or platform's internal account without going through a real bank transfer or following payment instructions. This endpoint is only for the sandbox environment and will fail for production platforms/keys. - [Simulate payment send to test receiving an UMA payment](https://ramps-feat-building-with-ai.mintlify.app/api-reference/sandbox/simulate-payment-send-to-test-receiving-an-uma-payment.md): Simulate sending payment from an sandbox uma address to a platform customer to test payment receive. This endpoint is only for the sandbox environment and will fail for production platforms/keys. - [Simulate sending funds](https://ramps-feat-building-with-ai.mintlify.app/api-reference/sandbox/simulate-sending-funds.md): Simulate sending funds to the bank account as instructed in the quote. This endpoint is only for the sandbox environment and will fail for production platforms/keys. - [Core Concepts](https://ramps-feat-building-with-ai.mintlify.app/api-reference/terminology.md): Core concepts and terminology for the Grid API - [Approve a pending incoming payment](https://ramps-feat-building-with-ai.mintlify.app/api-reference/transactions/approve-a-pending-incoming-payment.md): Approve a pending incoming payment that was previously acknowledged with a 202 response. This endpoint allows platforms to asynchronously approve payments after async processing. - [Get transaction by ID](https://ramps-feat-building-with-ai.mintlify.app/api-reference/transactions/get-transaction-by-id.md): Retrieve detailed information about a specific transaction. - [List transactions](https://ramps-feat-building-with-ai.mintlify.app/api-reference/transactions/list-transactions.md): Retrieve a paginated list of transactions with optional filtering. The transactions can be filtered by customer ID, platform customer ID, UMA address, date range, status, and transaction type. - [Reject a pending incoming payment](https://ramps-feat-building-with-ai.mintlify.app/api-reference/transactions/reject-a-pending-incoming-payment.md): Reject a pending incoming payment that was previously acknowledged with a 202 response. This endpoint allows platforms to asynchronously reject payments after additional processing. - [Account status notification webhook](https://ramps-feat-building-with-ai.mintlify.app/api-reference/webhooks/account-status-notification-webhook.md): Webhook that is called when the balance of an account changes This endpoint should be implemented by clients of the Grid API. ### Authentication The webhook includes a signature in the `X-Grid-Signature` header that allows you to verify that the webhook was sent by Grid. To verify the signature: 1. Get the Grid public key provided to you during integration 2. Decode the base64 signature from the header 3. Create a SHA-256 hash of the request body 4. Verify the signature using the public key and the hash If the signature verification succeeds, the webhook is authentic. If not, it should be rejected. ### Account status When the balance of an internal account changes, we will push a notification with information on the account, the new balance, and who the account belongs to. - [Bulk upload status webhook](https://ramps-feat-building-with-ai.mintlify.app/api-reference/webhooks/bulk-upload-status-webhook.md): Webhook that is called when a bulk customer upload job completes or fails. This endpoint should be implemented by clients of the Grid API. ### Authentication The webhook includes a signature in the `X-Grid-Signature` header that allows you to verify that the webhook was sent by Grid. To verify the signature: 1. Get the Grid public key provided to you during integration 2. Decode the base64 signature from the header 3. Create a SHA-256 hash of the request body 4. Verify the signature using the public key and the hash If the signature verification succeeds, the webhook is authentic. If not, it should be rejected. This webhook is sent when a bulk upload job completes or fails, providing detailed information about the results. - [Incoming payment webhook and approval mechanism](https://ramps-feat-building-with-ai.mintlify.app/api-reference/webhooks/incoming-payment-webhook-and-approval-mechanism.md): Webhook that is called when an incoming payment is received by a customer's UMA address. This endpoint should be implemented by clients of the Grid API. ### Authentication The webhook includes a signature in the `X-Grid-Signature` header that allows you to verify that the webhook was sent by Grid. To verify the signature: 1. Get the Grid public key provided to you during integration 2. Decode the base64 signature from the header 3. Create a SHA-256 hash of the request body 4. Verify the signature using the public key and the hash If the signature verification succeeds, the webhook is authentic. If not, it should be rejected. ### Payment Approval Flow When a transaction has `status: "PENDING"`, this webhook serves as an approval mechanism: 1. The client should check the `counterpartyInformation` against their requirements 2. To APPROVE the payment synchronously, return a 200 OK response 3. To REJECT the payment, return a 403 Forbidden response with an Error object 4. To request more information, return a 422 Unprocessable Entity with specific missing fields 5. To process the payment asynchronously, return a 202 Accepted response and then call the `/transactions/{transactionId}/approve` or `/transactions/{transactionId}/reject` endpoint within 5 seconds. Note that synchronous approval/rejection is preferred where possible. The Grid system will proceed or cancel the payment based on your response. For transactions with other statuses (COMPLETED, FAILED, REFUNDED), this webhook is purely informational. - [Invitation claimed webhook](https://ramps-feat-building-with-ai.mintlify.app/api-reference/webhooks/invitation-claimed-webhook.md): Webhook that is called when an invitation is claimed by a customer. This endpoint should be implemented by platform clients of the Grid API. When a customer claims an invitation, this webhook is triggered to notify the platform that: 1. The invitation has been successfully claimed 2. The invitee UMA address is now associated with the invitation 3. The invitation status has changed from PENDING to CLAIMED This allows platforms to: - Track invitation usage and conversion rates - Trigger onboarding flows for new customers who joined via invitation - Apply referral bonuses or rewards to the inviter - Update their UI to reflect the claimed status ### Authentication The webhook includes a signature in the `X-Grid-Signature` header that allows you to verify that the webhook was sent by Grid. To verify the signature: 1. Get the Grid public key provided to you during integration 2. Decode the base64 signature from the header 3. Create a SHA-256 hash of the request body 4. Verify the signature using the public key and the hash If the signature verification succeeds, the webhook is authentic. If not, it should be rejected. - [Kyc customer status change](https://ramps-feat-building-with-ai.mintlify.app/api-reference/webhooks/kyc-customer-status-change.md): Webhook that is called when the KYC status of a customer is updated. This endpoint should be implemented by clients of the Grid API. ### Authentication The webhook includes a signature in the `X-Grid-Signature` header that allows you to verify that the webhook was sent by Grid. To verify the signature: 1. Get the Grid API public key provided to you during integration 2. Decode the base64 signature from the header 3. Create a SHA-256 hash of the request body 4. Verify the signature using the public key and the hash If the signature verification succeeds, the webhook is authentic. If not, it should be rejected. ### KYC/B Flow This webhook is triggered when KYC/B has reached a decision on a customer. Generally most customers will finish KYC within a few minutes. Others might be rejected because of incorrect data passed in or may have been flagged for manual review. The webhook will only trigger for final states. This will be APPROVED, REJECTED, EXPIRED, CANCELED, MANUALLY_APPROVED, MANUALLY_REJECTED. * APPROVED: The customer has been approved. * REJECTED: The customer has been rejected after a KYC check. * PENDING_REVIEW: KYC check is in progress. * EXPIRED: KYC check has expired. This is generally because a customer did not submit all required information needed within a session. * CANCELED: KYC check was canceled. * MANUALLY_APPROVED: The customer was manually approved. * MANUALLY_REJECTED: The customer was manually rejected. * NOT_STARTED: KYC has not started on the customer. - [Outgoing payment status webhook](https://ramps-feat-building-with-ai.mintlify.app/api-reference/webhooks/outgoing-payment-status-webhook.md): Webhook that is called when an outgoing payment's status changes. This endpoint should be implemented by clients of the Grid API. ### Authentication The webhook includes a signature in the `X-Grid-Signature` header that allows you to verify that the webhook was sent by Grid. To verify the signature: 1. Get the Grid public key provided to you during integration 2. Decode the base64 signature from the header 3. Create a SHA-256 hash of the request body 4. Verify the signature using the public key and the hash If the signature verification succeeds, the webhook is authentic. If not, it should be rejected. This webhook is informational only and is sent when an outgoing payment completes successfully or fails. - [Send a test webhook](https://ramps-feat-building-with-ai.mintlify.app/api-reference/webhooks/send-a-test-webhook.md): Send a test webhook to the configured endpoint - [Test webhook for integration verification](https://ramps-feat-building-with-ai.mintlify.app/api-reference/webhooks/test-webhook-for-integration-verification.md): Webhook that is sent once to verify your webhook endpoint is correctly set up. This is sent when you configure or update your platform settings with a webhook URL. ### Authentication The webhook includes a signature in the `X-Grid-Signature` header that allows you to verify that the webhook was sent by the Grid API. To verify the signature: 1. Get the Grid public key provided to you during integration 2. Decode the base64 signature from the header 3. Create a SHA-256 hash of the request body 4. Verify the signature using the public key and the hash If the signature verification succeeds, the webhook is authentic. If not, it should be rejected. This webhook is purely for testing your endpoint integration and signature verification. - [Implementation Overview](https://ramps-feat-building-with-ai.mintlify.app/global-p2p/getting-started/implementation-overview.md): High-level implementation plan for configuring, onboarding, funding, and moving money - [Platform Configuration](https://ramps-feat-building-with-ai.mintlify.app/global-p2p/getting-started/platform-configuration.md): Configuring credentials, webhooks and currencies for your platform global P2P payments - [Global P2P](https://ramps-feat-building-with-ai.mintlify.app/global-p2p/index.md) - [External Accounts](https://ramps-feat-building-with-ai.mintlify.app/global-p2p/managing-accounts/external-accounts.md): Register and manage beneficiary bank accounts - [Internal Accounts](https://ramps-feat-building-with-ai.mintlify.app/global-p2p/managing-accounts/internal-accounts.md): Create and manage internal accounts - [External Accounts with Plaid](https://ramps-feat-building-with-ai.mintlify.app/global-p2p/managing-accounts/plaid.md): Simplify bank account linking with Plaid - [Configuring Customers](https://ramps-feat-building-with-ai.mintlify.app/global-p2p/onboarding-customers/configuring-customers.md): Creating and managing customers for global P2P payments - [Invitations](https://ramps-feat-building-with-ai.mintlify.app/global-p2p/onboarding-customers/invitations.md) - [Postman Collection](https://ramps-feat-building-with-ai.mintlify.app/global-p2p/platform-tools/postman-collection.md) - [Sandbox Testing](https://ramps-feat-building-with-ai.mintlify.app/global-p2p/platform-tools/sandbox-testing.md) - [UMA Test Wallet](https://ramps-feat-building-with-ai.mintlify.app/global-p2p/platform-tools/uma-test-wallet.md): Test UMA payment flows with a real counterparty - [Webhooks](https://ramps-feat-building-with-ai.mintlify.app/global-p2p/platform-tools/webhooks.md): Security best practices for webhook verification - [Quickstart](https://ramps-feat-building-with-ai.mintlify.app/global-p2p/quickstart.md): Send your first cross-border payment - [Depositing Funds](https://ramps-feat-building-with-ai.mintlify.app/global-p2p/sending-receiving-payments/depositing-funds.md): Depositing funds into internal accounts - [Error Handling](https://ramps-feat-building-with-ai.mintlify.app/global-p2p/sending-receiving-payments/error-handling.md): Handle payment failures, API errors, and transaction issues in Global P2P - [Receiving Payments](https://ramps-feat-building-with-ai.mintlify.app/global-p2p/sending-receiving-payments/receiving-payments.md): Receiving payments from UMA addresses - [Reconciliation](https://ramps-feat-building-with-ai.mintlify.app/global-p2p/sending-receiving-payments/reconciliation.md): Reconciliation of payments - [Sending Payments](https://ramps-feat-building-with-ai.mintlify.app/global-p2p/sending-receiving-payments/sending-payments.md) - [Core Concepts](https://ramps-feat-building-with-ai.mintlify.app/global-p2p/terminology.md): Core concepts and terminology for the Grid API - [null](https://ramps-feat-building-with-ai.mintlify.app/index.md) - [Depositing Funds](https://ramps-feat-building-with-ai.mintlify.app/payouts-and-b2b/depositing-funds/depositing-funds.md): Depositing funds into internal accounts - [External Accounts](https://ramps-feat-building-with-ai.mintlify.app/payouts-and-b2b/depositing-funds/external-accounts.md): Add and manage external bank accounts, wallets, and payment destinations for withdrawals and payouts - [Internal Accounts](https://ramps-feat-building-with-ai.mintlify.app/payouts-and-b2b/depositing-funds/internal-accounts.md): Learn how to manage internal accounts for holding platform and customer funds - [External Accounts with Plaid](https://ramps-feat-building-with-ai.mintlify.app/payouts-and-b2b/depositing-funds/plaid.md): Simplify bank account verification with Plaid Link for external account setup - [Payouts & B2B](https://ramps-feat-building-with-ai.mintlify.app/payouts-and-b2b/index.md) - [Configuring Customers](https://ramps-feat-building-with-ai.mintlify.app/payouts-and-b2b/onboarding/configuring-customers.md): Configuring customers for Payouts - [Implementation Overview](https://ramps-feat-building-with-ai.mintlify.app/payouts-and-b2b/onboarding/implementation-overview.md) - [Platform Configuration](https://ramps-feat-building-with-ai.mintlify.app/payouts-and-b2b/onboarding/platform-configuration.md): Configuring credentials, webhooks and currencies for your platform - [Error Handling](https://ramps-feat-building-with-ai.mintlify.app/payouts-and-b2b/payment-flow/error-handling.md): Handle payment failures, API errors, and transaction issues gracefully - [List Transactions](https://ramps-feat-building-with-ai.mintlify.app/payouts-and-b2b/payment-flow/list-transactions.md): Query and filter payment history with powerful filtering and pagination options - [Reconciliation](https://ramps-feat-building-with-ai.mintlify.app/payouts-and-b2b/payment-flow/reconciliation.md): Match Grid transactions with your internal systems - [Sending Payments](https://ramps-feat-building-with-ai.mintlify.app/payouts-and-b2b/payment-flow/send-payment.md): Learn how to send payments from internal accounts to external bank accounts with same-currency and cross-currency transfers - [Postman Collection](https://ramps-feat-building-with-ai.mintlify.app/payouts-and-b2b/platform-tools/postman-collection.md) - [Sandbox Testing](https://ramps-feat-building-with-ai.mintlify.app/payouts-and-b2b/platform-tools/sandbox-testing.md): Test your payouts integration in the Grid sandbox environment - [Webhooks](https://ramps-feat-building-with-ai.mintlify.app/payouts-and-b2b/platform-tools/webhooks.md) - [Quickstart](https://ramps-feat-building-with-ai.mintlify.app/payouts-and-b2b/quickstart.md): Send your first cross-border payment - [Core Concepts](https://ramps-feat-building-with-ai.mintlify.app/payouts-and-b2b/terminology.md): Core concepts and terminology for the Grid API - [Building with AI](https://ramps-feat-building-with-ai.mintlify.app/platform-overview/building-with-ai.md): Use AI coding assistants like Claude Code, Cursor, and Codex to explore, build, and debug with the Grid API - [Capabilities](https://ramps-feat-building-with-ai.mintlify.app/platform-overview/capabilities.md) - [Configuration](https://ramps-feat-building-with-ai.mintlify.app/platform-overview/configuration.md): Configure your Grid integration - [Account Model](https://ramps-feat-building-with-ai.mintlify.app/platform-overview/core-concepts/account-model.md): Internal accounts, external accounts, and how they work together - [Currencies & Payment Rails](https://ramps-feat-building-with-ai.mintlify.app/platform-overview/core-concepts/currencies-and-rails.md): Supported currencies, countries, and payment methods - [Entities & Relationships](https://ramps-feat-building-with-ai.mintlify.app/platform-overview/core-concepts/entities.md): Understanding Grid's core data model - [Quote System](https://ramps-feat-building-with-ai.mintlify.app/platform-overview/core-concepts/quote-system.md): How exchange rates, pricing, and payment execution work - [Transaction Lifecycle](https://ramps-feat-building-with-ai.mintlify.app/platform-overview/core-concepts/transaction-lifecycle.md): Follow a payment from creation to settlement - [FAQ](https://ramps-feat-building-with-ai.mintlify.app/platform-overview/introduction/faq.md) - [What is Grid?](https://ramps-feat-building-with-ai.mintlify.app/platform-overview/introduction/what-is-grid.md) - [Use Cases](https://ramps-feat-building-with-ai.mintlify.app/platform-overview/use-cases.md): Discover what you can build with Grid - [Depositing Funds](https://ramps-feat-building-with-ai.mintlify.app/ramps/accounts/depositing-funds.md): Depositing funds into internal accounts - [External Accounts](https://ramps-feat-building-with-ai.mintlify.app/ramps/accounts/external-accounts.md): Configure external bank accounts and crypto wallets for ramp destinations - [Internal Accounts](https://ramps-feat-building-with-ai.mintlify.app/ramps/accounts/internal-accounts.md): Manage internal accounts for holding fiat and crypto balances for ramp operations - [External Accounts with Plaid](https://ramps-feat-building-with-ai.mintlify.app/ramps/accounts/plaid.md): Connect bank accounts securely via Plaid for seamless off-ramp destinations - [Fiat-to-Crypto and Crypto-to-Fiat](https://ramps-feat-building-with-ai.mintlify.app/ramps/conversion-flows/fiat-crypto-conversion.md): Build on-ramp and off-ramp flows to convert between fiat currencies and cryptocurrencies - [Self-Custody Wallet Integration](https://ramps-feat-building-with-ai.mintlify.app/ramps/conversion-flows/self-custody-wallets.md): Send and receive cryptocurrency to and from user-controlled wallets - [Ramps](https://ramps-feat-building-with-ai.mintlify.app/ramps/index.md) - [Configuring Customers](https://ramps-feat-building-with-ai.mintlify.app/ramps/onboarding/configuring-customers.md): Create and manage customers for ramp conversions - [Implementation Overview](https://ramps-feat-building-with-ai.mintlify.app/ramps/onboarding/implementation-overview.md) - [Platform Configuration](https://ramps-feat-building-with-ai.mintlify.app/ramps/onboarding/platform-configuration.md) - [Postman Collection](https://ramps-feat-building-with-ai.mintlify.app/ramps/platform-tools/postman-collection.md) - [Sandbox Testing](https://ramps-feat-building-with-ai.mintlify.app/ramps/platform-tools/sandbox-testing.md): Test ramp flows safely without moving real funds - [Webhooks](https://ramps-feat-building-with-ai.mintlify.app/ramps/platform-tools/webhooks.md): Receive real-time notifications for ramp conversions, account updates, and transaction status - [Quickstart](https://ramps-feat-building-with-ai.mintlify.app/ramps/quickstart.md): Complete guide for converting fiat to crypto (on-ramp) and delivering Bitcoin to a Spark wallet - [Core Concepts](https://ramps-feat-building-with-ai.mintlify.app/ramps/terminology.md): Core concepts and terminology for the Grid API - [Paying out Bitcoin rewards](https://ramps-feat-building-with-ai.mintlify.app/rewards/developer-guides/distributing-rewards.md): Send Bitcoin rewards to customers using the Grid API - [External Accounts](https://ramps-feat-building-with-ai.mintlify.app/rewards/developer-guides/external-accounts.md): Add and manage external funding sources and wallets as payment destinations for rewards - [Implementation Overview](https://ramps-feat-building-with-ai.mintlify.app/rewards/developer-guides/implementation-overview.md) - [Internal Accounts](https://ramps-feat-building-with-ai.mintlify.app/rewards/developer-guides/internal-accounts.md): Learn how to manage and fund internal accounts for holding platform and customer funds - [Listing Transactions](https://ramps-feat-building-with-ai.mintlify.app/rewards/developer-guides/listing-transactions.md): Query and track Bitcoin reward payment history with filtering and pagination - [External Accounts with Plaid](https://ramps-feat-building-with-ai.mintlify.app/rewards/developer-guides/plaid.md): Simplify bank account verification with Plaid Link for external account setup - [Platform Configuration](https://ramps-feat-building-with-ai.mintlify.app/rewards/developer-guides/platform-configuration.md): Configuring platform settings for rewards - [Rewards](https://ramps-feat-building-with-ai.mintlify.app/rewards/index.md) - [Postman Collection](https://ramps-feat-building-with-ai.mintlify.app/rewards/platform-tools/postman-collection.md) - [Sandbox Testing](https://ramps-feat-building-with-ai.mintlify.app/rewards/platform-tools/sandbox-testing.md): Test your rewards integration in the Grid sandbox environment - [Webhooks](https://ramps-feat-building-with-ai.mintlify.app/rewards/platform-tools/webhooks.md) - [Quickstart](https://ramps-feat-building-with-ai.mintlify.app/rewards/quickstart.md): Complete walkthrough for buying Bitcoin and sending it as a reward to an external Spark wallet for self-custody - [Core Concepts](https://ramps-feat-building-with-ai.mintlify.app/rewards/terminology.md): Core concepts and terminology for the Grid API