This page catalogs all error responses returned by the Caliza API. Errors fall into two categories: coded errors with a machine-readable code, and validation errors with a list of field-level messages.
All non-validation errors return this structure:
JSON
{
"code": "beneficiary.not_found",
"message": "Beneficiary not found",
"traceId": "abc123",
"path": "/v1/beneficiaries/xyz"
}
Field Type Description codestring Machine-readable error code (see tables below) messagestring Human-readable error message traceIdstring Trace identifier for debugging — include this when contacting support pathstring The request URI that triggered the error
Request body validation failures return:
JSON
{
"errors": [
"External id is required",
"Beneficiary type is required"
]
}
Field Type Description errorsstring[] List of human-readable field errors
These error codes can appear across multiple endpoints. When you receive one, you can look it up here regardless of which endpoint returned it.
Code Message Description beneficiary.not_foundBeneficiary not found The beneficiary ID does not exist or is not owned by your integrator integrator.not_foundIntegrator not found The authenticated integrator does not exist simulation.not_foundSimulation not found The simulation ID does not exist transaction.not_foundTransaction not found The transaction ID does not exist flow_of_funds.not_foundFlow of funds not found No matching payment flow exists for the given currency pair and integrator recipient.not_foundRecipient not found The recipient ID does not exist or is not owned by your integrator virtual_account.not_foundVirtual Account not found No virtual accounts exist for the given beneficiary or integrator payment-instructions.not_found(dynamic) Beneficiary is not enabled, or no deposit configuration exists for the requested payment rail block.not_found(dynamic) No root crypto deposit block found for the transaction's flow of funds
Code Message Description callback_url.not_setCallback URL must be set before creating beneficiary Configure your webhook URL before creating beneficiaries beneficiary.operation_not_permittedBeneficiaries can only be updated while pending Beneficiary status is not PENDING beneficiary.cannot_create_operationBeneficiary can not create operation Beneficiary is not in a valid state to transact simulation.is_already_executedSimulation is already executed The simulation was already used to create a transaction — create a new one simulation.is_expiredSimulation is expired The simulation TTL has elapsed — create a new one simulation.exchange_rate_changed_too_muchSimulation exchange rate changed too much Market rate drifted beyond the acceptable threshold since the simulation was created integrator.efx_not_enabledeFX transactions are not enabled for this integrator efx=true in request but your integrator does not have eFX capabilityintegrator.invalid_fee_configurationIntegrator fee configuration is not configured properly Your fee/contract configuration is missing or invalid — contact support transaction.not_efx_transactionACAM220 files can only be uploaded for eFX transactions The transaction is not an eFX transaction operation.not_allowed_outside_sandboxThis resource is not available on production The operation is only available in the sandbox environment
Code Message Description flow_of_funds.insufficient-fundsInsufficient funds. Available available - Required required Beneficiary balance is insufficient for the transaction amount flow_of_funds.invalid-amountMinimum amount for transaction/payment is minimum Transaction amount is below the minimum for the payment rail flow_of_funds.invalid-beneficiary-typeIt's not possible to execute transaction/payment for type beneficiaries Beneficiary type not supported for the configured payment rail limit.daily_limit_reachedThe max daily amount is 'limit ' Daily transaction limit exceeded limit.sandbox_limit_reachedThe max amount of sandbox is 'limit ' Sandbox transaction limit exceeded transaction.invalid_transfer_purpose_for_countryTransfer purpose purpose is invalid for country country Invalid transfer purpose for the destination country validation.invalid_enum_value(dynamic) An invalid enum value was provided (e.g., currency code, payment rail type) validation.invalid_file_type(dynamic) Uploaded file has an unsupported type
Code Message Description beneficiary.conflictBeneficiary already exists A beneficiary with the same integratorBeneficiaryId already exists transaction.document_upload_not_allowed_for_statusDocuments cannot be uploaded for a transaction in its current status The transaction has reached a final state (for example completed, failed, cancelled, returned, or refunded) and no longer accepts document uploads
Code Message Description virtual_account.unprocessableUnprocessable Virtual Account Request: detail Virtual account creation validation failed — see detail message payout.unprocessableUnprocessable Payout Request: detail Payout request is missing required configuration flexiblekyx.missing-kyx-requirementsPlease complete KYX requirements before proceeding Beneficiary has not completed required KYC/KYB steps
These errors are returned when the simulation request body is malformed:
Message Trigger toCurrencyCode or to.currencyCode destination are requiredNo destination currency specified type is required when destination is setdestination is set but type is nullOnly one of from or to can be setBoth from.value and to.value are positive from or to value is requiredNeither from.value nor to.value is positive toCurrencyCode is required when dashboardExperience is setdashboardExperience is true but to.currencyCode is nullWhen payout is informed, the recipient id is requiredpayout is set but recipientId is null (V2 only)
📘 InsufficientFundsException during simulation creation is surfaced in the response body's amountValidation field rather than as an HTTP error. The simulation is still created successfully with the warning attached.
These are field-level validation errors returned in the validation error response format (see above).
Applies to POST /v1/beneficiaries and PUT /v1/beneficiaries/{id}.
Message Trigger External id is requiredintegratorBeneficiaryId is nullBeneficiary type is requiredtype is nullBeneficiary person has to be filled for INDIVIDUAL users or business has to be filled for BUSINESS typeType/data mismatch
Message Trigger Name is requiredperson.firstName is blankLastname is requiredperson.lastName is blankFirstname is too longperson.firstName exceeds 100 charactersLastname is too longperson.lastName exceeds 100 charactersDate of birth is requiredperson.dateOfBirth is nullID is requiredperson.idNumber is blankEmail is requiredperson.email is blankEmail format is wrongperson.email fails email validationTelephone is requiredperson.phoneNumber is blankPhone number format is wrong the expected one is +551519874562539Does not match + followed by 6–20 digits Address is requiredperson.address is null
These apply to both person and business addresses:
Message Trigger Street one is requiredaddress.streetOne is blankStreet one is too longaddress.streetOne exceeds 100 charactersCity is requiredaddress.city is blankCity is too longaddress.city exceeds 100 charactersZipcode is requiredaddress.zipcode is blankState is requiredaddress.state is blankState is too longaddress.state exceeds 3 charactersCountry is requiredaddress.country is blankCountry and state should follow ISO 3166-2Invalid ISO 3166-2 country/state combination
Message Trigger Name is requiredbusiness.name is blankName is invalidbusiness.name exceeds 60 charactersDate of incorporation is requiredbusiness.dateOfIncorporation is nullId Number is requiredbusiness.idNumber is blankAddress is requiredbusiness.address is nullTelephone is requiredbusiness.phoneNumber is blankEmail is requiredbusiness.email is blankContact must be at list onebusiness.contacts is empty
Applies to POST /v1/transactions.
Message Trigger simulationId requiredsimulationId is nullbeneficiaryIp requiredbeneficiaryIp is null
File upload errors (for endpoints accepting documents):
Message Trigger File is emptyUploaded file has zero bytes File size exceeds 10MBUploaded file exceeds the 10 MB limit
Applies to POST /v1/simulations and POST /v2/simulations.
Message Trigger beneficiaryId requiredbeneficiaryId is null (V1 only)from requiredfrom amount object is null (V1 only)invalid custom feecustomFees contains invalid fee types or negative values
Applies to POST /v1/transactions/payouts and POST /v1/transactions/sweep-payouts.
Message Trigger source is requiredsource is nullsourceType is requiredsourceType is nulltransactions is requiredtransactions list is nullamount is requiredA payout transaction's amount is null target is requiredA payout transaction's target is null target type is requiredA payout transaction's targetType is null paymentRailType is requiredA payout transaction's paymentRailType is null
Applies to POST /v1/beneficiaries/{beneficiaryId}/virtualAccounts. All return virtual_account.unprocessable (422).
Message Trigger Person information is required for individual beneficiaryMissing person data ID number is requiredMissing idNumber ID number invalid. 5 character minimum. 20 character maximum.idNumber not 5–20 alphanumeric charactersFirst name is requiredMissing person.firstName Last name is requiredMissing person.lastName Country is requiredMissing beneficiary country Date of birth is requiredMissing person.dateOfBirth Email is requiredMissing person.email Phone number is requiredMissing person.phoneNumber Person address is requiredMissing person.address Person street address is requiredMissing person.address.streetOne Person city is requiredMissing person.address.city Person state is requiredMissing person.address.state Person postal code is requiredMissing person.address.zipcode Person country is requiredMissing person.address.country
Message Trigger Business information is required for business beneficiaryMissing business data Business name is requiredMissing business.name Business ID number is requiredMissing business.idNumber Business email is requiredMissing business.email Business phone number is requiredMissing business.phoneNumber Date of incorporation is requiredMissing business.dateOfIncorporation Business address is requiredMissing business.address Business street address is requiredMissing business.address.streetOne Business city is requiredMissing business.address.city Business state is requiredMissing business.address.state Business postal code is requiredMissing business.address.zipcode Business country is requiredMissing business.address.country
📘 Each entry in business.contacts[] is validated with the same rules as individual person fields.
Applies to POST /v1/recipients and PUT /v1/recipients/{id}.
Message Trigger The field recipient.currency is requiredcurrency is nullThe field recipient.type is requiredtype is nullThe field recipient.details is requireddetails is nullThe field recipient.individualName or recipient.businessName is requiredNeither name provided, or both provided The field recipient.countryOfIncorporation is required when recipient.businessName is providedbusinessName set but countryOfIncorporation is nullThe field recipient.countryOfIncorporation should follow ISO 3166-2countryOfIncorporation exceeds 2 charactersThe field recipient.beneficiaryId is requiredbeneficiaryId is null when integratorRecipient is falseNickname max length exceedednickname exceeds 50 charactersNickname contains invalid charactersnickname contains characters outside letters, numbers, spaces, and -().,_'
Message Trigger accountNumber is requiredMissing details.accountNumber routingNumber is requiredMissing details.routingNumber bankName is requiredMissing details.bankName bankCountry is requiredMissing details.bankCountry accountType is requiredMissing details.accountType accountType must be one of: Checking, Savings, GeneralLedger, LoanInvalid accountType value recipientAddress is requiredMissing details.recipientAddress recipientAddress.street1 is requiredMissing street1 recipientAddress.city is requiredMissing city recipientAddress.state is requiredMissing state recipientAddress.postalCode is requiredMissing postal code recipientAddress.country is requiredMissing country
Message Trigger accountNumber is requiredMissing details.accountNumber routingNumber is requiredMissing details.routingNumber routingNumber must be exactly 9 charactersInvalid length bankName is requiredMissing details.bankName bankAddress is requiredMissing details.bankAddress bankAddress.street1 is requiredMissing bank street1 bankAddress.city is requiredMissing bank city bankAddress.state is requiredMissing bank state bankAddress.postalCode is requiredMissing bank postal code bankAddress.country is requiredMissing bank country recipientAddress is requiredMissing details.recipientAddress bank.not_foundroutingNumber does not match a known bank
Recipient address sub-fields follow the same pattern as ACH.
Message Trigger swiftCode is requiredMissing details.swiftCode swiftCode format is invalidInvalid SWIFT/BIC format bankName is requiredMissing details.bankName bankAddress is requiredMissing details.bankAddress bankAddress.country cannot be US for SWIFTUse WIRE for US domestic transfers iban or accountNumber is requiredNeither provided iban format is invalidInvalid IBAN format recipientAddress is requiredMissing details.recipientAddress bank.not_foundSWIFT code or IBAN does not match a known bank
Bank and recipient address sub-fields follow the same pattern as WIRE.
Message Trigger pixKey is requiredMissing details.pixKey documentNumber is requiredMissing details.documentNumber documentNumber must be a valid CPF (11 digits) or CNPJ (14 digits)Invalid length after stripping formatting
Message Trigger clabe is requiredMissing details.clabe bankCode is requiredMissing details.bankCode receiverName is requiredMissing details.receiverName
Message Trigger accountType is requiredMissing details.accountType accountType must be one of: CHECKING, SAVINGSInvalid value bankAccount is requiredMissing details.bankAccount bankCode is requiredMissing details.bankCode documentId is requiredthirdPartyWithdrawal is true but documentId missingdocumentType is requiredthirdPartyWithdrawal is true but documentType missingemail is requiredthirdPartyWithdrawal is true but email missing
Message Trigger recipientName is requiredMissing details.recipientName cvu is requiredMissing details.cvu
Message Trigger accountNumber is requiredMissing details.accountNumber routingNumber is requiredMissing details.routingNumber
Message Trigger walletAddress is requiredMissing or blank details.walletAddress memo is requiredPayment rail is STELLAR but details.memo is missing