Skip to main content
POST
/
api
/
checkTransfer
{
  "error": "",
  "success": true,
  "attribute": [
    {
      "name": "fx_rate",
      "value": "47.2945"
    }
  ]
}

Overview

Validate transfer details before executing a money transfer. This endpoint validates all transfer parameters and returns the foreign exchange (FX) rate for the corridor without actually sending money.
Best Practice: Always call this endpoint before executing a transfer to validate the transaction and get the current FX rate for the transfer.

Endpoint

POST /api/checkTransfer

Authentication

API-KEY
string
required
Your CashQ API Key for authentication
Content-Type
string
required
Must be application/json

Request Body

id
string
required
Unique numeric identifier for this transfer. Use this same ID when executing the transfer. Must be numeric only.
sender_phone
string
required
Sender’s phone number in E.164 format (e.g., "+15615019469")
receiver_phone
string
required
Receiver’s phone number in E.164 format (e.g., "+201234567890")
amount
string
required
Transfer amount in dollars (e.g., "5.0" for $5.00)
service
string
required
ID of corridor (e.g., "1271" for EGP). Payment attributes depend on the corridor and will be provided for the requested corridor upon request.
receiver_country
string
required
Country code of receiver (e.g., "MX" for Mexico, "EG" for Egypt).
receiver_currency
string
required
Currency code for the receiver (e.g., "MXN" for Mexican Peso, "EGP" for Egyptian Pound)
attribute
array
required
Array of corridor-specific payment attributes. Required attributes vary by corridor and include receiver details, bank information, address, and identification. Contact support for specific corridor requirements.
Important: approvelyId AttributeIf you’re using the Payout API with our Payin API, you must include the approvelyId attribute to link the payout with the payin transaction:
{
  "name": "approvelyId",
  "value": "46364493"
}
Without this attribute, the transaction will be created but will wait for automated/manual reconciliation checking, which may cause delays.

Request Example

curl -X POST 'https://api.cashqbot.com/api/checkTransfer' \
  -H 'API-KEY: your_api_key_here' \
  -H 'Content-Type: application/json' \
  -d '{
    "id": "123456789",
    "sender_phone": "+15551234567",
    "receiver_phone": "+525551234568",
    "amount": "5.0",
    "service": "1234",
    "receiver_country": "MX",
    "receiver_currency": "MXN",
    "attribute": []
  }'

Response

success
boolean
required
Indicates if the validation was successful
error
string
Error message if validation failed, empty string if successful
attribute
array
Array of response attributes containing additional information

Response Examples

{
  "error": "",
  "success": true,
  "attribute": [
    {
      "name": "fx_rate",
      "value": "47.2945"
    }
  ]
}

Validation Checks

The endpoint validates:

Phone Numbers

Validates sender and receiver phone number formats

Amount

Checks if amount is valid and within limits

Receiver Status

Checks if receiver exists on CashQ network

KYC Limits

Validates against receiver’s KYC limits

Best Practices

Call this endpoint before every transfer to validate parameters and check receiver status.
Generate unique numeric IDs for each transfer. Use the same ID for check and actual transfer. IDs must be numeric only.
Don’t proceed with transfer if validation fails. Show clear error messages to users.

Error Responses

Error CodeDescriptionSolution
authentication_errorInvalid or missing API keyVerify your API key
invalid_phone_numberPhone number format incorrectUse E.164 format without +
invalid_amountAmount is invalidCheck amount is positive and properly formatted
invalid_requestMissing or invalid parametersVerify all required fields are included
kyc_not_verifiedReceiver KYC limits exceededReduce amount or ask receiver to verify
internal_server_errorServer error occurredRetry the request