Payment Card Advance Documentation
Overview
Card Advances let a partner give a consumer early access to cash on their payment card, then collect it back in one or more payments.
- Drawing an advance moves funds from your partner FBO account into the consumer’s card account (DDA).
- Paying an advance moves funds from the consumer’s card account back to the same partner FBO account.
Both happen on the payment card itself, under /v2/payment-cards/{payment_card_id}/advances. Upward tracks how much of each advance is still owed and closes the advance once it is paid in full.
Card advances can no longer be created or paid through
/v2/payments/transfer. Requests with the memo card.advance or
card.advance.payback are rejected with Invalid memo value. Use the
endpoints on this page instead.
Prerequisites
- A Partner API Token. Creating advances and payments needs
api:writeorapi:purchase:write. Reading them needsapi:readorapi:purchase:read. See the Auth API. - Card Advance enabled for your partner. Upward also configures your maximum advance amount and the partner FBO account that advances are drawn from and paid back to. Contact your Upward representative to set this up.
- A consumer with an active payment card and an associated card account (DDA).
- A registered webhook endpoint for the card advance events below. See Registration.
All calls are scoped to your partner. A payment card, advance or payment that belongs to another partner returns 404.
1. Draw an advance
POST /v2/payment-cards/{payment_card_id}/advances/
The funds are drawn from your configured partner FBO account and deposited into the card’s DDA. You don’t pass any account IDs.
A successful draw returns 201 Created. Store the id: you need it to pay the advance back.
The draw is rejected with 400 when:
See the Create Card Advance reference.
2. Pay an advance
POST /v2/payment-cards/{payment_card_id}/advances/{advance_id}/payments/
A payment moves funds from the consumer’s card account back to the partner FBO account the advance was drawn from. An advance can be paid in one payment or in several partial ones.
A successful payment returns 201 Created:
id identifies the card advance payment. payment_id identifies the underlying book transfer that moved the money.
When a payment brings amount_outstanding to 0.00, Upward closes the advance, sets its payoff_date and sends PaymentCard.Advance.Completed.
The payment is rejected with 400 when:
Payments are not idempotent: each successful request creates a new payment. If a request times out, list the advance’s payments before retrying so you don’t collect twice.
See the Create Card Advance Payment reference.
3. Track advances and payments
List endpoints are paginated with page and page_size, which is capped at 50. They return count, next, previous and results.
Payments with status error, canceled, rejected or returned never moved money, so they don’t reduce amount_outstanding.
See the List Card Advances, Retrieve Card Advance, List Card Advance Payments and Retrieve Card Advance Payment references.
Webhooks
Each event’s resources contains the URL of the advance or payment it’s about. Fetch that URL to get the current state.
Example PaymentCard.Advance.Payment payload:
Card advance transfers also send the general Payment.Transfer.Created and Payment.Transfer.Completed events for the underlying book transfer. Use the PaymentCard.Advance.* events to follow the advance itself.

