Skip to main content

Overview

This page provides a complete reference of all transfer status codes returned by the CashQ API. Use these codes to understand the current state of a money transfer.

Status Code Structure

Each transfer status consists of three components:

State

Primary status indicator showing the general transfer state

Substate

Additional detail about the current state

Final

Indicates if the status is terminal (0 = in progress, 1 = complete)

Quick Reference

Key States

Complete Status Table

Status Categories

Success States

Description: Transfer completed successfullyFinal: YesAction: No action required. Transfer is complete.Example Response:

In-Progress States

Description: Transfer has been created and is being initializedFinal: NoAction: Wait for processing to begin. Status will update automatically.Substates:
  • 0, 1, 2: New transfer
  • 9: Awaiting confirmation
Description: Funds are being debited from merchant accountFinal: NoAction: Wait for debit to complete.Substates:
  • 1: Ready to debit
  • 2, 3: Debiting in progress
  • 4: Not enough funds (may become final error)
Description: Transfer is being verifiedFinal: NoAction: Wait for verification to complete.Substates:
  • 1: Ready to verify
  • 2: Verification in process
  • 3: Verification status unknown
Description: Transfer is being processed by payment providerFinal: NoAction: Wait for processing to complete. This is the most common in-progress state.Substates:
  • 1: Ready to process
  • 2, 3: Processing in progress
  • 4, 5, 6, 7: Processing error (may recover or become final error)

Error States

Description: Transfer failedFinal: Yes (when substate indicates final error)Action: Check error details in the attribute array. Transfer cannot be recovered.Substates:
  • 1, 2, 3: Cancelled by support
  • 4: Not enough funds
  • 5: Processing error
  • 6: Another error
Example with Error Details:
Description: Database insertion error occurredFinal: NoAction: This is typically a transient error. The system will retry automatically.
Description: Transfer ID doesn’t existFinal: YesAction: Verify the transfer ID is correct. Check if transfer was created in the same environment (sandbox vs production).Example Response:

Understanding the Final Flag

The final field indicates whether a transfer has reached a terminal state:

Final = 0 (In Progress)

  • Transfer is still being processed
  • Status may change
  • Continue polling for updates
  • Don’t show final result to users yet

Final = 1 (Complete)

  • Transfer has reached a terminal state
  • Status will not change
  • Stop polling for updates
  • Show final result to users (success or failure)

Error Attributes

When a transfer fails (state 80), the attribute array may contain additional error information from the payment provider:

Common Attributes

string
Human-readable error message from the payment provider
string
Error code from the payment provider

Example

Handling Status Codes

Basic Status Check

Polling Strategy

User-Friendly Messages

Best Practices

Check Final Flag

Always check the final field to know when to stop polling

Handle All States

Account for all possible states in your code, not just success and error

Extract Error Details

Parse the attribute array for detailed error information

Use Exponential Backoff

Increase polling intervals to reduce API calls

Check Transfer Status

Use this endpoint to check transfer status

Money Transfer

Create a transfer to get a status