Instant Payments Guide
Overview
Instant Payments allow you to move funds in real-time from a DDA to an external bank account using RTP (Real-Time Payments). This guide covers how to create, retrieve, and list instant payment requests using the Upward API.
Prerequisites
- Valid Upward API credentials (Bearer token)
- Active consumer account with a DDA
- Connected external bank account
- Sufficient available balance in the originating account
Important Constraints
RTP Participation
The destination bank must be a valid RTP participant. If the receiving bank does not support RTP, you will receive the following error:
Balance Requirements
- The payment amount must be less than or equal to the available balance in the originating account
- Upward will automatically handle fee removal from the transfer amount
- Ensure sufficient funds are available before initiating a transfer
API Endpoints
Base URL
1. Create Instant Payment
Create a new instant payment request to transfer funds from a DDA to an external bank account.
Endpoint
Authentication
Request Body
Api Reference
2. Retrieve Instant Payment
Get details about a specific instant payment using its external ID.
Endpoint
Authentication
Path Parameters
Api Reference
3. List Instant Payments
Retrieve a paginated list of all instant payments.
Endpoint
Authentication
Api Reference
Webhooks
Upward sends webhook notifications for instant payment events to keep you informed of payment status changes in real-time.
Webhook Configuration
To receive instant payment webhooks:
Register your webhook endpoint URL with Upward here
Payment Flow
Typical Instant Payment Flow
-
Initiate Payment
- Client calls
POST /v2/payments/instant/with payment details - API validates RTP participation and available balance
- Returns payment object with status
- Client calls
-
Process Payment
- Upward deducts amount and fees from originating account
- Payment is submitted to RTP network
- Webhook:
Payment.Instant.Created
-
Complete Payment
- Receiving bank accepts the payment
- Funds are credited to the external account
- Webhook:
Payment.Instant.Sent
Error Scenarios
Bank Not RTP Participant
- Payment request is rejected immediately
- Error returned in API response
- No webhook sent
Insufficient Balance
- Payment request is rejected immediately
- Error returned in API response
- No webhook sent
Network Failure
- Payment may be queued for retry
- Webhook:
instant_payment.failed - Client should monitor payment status

