---
title: "Create a payment request via the redirect (Pay by Bank) flow"
method: POST
path: "/api/v1/payment-requests:redirect"
tags: ["Payments"]
---

# Create a payment request via the redirect (Pay by Bank) flow

`POST /api/v1/payment-requests:redirect`

Create a payment request via the redirect (Pay by Bank) flow

## Request body

- RedirectPaymentRequestInput — Strict input parameters for the redirect (Pay by Bank) payment request
  - `merchant_id` string, uuid — Merchant ID. Defaults to the logged-in merchant if not provided. Required for admin tokens.
  - `customer` object, required — Customer information for the redirect payment request
    - `name` string, required — The name of the customer
    - `email` string, email, required — The email of the customer
    - `phone_number` string — The phone number of the customer
  - `billing_address` object, required — A physical address
    - `address_line1` string, required — The first line of the address
    - `address_line2` string — The second line of the address
    - `apartment` string — The apartment, unit, or suite number
    - `city` string, required — The city
    - `state_province` string — The state or province
    - `country` string, required — ISO 3166-1 alpha-2 country code
    - `postal_code` string, required — The postal code
    - `company_name` string — The company name (if applicable)
  - `amount` integer, required — Minor-unit amount (e.g. pence/cents). Decimals are rejected.
  - `currency` string, required — The currency of the payment request
  - `payment_reference` string — Payment reference to appear on the payer’s bank statement (max 18 alphanumeric characters)
  - `order_id` string — The unique identifier for the merchant's order
  - `locale` string, required — The locale of the payment request
  - `success_url_redirect` string — URL to redirect on successful payment
  - `fail_url_redirect` string — URL to redirect on failed payment
  - `test_transaction` boolean — Flag for test transactions
  - `selected_bank_id` string — Selected bank reference
  - `simulation` object — Sandbox simulation config. Honoured only when the upstream provider is a fake/sandbox backend; live providers ignore it.
    - `straddle` object
      - `customer_outcome` union — Simulated identity verification outcome
        - 'standard'
        - 'verified'
        - 'rejected'
        - 'review'
      - `paykey_outcome` union — Simulated bank account link outcome
        - 'standard'
        - 'active'
        - 'rejected'
      - `charge_outcome` union — Simulated charge outcome
        - 'standard'
        - 'paid'
        - 'on_hold_daily_limit'
        - 'cancelled_for_fraud_risk'
        - 'cancelled_for_balance_check'
        - 'failed_insufficient_funds'
        - 'reversed_insufficient_funds'
        - 'failed_customer_dispute'
        - 'reversed_customer_dispute'
        - 'failed_closed_bank_account'
        - 'reversed_closed_bank_account'
      - `balance_check` union — Balance verification behaviour
        - 'required'
        - 'enabled'
        - 'disabled'
    - `flinks` object
      - `outcome` union — Simulated bank-linking lifecycle and data shape
        - 'happy'
        - 'async'
        - 'no_us_account'
        - 'partial_data'
        - 'webhook_only'
        - 'rate_limit'
        - 'unreachable'
      - `account` object
        - `total` number, required — Total accounts to return
        - `existing` string[] — Ids of existing accounts to include; (total - existing.length) new ones are minted
      - `mfa` union — Whether an MFA challenge is presented and how it is answered
        - 'skip'
        - 'correct'
        - 'wrong'

## Response `201`

Created

- RedirectPaymentRequestResponse
  - `success` boolean, required — Indicates if the request was successful
  - `data` object, required — Redirect payment request response data
    - `redirect_url` string, required — URL to redirect the customer to in order to complete payment

## Other responses

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

## Changes

- **2026-06-16** `b372e7d5563d` — 1 info
  - endpoint added
- **2025-11-02** `919eb7a392aa` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/banqzinc/apis/quidkey-api/changes/api/v1/payment-requests:redirect/post.md)

---

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