> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.upwardli.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.upwardli.com/_mcp/server.

# Payments

The platform supports three types of payments: **Book Transfer**, **ACH**, and **Real-Time Payment (RTP)**.

## Book Transfer

Book Transfers allow partners to move money internally from their **FBO (For Benefit Of) account** to a consumer’s account.\
This is often used in the form of a **cash advance** or another type of **monetary reward**.

Funds can also be **recaptured** from the consumer’s account, enabling repayment or reversal when applicable.

See full details on how to transfer fund with [card advance](../products/credit-builder-card-advance)

---

## ACH (Automated Clearing House)

ACH payments use the **U.S. banking network** to move funds between bank accounts.\
They are best suited for **standard deposits and withdrawals**, offering a cost-effective but slower settlement option compared to real-time methods.

ACH is ideal when:

* You don’t require instant fund availability
* You want to support broad account coverage at low cost

Token scope required to perform this action is `api:write | api:purchase:write` \


See [ach api](/api-access/api-reference/payments/ach/create-create-ach-request)

**Key points:**

* Webhooks fire (e.g. `Payment.Ach.Created`, `Payment.Ach.Sent`, `Payment.Ach.Received`)

---

## Real-Time Payment (RTP)

Real-Time Payments deliver funds **instantly** to a consumer’s bank account.\
This method ensures **immediate availability**, making it suitable for urgent transfers.

**Key points:**

* Consumers are charged a **fee** when using Real-Time Payments
* Consumer send funds from card to external bank accounts
* Webhooks fire (e.g Payment.Instant.Created)

Token scope required to perform this action is `api:write | api:purchase:write` \


See [RTP api](/api-access/api-reference/payments/instant/create-create-instant-payment-request) to create an out bound request.

---

## AFT (Account Funding Transaction)

AFT is a **"pull"** transaction that **withdraws funds** from a consumer's card or external source to fund another account.
It is commonly used to load value into a wallet, prepaid card, or platform account from an existing payment card.

AFT is ideal when:

* You need to **fund a consumer's account** from their existing card
* You want to initiate a **pull-based funding flow**

**Key points:**

* Debits funds **from** the consumer's external payment card
* The `direction` in the response will be `Pull`
* Webhooks fire (e.g. `Payment.Aft.Created`, `Payment.Aft.Sent`, `Payment.Aft.Received`, `Payment.Aft.Completed`)

Token scope required to perform this action is `api:write | api:purchase:write` \


See [AFT api](/api-access/api-reference/payments/aft/create-aft-payment-request)

---

## OCT (Original Credit Transaction)

OCT is a **"push"** transaction that **credits funds directly** to a consumer's payment card.
The transfer is final and generally **non-reversible**, making it suitable for disbursements, rewards, and payouts.

OCT is ideal when:

* You need to **disburse funds** to a consumer's card instantly
* You are processing **rewards, refunds, or payouts** to a card
* Finality and speed are required over reversibility

**Key points:**

* Credits funds **to** the consumer's external payment card
* The `direction` in the response will be `Push`
* Transactions are generally **final and non-disputable**
* Webhooks fire (e.g. `Payment.Oct.Created`, `Payment.Oct.Sent`, `Payment.Oct.Received`, `Payment.Oct.Completed`)

Token scope required to perform this action is `api:write | api:purchase:write` \


See [OCT api](/api-access/api-reference/payments/oct/create-create-card-payments-request)

---

## P2P (Peer-to-Peer)

P2P payments allow one consumer to **send funds directly to another consumer** within your partner network — no external bank accounts required. Both sides must hold a secured-card account managed by your partner.

P2P is ideal when:

* You want to enable **consumer-to-consumer transfers** on your platform
* You are building **split-payment or gifting** flows
* Both users are on the same partner network

**Key points:**

* Both accounts must be **secured-card accounts** on your partner network
* A daily **velocity limit of 2 transfers per consumer per 24 hours** applies; exceeding it parks the payment in `pending_review` for compliance review rather than rejecting it
* Webhooks fire (e.g. `Payment.P2P.Created`, `Payment.P2P.Completed`, `Payment.P2P.Failed`, `Payment.P2P.Canceled`)

Token scope required to perform this action is `api:write | api:purchase:write` \


See [P2P Payments Guide](/guides/p-2-p-payments) for the full integration walkthrough.

See [P2P api](/api-access/api-reference/payments/p-2-p/create-p-2-p-payment)

---

## Card Repayments

Card repayments **pay down the outstanding balance** of a credit builder card by debiting an account the cardholder owns and applying the funds to the card's loan application.

Card repayments are ideal when:

* The cardholder wants to **pay their card balance** from your application
* **Autopay is disabled** and the balance must be paid manually
* You need the **payoff history** of a card for reconciliation

**Key points:**

* Settlement is **synchronous** — a `201` response means the balance is already paid down and `status` is `posted`
* The amount cannot exceed the card's **current outstanding balance**
* `account_id` is optional; omitting it debits the **DDA account attached to the card**
* Autopay must be **disabled**, unless your partner is configured for partner-FBO settlement
* Failed attempts are **kept with `status: error`** and remain visible in the list endpoint

Token scope required to perform this action is `api:write | api:purchase:write` \


See [Card Repayments Guide](/guides/card-repayments) for the full integration walkthrough.

See [Card Repayments api](/api-access/api-reference/payment-cards/create-card-payment)