---
title: "Create one-off payment"
method: POST
path: "/v1/one-off-payments"
tags: ["Payments"]
---

# Create one-off payment

`POST /v1/one-off-payments`

Akahu's one-off payment service uses official open banking connections to initiate payments directly from your users' New Zealand bank accounts.

Create a payment by specifying the amount, payee account details, and optional statement reference fields.
All payments require a `redirect_uri`. This is where the user will be returned upon completing authorisation.

Once the payment is created, send your user to the `authorisation_url` to complete payment authorisation.

## Request body

- OneOffPaymentRequest — A request for payment from the user
  - `payee` object, required — The payee's details
    - `name` string, required — The name of the payee
    - `account_number` string, required — The bank account number of the payee
    - `particulars` string — The Particulars field that will go on the payee's bank statement
    - `code` string — The Code field that will go on the payee's bank statement
    - `reference` string — The Reference field that will go on the payee's bank statement
  - `payer` object — The payer's details
    - `bank` 'anz' | 'asb' | 'bnz' | 'kiwibank' | 'nzhl' | 'westpac' | 'demo_bank' — The bank the customer must use to make this payment
    - `name` string — The name of the payer
    - `account_number` string — The bank account number of the payer
    - `release_account_details` boolean — Request that the bank releases the payer's account details. These details will be populated in the `payer.name` and `payer.account_number` fields of the payment once available. Payer account release cannot be requested when the payer account number is specified as part of the initial payment request.
    - `particulars` string — The Particulars field that will go on the payer's bank statement
    - `code` string — The Code field that will go on the payer's bank statement
    - `reference` string — The Reference field that will go on the payer's bank statement
  - `amount` number, required — The amount to be paid in dollars, e.g. 12.34. (Rounded to 2 decimal places).
  - `redirect_uri` string, uri, required — The URI to redirect the user to after payment approval
  - `redirect_mode` 'deep_link' — The mode used by Akahu when redirecting the user to your provided `redirect_uri`. This option is important for native mobile app developers. - `deep_link` → Specify this value if your provided `redirect_uri` intends to activate your native mobile application via iOS [universal link](https://developer.apple.com/documentation/xcode/allowing-apps-and-websites-to-link-to-your-content/) or Android [app link](https://developer.android.com/training/app-links/about). When you supply this value, the user will be required to tap to confirm before returning to your application. This interaction is important to ensure successful native app activation.
  - `webhook_uri` string, uri — The URI to send webhooks regarding updates to this payment
  - `expires_at` string, date-time — The payment will be cancelled at this time, unless it has been authorised. Defaults to 1 hour in the future.

## Response `200`

Success

- OneOffPaymentRequestResponse
  - `_id` string, required
  - `authorisation_url` string, uri, required — The URL the user should be redirected to in order to approve the payment
  - `expires_at` string, date-time — The payment will be cancelled at this time, unless it has been authorised

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden

---

[API](https://skmtc.dev/akahu/apis/akahu-enduring-api.md) · [All operations](https://skmtc.dev/akahu/apis/akahu-enduring-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/akahu/akahu-enduring-api/revisions/b2de9915920d/schema)
