Skip to main content
Before a business can send payments or add accounts, it must meet Melio’s risk and compliance requirements. Limitations tell you, per operation, whether a business is allowed to perform that operation today and, if not, why. Use the limitations endpoint to check eligibility up front, so you can guide a business through what it still needs to do instead of letting a write request fail with a 403.
Authentication: API key (api-key: <api-key>, no Bearer prefix). Required header: Melio-Entity-Id - the business to check, either an entity id (ent_<uuid>) or me for the partner’s sole entity.

Response

The response is a list of capabilities, one per limitable operation.
Only write operations (create, update, delete) can be limited. Read operations are always allowed and never appear in the list. New operations are added to this list over time, so treat unknown operation values leniently rather than rejecting them.

Operations

payment.domestic:write and payment.international:write are decided independently. Which one applies to a given payment is determined by the receiving account’s rail, so a business may be able to pay domestically while being blocked internationally, or the reverse. Check the one matching the payment you intend to create.
payment.international:write also reports onboarding data that is still outstanding, not only risk restrictions - so it can be blocked purely because the business has not finished international onboarding yet. See International onboarding for what that involves.

Reasons

When allowed is false, each entry in reasons explains one blocker. Current code values:
Treat code as an open set and handle unknown values gracefully. Always fall back to displaying message, which is written for a business to read.

Resolving a MissingInformation reason

When the reason is MissingInformation, missingFields lists dot-paths into the entity that need to be completed. Collect and submit those fields (for example, by updating the entity), then re-check limitations.
A path with a dot addresses a nested field - owner.dateOfBirth is dateOfBirth on the entity’s owner. For payment.international:write, missingFields may also name beneficialOwners, which is submitted through its own endpoint rather than as an entity field.

Limitations and write errors

Limitations are the same restrictions that surface as errors when you attempt a blocked write. If a business is not eligible, the corresponding write endpoint returns: The error message names the operation that was refused, for example Business is not eligible to make international payments. See the limitations endpoint for details. It does not carry the reason codes - fetch GET /limitations for those. Checking limitations first lets you avoid the 403 and tell the business exactly what to fix. See Errors for the response shape.

Staying up to date

Limitations change as a business’s risk and compliance status changes. Subscribe to the api.limitation.updated webhook event and re-fetch GET /limitations when it fires, rather than polling.