Card Repayments
Overview
A credit builder card accumulates an outstanding balance as the cardholder spends. Card repayments pay that balance down by debiting an account the cardholder owns and applying the funds to the card’s loan application.
Every attempt — successful or not — is stored as a repayment record, so the list endpoint is both the payment history and the audit trail for the card.
Common use cases:
- Letting a cardholder pay their statement balance from your application
- Paying a card down programmatically when autopay is turned off
- Reconciling the payoff history of a card
Token scopes required:
Prerequisites
- Valid OAuth 2.0 Bearer token (see Authentication)
- The payment card must belong to a consumer on your partner network
- The payment card must have a loan application attached (created during card issuance)
- Autopay must be disabled on the card, unless your partner is configured for partner-FBO settlement
- The account being debited must be active and owned by the cardholder
How It Works
Settlement happens synchronously. A 201 response means the balance has already been paid down — there is no intermediate pending state to poll for. If settlement fails, the API returns an error status code and the repayment is stored with status: error.
Repayment statuses
Which account is debited
Autopay
Manual repayments require autopay to be disabled on the card. A card with autopay enabled returns 400 autopay_enabled.
Partners configured to settle repayments from a partner FBO account are exempt from this restriction — their repayments run on a separate payoff cycle. Contact Upwardli if you need this configuration.
Amount limits
amount must be at least 0.01 and no greater than the card’s current outstanding balance. Anything higher is rejected with 400 validation_error and the message Amount exceeds outstanding balance.
Rails
rail defaults to book_transfer, which is the only rail currently implemented. ach and instant are accepted by the request schema but are reserved for future use: sending either records the repayment with status: error and returns 400 payment_error.
API Endpoints
Base URLs
1. Create a Card Repayment
Endpoint
Authentication
Path parameters
Request body
Example request
Paying from the account attached to the card takes a single field:
Response — 201 Created
amount is returned as a decimal string with two decimal places on every card repayment response, while the request accepts a JSON number. Parse it as a decimal, not as a float, when reconciling.
Full API reference
2. Retrieve a Card Repayment
Endpoint
Path parameters
Example request
Response — 200 OK
A repayment that belongs to a different card returns 404, and so does a malformed payment_id. This is intentional and prevents information leakage.
Full API reference
3. List Card Repayments
Returns a paginated list of the repayments recorded against the card, newest first.
Endpoint
Query parameters
Example request
Response — 200 OK
Full API reference
Webhooks
Card repayments do not have dedicated webhook events. Repayments settled from a partner FBO account move funds as a book transfer and therefore emit the standard Payment.Transfer.Created event; repayments settled directly against the card’s ledger emit no webhook.
Error Reference
All card repayment errors share the same body:

