Documentationspeedymoneytransfer.com

Reference

Errors

Error format, HTTP statuses and failure codes.

The error body

Error response
{
  "error": "quote_expired",
  "message": "That price expired. Get a new price to continue.",
  "requestId": "req_demo_0f3a"
}

error is a stable code to program against. message is for people and may change. Quote requestId when you contact us.

HTTP statuses

StatusCodesMeaning
400invalid_request, invalid_amount, idempotency_key_required, invalid_eventThe request is malformed or an amount is invalid.
401unauthenticated, invalid_signatureNo valid session, or a webhook signature failed.
403forbidden, origin_not_allowed, csrf_failed, verification_required, transfer_blockedNot allowed for this caller or state.
404not_foundNo such resource, or not yours.
409quote_used, not_cancellable, cancel_window_closed, review_required, too_lateThe request conflicts with the current state.
410quote_expiredThe price is no longer held.
422limit_exceeded, corridor_unavailable, unsupported_country, unsupported_method, fast_unavailable, idempotency_key_reused, quote_source_mismatchUnderstood, but not allowed.
429rate_limited, too_many_requests, too_many_attempts, resend_too_soonSlow down.
503partner_unavailable, compliance_unavailable, delivery_failedA dependency is unavailable. Safe to retry.
500internal_errorOur fault. Quote the requestId.

Payout failure codes

Your errors are mapped to a fixed set before they reach customers or logs. Raw provider text, which may contain personal data, is never shown or stored.

CodeMeaning
invalid_recipientThe recipient details are not valid.
recipient_bank_rejectedThe recipient's bank refused the payment.
compliance_holdHeld for a compliance reason.
quote_expiredYour quote guarantee ended before the payout began.
provider_unavailableYour system could not take the request.
limit_exceededA limit on your side was reached.
unknownAnything else. Prefer a specific code.

When you reject a request, say whether it is retryable (try again later), permanent (do not retry), or an authentication problem. Retryable failures are retried with the same idempotency key; permanent failures end the payout and refund the sender.