---
title: "POST /api/v1/payment-requests"
method: POST
path: "/api/v1/payment-requests"
tags: ["PaymentRequests"]
---

# POST /api/v1/payment-requests

`POST /api/v1/payment-requests`

## Request

- Base URL: `https://send21.io`
- URL: `https://send21.io/api/v1/payment-requests`
- Auth: HTTP bearer

## Request body

- CreatePaymentRequestRequest
  - `fiatCurrency` string, nullable
  - `fiatAmount` number, double
  - `options` PaymentRequestOptionDto[], nullable
    - `currency` 'Btc' | 'Usdc' | 'Usdt' | 'Eurc' | 'Sol' | 'Eth'
    - `network` 'Mainnet' | 'Testnet4' | 'Signet' | 'Regtest' | 'Solana' | 'SolanaDevnet' | 'Ethereum' | 'EthereumSepolia' | 'Base' | 'BaseSepolia' | 'Arbitrum' | 'ArbitrumSepolia' | 'Polygon' | 'PolygonAmoy'
    - `address` string, nullable
    - `method` 'MultiOutput' | 'Lightning'
  - `orderId` string, nullable
  - `memo` string, nullable
  - `expiryHours` integer, nullable
  - `declineNote` string, nullable
  - `shortfallPolicy` ShortfallPolicyDto
    - `absorbUpToPercent` number, double
    - `absorbedBy` string, nullable
  - `reuseOpenForOrder` boolean, nullable

## Response `200`

OK

- PaymentRequestResponse
  - `id` string, uuid
  - `shareToken` string, nullable
  - `payPath` string, nullable
  - `orderId` string, nullable
  - `fiatCurrency` string, nullable
  - `fiatAmount` number, double
  - `memo` string, nullable
  - `status` 'Open' | 'Completed' | 'Cancelled' | 'Expired'
  - `expiresAt` string, date-time
  - `createdAt` string, date-time
  - `options` PaymentRequestOptionDto[], nullable
    - `currency` 'Btc' | 'Usdc' | 'Usdt' | 'Eurc' | 'Sol' | 'Eth'
    - `network` 'Mainnet' | 'Testnet4' | 'Signet' | 'Regtest' | 'Solana' | 'SolanaDevnet' | 'Ethereum' | 'EthereumSepolia' | 'Base' | 'BaseSepolia' | 'Arbitrum' | 'ArbitrumSepolia' | 'Polygon' | 'PolygonAmoy'
    - `address` string, nullable
    - `method` 'MultiOutput' | 'Lightning'
  - `activeDraftId` string, uuid, nullable
  - `draftStatus` 'AwaitingPayment' | 'Seen' | 'Confirmed' | 'Expired' | 'Cancelled'
  - `fee` PaymentRequestFeeInfo
    - `percent` number, double, nullable
    - `feeUsd` number, double, nullable
    - `feeBaseUnits` integer
    - `feeAmount` string, nullable
    - `currency` string, nullable
    - `waived` boolean
    - `settledAt` string, date-time, nullable
  - `amountMismatch` AmountMismatchInfo
    - `txId` string, nullable
    - `expectedBaseUnits` integer
    - `receivedBaseUnits` integer
    - `differenceBaseUnits` integer
    - `receivedFormatted` string, nullable
    - `differenceFormatted` string, nullable
    - `confirmations` integer
    - `detectedAt` string, date-time
    - `acceptedAt` string, date-time, nullable
    - `acceptReason` string, nullable
    - `acceptedBy` string, nullable
    - `reviewState` string, nullable
    - `rejectedAt` string, date-time, nullable
    - `rejectReason` string, nullable
    - `rejectedBy` string, nullable
    - `reviewReason` string, nullable
  - `declineNote` string, nullable
  - `shortfallPolicy` ShortfallPolicyDto
    - `absorbUpToPercent` number, double
    - `absorbedBy` string, nullable
  - `changeSignals` string[], nullable
  - `changeNotes` string[], nullable
  - `optionChangeSignals` OptionChangeSignalsInfo[], nullable
    - `currency` 'Btc' | 'Usdc' | 'Usdt' | 'Eurc' | 'Sol' | 'Eth'
    - `network` 'Mainnet' | 'Testnet4' | 'Signet' | 'Regtest' | 'Solana' | 'SolanaDevnet' | 'Ethereum' | 'EthereumSepolia' | 'Base' | 'BaseSepolia' | 'Arbitrum' | 'ArbitrumSepolia' | 'Polygon' | 'PolygonAmoy'
    - `method` 'MultiOutput' | 'Lightning'
    - `signals` string[], nullable
    - `notes` string[], nullable

## Other responses

- `201`: Created

---

[API](https://skmtc.dev/send21/apis/send21-api.md) · [All operations](https://skmtc.dev/send21/apis/send21-api/llms.txt) · [OpenAPI document](https://skmtc.dev/send21/apis/send21-api/revisions/d61e1fc21a3e?raw)
