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
| State | Description | Final | Action Required |
|---|---|---|---|
| 60 | Success | Yes | None - transfer completed |
| 80 | Error | Yes | Check error details |
| 40 | Processing | No | Wait for completion |
| 0 | New | No | Transfer just created |
| -2 | Not Found | Yes | Verify transfer ID |
Complete Status Table
| State | Substate | Final | Description |
|---|---|---|---|
| 0 | 0, 1, 2 | No | New - Transfer created |
| 0 | 9 | No | Awaiting confirmation |
| 20 | 1 | No | Ready to debit |
| 20 | 2, 3 | No | Debiting account |
| 20 | 4 | No | Not enough funds in account |
| 30 | - | No | Verify |
| 30 | 1 | No | Ready to verify |
| 30 | 2 | No | Verify, in process |
| 30 | 3 | No | Verify, unknown |
| 40 | - | No | Processing |
| 40 | 1 | No | Ready to process |
| 40 | 2, 3 | No | In process |
| 40 | 4, 5, 6, 7 | No | Processing error |
| 60 | - | Yes | ✅ Success (final) |
| 80 | - | Yes | ❌ Error (final) |
| 80 | 1, 2, 3 | No | Cancelled by support |
| 80 | 4 | No | Not enough funds |
| 80 | 5 | No | Processing error |
| 80 | 6 | No | Another error |
| -1 | 0 | No | Database insertion error (not final) |
| -2 | 0 | Yes | Payment not found (final) |
Status Categories
Success States
State 60 - Success
State 60 - Success
Description: Transfer completed successfullyFinal: YesAction: No action required. Transfer is complete.Example Response:
In-Progress States
State 0 - New
State 0 - New
Description: Transfer has been created and is being initializedFinal: NoAction: Wait for processing to begin. Status will update automatically.Substates:
0, 1, 2: New transfer9: Awaiting confirmation
State 20 - Debiting
State 20 - Debiting
Description: Funds are being debited from merchant accountFinal: NoAction: Wait for debit to complete.Substates:
1: Ready to debit2, 3: Debiting in progress4: Not enough funds (may become final error)
State 30 - Verification
State 30 - Verification
Description: Transfer is being verifiedFinal: NoAction: Wait for verification to complete.Substates:
1: Ready to verify2: Verification in process3: Verification status unknown
State 40 - Processing
State 40 - Processing
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 process2, 3: Processing in progress4, 5, 6, 7: Processing error (may recover or become final error)
Error States
State 80 - Error
State 80 - Error
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 support4: Not enough funds5: Processing error6: Another error
State -1 - Database Error
State -1 - Database Error
Description: Database insertion error occurredFinal: NoAction: This is typically a transient error. The system will retry automatically.
State -2 - Not Found
State -2 - Not Found
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
Thefinal 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), theattribute array may contain additional error information from the payment provider:
Common Attributes
Human-readable error message from the payment provider
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 pollingHandle 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 informationUse Exponential Backoff
Increase polling intervals to reduce API calls
