# Mural Pay API Documentation > Mural Pay's API enables developers to seamlessly integrate cross-border payment functionality into their applications and services. ## Guides - [Overview](https://developers.muralpay.com/docs/getting-started.md) - [Generate API Keys](https://developers.muralpay.com/docs/get-api-key.md) - [Set IP Allowlist](https://developers.muralpay.com/docs/set-ip-allowlist.md) - [Organizations](https://developers.muralpay.com/docs/organizations.md) - [Accounts](https://developers.muralpay.com/docs/account.md) - [Payins](https://developers.muralpay.com/docs/payins.md) - [Payouts](https://developers.muralpay.com/docs/payout-requests-copy.md) - [Counterparties](https://developers.muralpay.com/docs/counterparties-and-payout-methods.md) - [Transactions](https://developers.muralpay.com/docs/transactions.md) - [Overview](https://developers.muralpay.com/docs/overview.md) - [Create an Organization](https://developers.muralpay.com/docs/create-an-organization.md) - [Accept Terms of Service](https://developers.muralpay.com/docs/sign-terms-of-service.md): Your users must accept the Mural Terms of Service in order for you to use the Mural API. - [Get Organization KYC status](https://developers.muralpay.com/docs/get-organization-status.md) - [Fund an Account](https://developers.muralpay.com/docs/get-account-details.md) - [Get Payout Fees](https://developers.muralpay.com/docs/get-payout-fees.md) - [Create a Payout Request](https://developers.muralpay.com/docs/create-a-payout-request.md) - [Execute a Payout Request](https://developers.muralpay.com/docs/execute-a-payout-request.md) - [Get the Payout Request status](https://developers.muralpay.com/docs/get-payout-request-status.md) - [Develop with AI](https://developers.muralpay.com/docs/ai-developer-resources.md): Miscellaneus resources to assist with development while using LLMs. - [MCP Server](https://developers.muralpay.com/docs/mcp.md): The Mural Pay API Model Context Protocol (MCP) server enables AI-powered code editors like Cursor and Windsurf, plus general-purpose tools like Claude Code, to interact directly with the Mural Pay API and documentation. - [Compliance Reviews](https://developers.muralpay.com/docs/compliance-reviews.md) - [Individual Compliance Reviews](https://developers.muralpay.com/docs/individual-compliance-reviews.md) - [Business Compliance Reviews](https://developers.muralpay.com/docs/business-compliance-reviews.md) - [Document Uploads](https://developers.muralpay.com/docs/document-uploads.md) - [Migrating From Organization Verifications to Compliance Reviews](https://developers.muralpay.com/docs/migrating-from-organization-verifications-to-compliance-reviews.md) - [Fiat Rail Codes](https://developers.muralpay.com/docs/fiat-currency-and-rail-codes.md): Supported currency information. - [Transfer Delivery Times](https://developers.muralpay.com/docs/delivery-times.md) - [Sandbox Environment](https://developers.muralpay.com/docs/sandbox-environment.md) - [Errors](https://developers.muralpay.com/docs/errors.md) - [End-User Custodial Resources](https://developers.muralpay.com/docs/end-user-custodial-resources.md) - [End-User Custodial Payout Orchestration](https://developers.muralpay.com/docs/end-user-custodial-payout-orchestration.md): This tutorial walks you through how to orchestrate payouts using end-user custodial organizations and the end-user custodial payout flow. For more information on Mural's custody models, check out the [Custody Models documentation](./custody-models). - [API Reference](https://developers.muralpay.com/docs/end-user-custodial-sdk-documentation.md): `EndUserCustodialSDK` API Reference - [Payout developer fees](https://developers.muralpay.com/docs/payout-developer-fees.md) - [Payin developer fees](https://developers.muralpay.com/docs/payin-developer-fees.md) - [Webhooks](https://developers.muralpay.com/docs/mural-webhooks.md) - [Event Types](https://developers.muralpay.com/docs/event-types.md): See below for a list of all webhook event categories and associated payloads. - [Signature Validation](https://developers.muralpay.com/docs/signature-validation.md) - [Payout Validations](https://developers.muralpay.com/docs/validations.md) - [USD Payins - Supported Countries](https://developers.muralpay.com/docs/usd-payin-supported-countries.md): This supported country list covers businesses and individual organizations residing in these countries. - [Idempotency](https://developers.muralpay.com/docs/idempotency.md) - [Custody Models](https://developers.muralpay.com/docs/custody-models.md) - [Mural Custody](https://developers.muralpay.com/docs/mural-custody.md) - [Developer Custody](https://developers.muralpay.com/docs/custodial-model.md) - [End-User Custody (Non-Custodial)](https://developers.muralpay.com/docs/non-custodial-model.md) - [Individual KYC Requirements](https://developers.muralpay.com/docs/individual-kyc-requirements.md) - [Business KYC Requirements](https://developers.muralpay.com/docs/business-kyc-requirements.md) - [Supporting Details Requirements](https://developers.muralpay.com/docs/supporting-details-requirements-copy.md) - [Terms of Service Reliance](https://developers.muralpay.com/docs/terms-of-service-reliance.md) ## API Reference - [Get an Account](https://developers.muralpay.com/reference/getaccount.md): Get an Account identified by the provided ID. - [Get all Accounts](https://developers.muralpay.com/reference/getaccounts.md): Get all Accounts associated with the provided Organization ID - [Create an Account](https://developers.muralpay.com/reference/createaccount.md): Creates a Mural Account that you can deposit funds into and perform payouts from. - [Set developer fees for an Account](https://developers.muralpay.com/reference/setdeveloperfees.md): Sets or updates the developer fee configurations for a specific Account. Multiple currencies can be configured in a single request. Developer fees can only be configured for child organizations, so this request must be made on behalf of a child organization using the `on-behalf-of` header. - [Set settlement strategy for an Account](https://developers.muralpay.com/reference/setsettlementstrategy.md): Sets or updates the settlement strategy for a specific Account. The settlement strategy controls how incoming payins are settled: either held as fiat, or automatically on-ramped to the Account destination token. - [Initiate an end-user custodial challenge for an approver](https://developers.muralpay.com/reference/initiateendusercustodialchallenge.md): Initiates an email challenge to validate the action of an approver. This endpoint should only be used in end-user custodial payout flows. - [List compliance reviews](https://developers.muralpay.com/reference/listreviews.md): Returns all compliance reviews for the organization, including required and uploaded attestations. - [Create a compliance review](https://developers.muralpay.com/reference/createreview.md): Creates a compliance review for organization onboarding submissions. - [Get a compliance review](https://developers.muralpay.com/reference/getreview.md): Returns the compliance review including required and uploaded attestations. - [Upload attestations to a compliance review](https://developers.muralpay.com/reference/uploadattestations.md): Upload one or more attestations to a draft compliance review. Re-uploading an attestation type replaces the previous instance of that attestation type. - [Submit a compliance review](https://developers.muralpay.com/reference/submitreview.md): Submits the compliance review for evaluation. The review must contain every required attestation for its tier. - [Create an associated person](https://developers.muralpay.com/reference/createassociatedperson.md): Creates an associated person — a beneficial owner or control person — and attaches them to the organization. To include them in a business compliance review, reference their ID from the business associated persons attestation. An organization may have one control person and up to four beneficial owners. The same individual can act as both. - [List associated persons](https://developers.muralpay.com/reference/listassociatedpersons.md): Returns all associated persons for the organization, including each associated person's uploaded attestations. - [Upload attestations for an associated person](https://developers.muralpay.com/reference/uploadassociatedpersonattestations.md): Upload one or more attestations for an associated person. Re-uploading an attestation type replaces the previous value. Only attestation types defined for associated persons (personal info, contact, residential address, tax info, identity document, and proof of address) are accepted here — business-level attestations belong on the compliance review endpoint. - [Create a Counterparty](https://developers.muralpay.com/reference/createcounterparty.md): Creates a new counterparty (recipient) that can be referenced in future payouts. The counterparty information is stored and can be reused across multiple payout requests. - [Search Counterparties](https://developers.muralpay.com/reference/searchcounterparties.md): Search and retrieve counterparties for the organization. - [Get a Counterparty](https://developers.muralpay.com/reference/getcounterpartybyid.md): Retrieves a single counterparty by ID. - [Update a Counterparty](https://developers.muralpay.com/reference/updatecounterparty.md): Updates an existing counterparty with partial data. Note: You cannot change the type (individual <-> business). - [Archive a Counterparty](https://developers.muralpay.com/reference/archivecounterparty.md): Archives a counterparty. The counterparty will no longer be available for use in new payouts. All associated payout methods are also archived. - [Get Bank Requirements for Payout Method Types](https://developers.muralpay.com/reference/getbanksforpayoutmethods.md): Returns bank selection requirements for specified payout method types (rails). If the payment method type requires a specific bank, you'll be required to provide a bankId. - [Create a Payout Method](https://developers.muralpay.com/reference/createpayoutmethod.md): Creates a new payout method for a counterparty. This stores the payment details (bank account, blockchain address, etc.) that can be referenced when creating a payout within a payout requests. - [Search Payout Methods](https://developers.muralpay.com/reference/searchpayoutmethods.md): Search and retrieve payout methods for a specific counterparty. - [Get a Payout Method](https://developers.muralpay.com/reference/getpayoutmethodbyid.md): Retrieves a single payout method by ID for a counterparty. - [Archive a Payout Method](https://developers.muralpay.com/reference/archivepayoutmethod.md): Archives a payout method. The payout method will no longer be available for use in new payouts. - [Get an upload URL for a document](https://developers.muralpay.com/reference/generateuploadurl.md): Returns a one-time upload URL plus the form fields you need to attach. Send a `multipart/form-data` POST to the URL with each `uploadUrlFormFields` entry as a form field, then the file field last. The URL is valid for 60 minutes. Maximum file size is 10 MB. - [List documents](https://developers.muralpay.com/reference/listdocuments.md): Returns a paginated list of documents for the organization. - [Get a document](https://developers.muralpay.com/reference/getdocument.md): Returns the document details. - [Delete a document](https://developers.muralpay.com/reference/deletedocument.md): Removes a document from the organization. The document will no longer be accessible through the API. - [Get an Organization](https://developers.muralpay.com/reference/getorganization.md): Get an Organization by the provided ID. - [Get a hosted terms of service link for an Organization](https://developers.muralpay.com/reference/getorganizationtoslink.md): The page at the returned URL allows users to review and accept the terms of service for the organization. - [Get a hosted KYC link for an Organization (v2)](https://developers.muralpay.com/reference/getorganizationkyclinkv2.md): Returns a new KYC link with token expiry information. A fresh token is generated on each call. The token is valid for 24 hours. The organization must have accepted the Terms of Service before a KYC link can be generated. - [Search Organizations](https://developers.muralpay.com/reference/getorganizations.md): Get all Organizations created in Mural subject to the provided filter. - [Create an Organization](https://developers.muralpay.com/reference/createorganization.md) - [Search Payins](https://developers.muralpay.com/reference/searchpayins.md): Get all Payins associated with the provided Organization ID. - [Get a Payin](https://developers.muralpay.com/reference/getpayin.md): Gets the Payin identified by the provided ID. - [Create a Payin Intent](https://developers.muralpay.com/reference/createpayin.md): Creates a new Payin Intent. - [Get exchange rate for payin](https://developers.muralpay.com/reference/getpayinexchangerate.md): Gets the exchange rate for a given fiat amount and payin rail. - [Cancel a Payin](https://developers.muralpay.com/reference/cancelpayin.md): Cancels the Payin identified by the provided ID. - [Search Payout Requests](https://developers.muralpay.com/reference/searchpayoutrequests.md): Get all Payout Requests associated with the provided Organization ID and filtered by the provided statuses. - [Get a Payout Request](https://developers.muralpay.com/reference/getpayoutrequest.md): Gets the Payout Request identified by the provided ID. - [Create a Payout Request](https://developers.muralpay.com/reference/createpayoutrequest.md): Creates a Payout Request. The Payout Request can have multiple recipients, each of which can be a fiat or blockchain payout. - [Get bank details](https://developers.muralpay.com/reference/getbankdetails.md): Gets the required bank names for a given fiat and rail code. This endpoint should be used to validate the bank name provided in the payout request if you are sending a fiat payout. - [Get fees for token amount](https://developers.muralpay.com/reference/getpayoutfeesfortokenamount.md): Computes the expected fees for a given token amount and payout fiat currency. - [Get fees for fiat amount](https://developers.muralpay.com/reference/getpayoutfeesforfiatamount.md): Computes the estimated original token amount required and estimated fees for a recipient to receive the provided fiat currency amount. - [Execute a Payout Request](https://developers.muralpay.com/reference/executepayoutrequest.md) - [Cancel a Payout Request](https://developers.muralpay.com/reference/cancelpayoutrequest.md) - [Get a Payout Request Body used to sign the Payout](https://developers.muralpay.com/reference/getpayoutrequestpayload.md): Retrieves the Payout Request Body identified by the provided ID. This endpoint should only be used as part of an end-user custodial payout flow. - [Execute an end-user custodial Payout Request](https://developers.muralpay.com/reference/executeendusercustodialpayoutrequest.md): Executes a Payout Request using an end-user custodial signature. - [Cancel an end-user custodial Payout Request](https://developers.muralpay.com/reference/cancelendusercustodialpayoutrequest.md): Cancels a Payout Request. - [Simulate a payin](https://developers.muralpay.com/reference/simulatepayin.md): Triggers a simulated inbound payin on a sandbox deposit account. Useful for testing payin receipt flows without initiating a real bank transfer. Only available in sandbox environments. - [Bypass a compliance review for a child organization](https://developers.muralpay.com/reference/simulatecompliancereview.md): Simulates an approved compliance review for a child organization, skipping the real KYB/KYC flow. Approval completes asynchronously after a couple of minutes. Sandbox only. - [Simulate a compliance review state transition for a child organization](https://developers.muralpay.com/reference/simulatecompliancereviewtransition.md): Drives a child organization's compliance review to a chosen lifecycle state, producing the same state change and `compliance_review_status_changed` webhook event the real transition would. Sandbox only. - [Get a Transaction](https://developers.muralpay.com/reference/gettransaction.md): Gets the Transaction identified by the provided ID. - [Search Transactions](https://developers.muralpay.com/reference/searchtransactionsforaccount.md): Search for Transactions associated with the provided Account ID - [Get supported countries and subdivisions for a fiat rail code](https://developers.muralpay.com/reference/getcountriessupportedforfiatrail.md): Returns valid country and subdivision codes for a specific fiat rail code. - [Validate a Bre-B key](https://developers.muralpay.com/reference/validatebrebkey.md): Validate a Bre-B key and return linked holder information if found. - [Create webhook](https://developers.muralpay.com/reference/createwebhook.md): Creates a new webhook endpoint in DISABLED state. Limited to 5 webhooks per organization. - [List webhooks](https://developers.muralpay.com/reference/listwebhooks.md): Lists all webhooks for the authenticated organization - [Get webhook](https://developers.muralpay.com/reference/getwebhook.md): Retrieves a specific webhook by ID - [Update webhook](https://developers.muralpay.com/reference/updatewebhook.md): Partially updates webhook configuration. Only provided fields will be updated. Use the separate status endpoint to activate/deactivate webhooks. - [Delete webhook](https://developers.muralpay.com/reference/deletewebhook.md): Deletes a webhook. Webhook will stop receiving events but delivery history is preserved. - [Update webhook status](https://developers.muralpay.com/reference/updatewebhookstatus.md): Updates the status of a webhook (ACTIVE/DISABLED). This operation is idempotent - if the status is already the requested value, no changes are made. - [Send webhook event](https://developers.muralpay.com/reference/sendwebhookevent.md): Triggers a test webhook event for the specified webhook and category - [Ping webhook](https://developers.muralpay.com/reference/pingwebhook.md): Synchronously sends a signed test request to the registered webhook URL and returns the delivery outcome (status code and round-trip time). Works on disabled webhooks so connectivity can be verified before activation. ## Changelog - [30 July 2026](https://developers.muralpay.com/changelog/30-july-2026.md) - [13 July 2026](https://developers.muralpay.com/changelog/13-july-2026.md) - [01 June 2026](https://developers.muralpay.com/changelog/01-june-2026.md) - [18 May 2026](https://developers.muralpay.com/changelog/18-may-2026.md) - [01 May 2026](https://developers.muralpay.com/changelog/01-may-2026.md) - [06 April 2026](https://developers.muralpay.com/changelog/06-april-2026.md) - [19 March 2026](https://developers.muralpay.com/changelog/19-march-2026.md) - [02 March 2026](https://developers.muralpay.com/changelog/02-march-2026.md) - [13 February 2026](https://developers.muralpay.com/changelog/13-february-2026.md) - [16 January 2026](https://developers.muralpay.com/changelog/16-january-2026.md)