After you submit an API call to Moov, you receive an HTTP response indicating whether or not the call was successful.
This guide summarizes the various error codes you may see for transfers, capabilities, card acceptance, and bank accounts.
Across all endpoints, you'll typically see the following response statuses:
Transfer was successfully created but an error occurred while getting the synchronous response. The asynchronous response object will be returned.
Moov's internal services are in a degraded state and are unable to return the full transfer object as a response. The transfer was created but we aren't able to generate a synchronous, response so we return the async response here. You can attempt GET the transfer using the ID that's returned. Note that if Moov's services are still degraded, you will not be able to get the response if you attempted to use the transfer GETendpoint right after creating the transfer.
202
Accepted
A transfer or refund was successfully created but a timeout occurred while waiting for a synchronous response. Rail-specific details may be missing from the response object.
A timeout occurred with the payment network. To retrieve full rail-specific details at a later time, use the transfer GET endpoint.
400
Bad request
Invalid request, an error message will be available in the response body.
There was a problem with the request payload. The error message will provide specific details on what needs to be fixed.
409
Conflict
Attempted to create a transfer using duplicate X-Idempotency-Key header
Retry the request with a different X-Idempotency-Key header.
422
Unprocessable content
The request body could not be processed
The error message will let you know how long to wait (in milliseconds) before you can retry
429
Too many requests
Request was refused due to rate limiting
The error message will let you know how long to wait (in milliseconds) before you can retry
No account with the specified account ID was found
Double check the account ID and retry
422
Unprocessable content
The request body could not be processed
There was a problem with the request payload. Check for required headers, whether or not you're using a duplicate ID, and that you're using a valid account type. The error message will provide specific details on what needs to be fixed.
429
Too many requests
Request was refused due to rate limiting
The error message will let you know how long to wait (in milliseconds) before you can retry
No account with the specified account ID was found
Double check the account ID and retry.
409
Conflict
The request could not be completed due to a state conflict with the target resource
There are capability requirements that have not yet been met or incomplete KYC verification. The error message will provide specific details about which requirements have not yet been met.
429
Too many requests
Request was refused due to rate limiting
The error message will let you know how long to wait (in milliseconds) before you can retry.