---
title: "Create a payment"
method: POST
path: "/payments"
tags: ["Payments"]
---

# Create a payment

`POST /payments`

## Request

- Base URL: `https://app-sandbox.resolvepay.com/api`
- URL: `https://app-sandbox.resolvepay.com/api/payments`
- Auth: one of:
  - HTTP bearer
  - HTTP basic
- TypeScript: <https://skmtc.dev/resolvepay/apis/resolve-partners-api-reference/docs/payments/post.ts> (a function with typed inputs; its response is checked against the schema)

Trigger a forwarded payment for an invoice belonging to one of your sub-merchants.

Send `POST /payments` with `invoice_id` and `amount` to create the forward payment in the partner API.

The payment will be forwarded from the bank account of the entity that receives payouts. If the payout receiver is the partner, the partner's bank account will be used. If the payout receiver is the sub-merchant, the sub-merchant's bank account will be used.

The invoice must be sent, and the payment amount must not exceed the invoice's outstanding balance.

## Request body

- PaymentCreateRequest: Create a forwarded payment for a sub-merchant invoice.
  - `invoice_id` string, required: ID of the invoice to create a payment for. The invoice must belong to one of your sub-merchants and must be sent.
  - `amount` number, double, required: Payment amount in dollars. Must be greater than zero and must not exceed the invoice's outstanding balance.

## Response `200`

An object representing a payment.

- Payment
  - `id` string: Unique identifier for the payment.
  - `customer_id` string: Unique identifier of the customer that made the payment.
  - `source` 'api' | 'merchant_user' | 'admin_user' | 'customer_user' | 'payment_gateway' | 'check' | 'guest_checkout': Source of the payment.
  - `amount` number, double: Amount of the payment in USD.
  - `method` 'check' | 'ach_debit' | 'direct_deposit' | 'card' | 'merchant' | 'unapplied_payment_adjustment' | 'credit_note' | 'adjustment' | 'wire': Method of payment made by the customer.
  - `status` 'pending' | 'in_transit' | 'in_review' | 'paid' | 'failed' | 'canceled': Status of the payment. - `pending` - Payment is pending processing. - `in_transit` - Payment has been processed and is in transit. - `in_review` - Payment is being reviewed. - `paid` - Payment has been confirmed and applied to the customer's account. - `failed` - Payment failed confirmation (e.g., bank transfer or credit card payment rejected). - `canceled` - Payment was canceled by request.
  - `created_at` string, date-time: Date the payment was created.
  - `paid_at` string, date-time: Date the payment was confirmed by Resolve and applied to the customer's account.
  - `canceled_at` string, date-time: Date the payment was canceled by request.
  - `failed_at` string, date-time: Date the payment failed processing.
  - `processed_at` string, date-time: Date the payment was processed by Resolve.
  - `scheduled_at` string, date-time: Date the payment was scheduled for processing, if applicable.
  - `processing_fee` number, double: Processing fee for the payment.
  - `canceled_code` string: Code indicating the reason the payment was canceled.
  - `failed_code` string: Code indicating the reason the payment failed processing.
  - `dispute_code` string: Code indicating the reason for a payment dispute.
  - `forward_reason_code` 'ach' | 'check' | 'wire' | 'credit_card' | 'other', nullable: Reason code associated with a forwarded payment. This is populated when the payment was created through the merchant API and may be null for partner API-created payments.
  - `forward_reason_message` string, nullable: Human-readable reason text associated with a forwarded payment. This is populated when the payment was created through the merchant API and may be null for partner API-created payments.
  - `payment_links` object[]: List of records the payment is applied to.
    - `record_id` string: ID of the record.
    - `record_type` 'invoice': Type of record the payment is applied to.
    - `amount` number, double: Amount applied to this record.
  - `created_by_user_id` string: ID of the user who created the payment, if applicable.

## Other responses

- `400`: Bad request error
- `401`: Unauthorized error
- `404`: Not found error
- `422`: Bad request error
- `429`: Rate limit error

---

[API](https://skmtc.dev/resolvepay/apis/resolve-partners-api-reference.md) - [All operations](https://skmtc.dev/resolvepay/apis/resolve-partners-api-reference/llms.txt) - [OpenAPI document](https://skmtc.dev/resolvepay/apis/resolve-partners-api-reference/revisions/5a1c75b8b404?raw)
