Transfer Lifecycle
Understanding the complete lifecycle of a transfer helps you build robust integrations and handle all possible scenarios correctly.
Overviewβ
Every transfer goes through a series of states from creation to completion. Understanding these statuses helps you handle all scenarios correctly and build robust integrations.
Transfer Statusesβ
| Status | Final? | Revocable? | Description |
|---|---|---|---|
new | β No | β Yes | Transfer created, not yet confirmed by user |
waiting | β No | β Yes | Awaiting user confirmation |
waiting_funds | β No | β Yes | Insufficient balance, waiting for funds |
waiting_registration | β No | β Yes | Beneficiaries not registered in system |
waiting_password | β No | β Yes | Password required for authentication |
reserved | β No | β Yes | Funds reserved, ready to process |
done | β Yes | β No | Transfer completed successfully |
failed | β Yes | β No | Transfer failed due to error |
rejected | β Yes | β No | Bank rejected the transfer |
revoked | β Yes | β No | Client cancelled the transfer |
Transfers in final statuses (done, failed, rejected, revoked) cannot transition to other states.
Complete Status Flow Diagramβ
ββββββββββββββββββββ
β Create Transferβ
ββββββββββ¬ββββββββββ
β
ββββββββββΌββββββββββ
β new β
ββββββββββ¬ββββββββββ
β
ββββββββββΌββββββββββ
β User Action β
ββββββββββ¬ββββββββββ
β
βββββββββββββββββββΌββββββββββββββββββ¬ββββββββββββββ
β β β β
ββββββββΌβββββββ ββββββββΌβββββββ βββββββΌβββββ ββββββΌββββββ
β rejected β β waiting β βreserved β β revoked β
β (final) β β (various) β β β β (final) β
βββββββββββββββ ββββββββ¬βββββββ βββββββ¬βββββ ββββββββββββ
β β
ββββββββ΄βββββββ β
β β β
βββββββββββΌβββ ββββββββΌβββββββ β
βwaiting_fundsβ βwaiting_reg β β
βββββββββββ¬ββββ ββββββββ¬βββββββ β
β β β
ββββββββ¬βββββββ β
β β
βββββββββββΌββββββββββ β
βwaiting_password β β
βββββββββββ¬ββββββββββ β
β β
ββββββββββ¬βββββββββ
β
ββββββββββΌββββββββββ
β reserved β
ββββββββββ¬ββββββββββ
β
ββββββββββ΄ββββββββββ
β β
βββββββββΌβββββββ ββββββββΌβββββββ
β done β β failed β
β (final) β β (final) β
ββββββββββββββββ βββββββββββββββ
Status Detailsβ
- new
- waiting
- waiting_funds
- waiting_registration
- waiting_password
- reserved
- done
- failed
- rejected
- revoked
When: Immediately after transfer creation via API
What it means: Transfer created successfully, awaiting next action (reserve, provide password, or user confirmation)
Next statuses: reserved, waiting_password, waiting, revoked
Callback: β No
When: Transfer requires user confirmation
What it means: User must confirm or reject via Paysera interface
Next statuses: waiting_funds, waiting_registration, waiting_password, reserved, rejected, revoked
Callback: β Yes
When: User accepted transfer but account has insufficient balance
What it means: System waiting for funds to be added. Automatically moves to reserved when sufficient balance available.
Next statuses: reserved, failed, revoked
Callback: β Yes
When: One or more beneficiaries not registered in Paysera system
What it means: Beneficiaries will receive email invitation. Automatically progresses when all beneficiaries register.
Next statuses: waiting_password, reserved, revoked
Callback: β Yes
When: Password authentication required
What it means: Use PUT /transfer/rest/v1/transfers/{id}/provide-password to provide password
Next statuses: reserved, failed, revoked
Callback: β Yes
When: All requirements met, funds locked and ready to process
What it means: Transfer will proceed automatically. Can still be revoked before processing completes.
Next statuses: done, failed, revoked
Callback: β Yes
Processing time: Paysera-to-Paysera: instant to few minutes. Bank transfers: 1-5 business days.
When: Transfer completed successfully, money transferred to beneficiary
What it means: β Transfer successful. Cannot be reversed. Final status.
Callback: β Yes (most important callback)
Action: Mark order/payment as completed in your system.
When: Processing error occurred or bank rejected transfer
What it means: β Transfer unsuccessful. Funds automatically returned to sender. Final status.
Callback: β Yes
Action: Log failure reason, notify user, offer to retry with corrected details.
When: User manually declined transfer in confirmation page
What it means: β User refused to approve. Money not transferred. Final status.
Callback: β Yes
Action: Mark as cancelled, offer alternative payment method. Don't retry automatically.
When: Client cancelled transfer via API (DELETE /transfer/rest/v1/transfers/{id})
What it means: β Transfer cancelled by your system. Money not transferred. Final status.
Revocable statuses: new, waiting, waiting_funds, waiting_registration, waiting_password, reserved
Cannot revoke: done, failed, rejected, revoked
Callback: β Yes
Status Transition Rulesβ
| From Status | Can Transition To |
|---|---|
new | reserved, waiting, waiting_password, revoked |
waiting | waiting_funds, waiting_registration, waiting_password, reserved, rejected, revoked |
waiting_funds | reserved, failed, revoked |
waiting_registration | waiting_password, reserved, revoked |
waiting_password | reserved, failed, revoked |
reserved | done, failed, revoked |
done, failed, rejected, revoked | β None (final statuses) |
Handling Status Changesβ
Use Callbacks (Recommended):
- Set callback URL when creating transfer
- Handle all possible statuses in your webhook endpoint
- Return HTTP 200 to acknowledge receipt
Status Polling (Alternative):
- Use only if callbacks not feasible
- Check final statuses:
done,failed,rejected,revoked - Implement exponential backoff to avoid rate limits
Common Scenariosβ
Simple Paysera-to-Paysera Transfer:
Create β new β reserved β done
Transfer Requiring User Confirmation:
Create β new β waiting β reserved β done
Transfer with Insufficient Funds:
Create β new β waiting_funds β reserved (when funds added) β done
Transfer with Unregistered Beneficiary:
Create β new β waiting_registration β reserved (when registered) β done
Client Cancels Transfer:
Create β new β reserved β revoked (via DELETE API)
Related Documentationβ
- Callbacks (Webhooks) - Set up real-time notifications
- Creating a Transfer - Complete workflow
- Error Codes - Handle errors
- API Fundamentals - Core API concepts