---
title: "Create OCT Payment Request"
method: POST
path: "/v2/payments/oct/"
tags: ["payments"]
---

# Create OCT Payment Request

`POST /v2/payments/oct/`

Create an OCT (Original Credit Transaction) to push funds from the consumer's Upward DDA to their registered external debit card. The card must already be registered through the card-registration component and have `pushEnabled: true`. `amount` is the gross amount debited from the DDA; the fee is deducted from it, so the card receives `amount - fee_amount`. Returns `200` with a payment in `pending`; settlement is reported asynchronously through the `Payment.Oct.Completed` webhook.

## Headers

- `Authorization` string, required

## Request body

- CreateOCTRequest — Request body for creating an OCT (Original Credit Transaction) — pushes funds from a consumer's Upward DDA to their external payment card.
  - `consumer_id` string, uuid, required — External ID of the consumer receiving the transfer.
  - `external_payment_card_id` string, uuid, required — `external_id` of the registered external payment card to credit. The card must belong to `consumer_id` and have `pushEnabled: true`.
  - `amount` number, double, required — Gross amount to push in USD. Minimum 1.00; the maximum is the partner's configured OCT limit. The fee is deducted from this amount, so the card receives `amount - fee_amount`.
  - `description` string — Optional description for the transaction. Defaults to `Instant Funds Transfer Out`.

## Response `200`

OCT created and submitted

- GetOCTResponse — OCT payment details.
  - `id` string, uuid, required — Unique identifier for this payment. Use it with `GET /v2/payments/oct/{id}/`.
  - `consumer_id` string, uuid, required — External ID of the consumer associated with this payment.
  - `external_payment_card_id` string, uuid, required — External ID of the payment card that was credited.
  - `amount` number, double, required — Gross transfer amount in USD, inclusive of `fee_amount`.
  - `fee_amount` number, double, required — Fee deducted from `amount`. The card receives `amount - fee_amount`.
  - `description` string — Description recorded against the transaction.
  - `direction` 'Push', required — Always `Push` for OCT transactions.
  - `status` 'queued' | 'pending' | 'pending_review' | 'posted' | 'canceled' | 'error' | 'rejected' | 'returned', required — Lifecycle status of a card payment. `pending` is returned at creation; `posted` means funds have settled. `pending_review` indicates the payment is held for compliance review.

## Other responses

- `404` — Consumer or external payment card not found
- `422` — Validation failed

---

[API](https://skmtc.net/upwardli/apis/api-reference.md) · [All operations](https://skmtc.net/upwardli/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/upwardli/api-reference/revisions/8a237f1f704f/schema)
