BitPay Payouts API
Submit cryptocurrency withdrawal payments to active BitPay recipients.
Submit cryptocurrency withdrawal payments to active BitPay recipients.
openapi: 3.1.0
info:
title: BitPay Bills Payouts API
description: 'BitPay is a cryptocurrency payment processing platform offering REST APIs for accepting Bitcoin and altcoin payments, creating invoices, managing refunds, processing payouts, and accessing settlement and ledger data. BitPay handles cryptocurrency conversion and fiat settlement to bank accounts and crypto wallets.
'
version: 2.0.0
contact:
name: BitPay Support
url: https://support.bitpay.com/hc/en-us
termsOfService: https://www.bitpay.com/legal/terms-of-use
servers:
- url: https://bitpay.com
description: Production server
- url: https://test.bitpay.com
description: Test server
tags:
- name: Payouts
description: Submit cryptocurrency withdrawal payments to active BitPay recipients.
paths:
/payouts:
post:
operationId: createPayout
summary: Create a Payout
description: 'Submit a cryptocurrency withdrawal payment to an active BitPay recipient for customer payouts, marketplace disbursements, affiliate networks, or payroll processing.
'
tags:
- Payouts
parameters:
- name: X-Accept-Version
in: header
required: true
schema:
type: string
enum:
- 2.0.0
- name: X-Identity
in: header
schema:
type: string
- name: X-Signature
in: header
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePayoutRequest'
responses:
'200':
description: Payout created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/PayoutResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
get:
operationId: listPayouts
summary: List Payouts
description: Retrieve a list of payouts, optionally filtered by date range and status.
tags:
- Payouts
parameters:
- name: token
in: query
required: true
schema:
type: string
- name: startDate
in: query
schema:
type: string
format: date
- name: endDate
in: query
schema:
type: string
format: date
- name: status
in: query
schema:
type: string
enum:
- new
- funded
- processing
- complete
- failed
- cancelled
- paid
- unpaid
- name: reference
in: query
schema:
type: string
description: Filter by merchant reference ID.
- name: limit
in: query
schema:
type: integer
- name: offset
in: query
schema:
type: integer
- name: X-Accept-Version
in: header
required: true
schema:
type: string
enum:
- 2.0.0
- name: X-Identity
in: header
schema:
type: string
- name: X-Signature
in: header
schema:
type: string
responses:
'200':
description: List of payouts
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Payout'
/payouts/{payoutId}:
get:
operationId: getPayout
summary: Retrieve a Payout
description: Retrieve a specific payout by its ID.
tags:
- Payouts
parameters:
- name: payoutId
in: path
required: true
schema:
type: string
- name: token
in: query
required: true
schema:
type: string
- name: X-Accept-Version
in: header
required: true
schema:
type: string
enum:
- 2.0.0
- name: X-Identity
in: header
schema:
type: string
- name: X-Signature
in: header
schema:
type: string
responses:
'200':
description: Payout details
content:
application/json:
schema:
$ref: '#/components/schemas/PayoutResponse'
'404':
description: Payout not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
delete:
operationId: cancelPayout
summary: Cancel a Payout
description: Cancel a payout that has not yet been processed.
tags:
- Payouts
parameters:
- name: payoutId
in: path
required: true
schema:
type: string
- name: token
in: query
required: true
schema:
type: string
- name: X-Accept-Version
in: header
required: true
schema:
type: string
enum:
- 2.0.0
- name: X-Identity
in: header
schema:
type: string
- name: X-Signature
in: header
schema:
type: string
responses:
'200':
description: Payout cancelled successfully
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
components:
schemas:
Payout:
type: object
properties:
id:
type: string
description: BitPay payout ID.
amount:
type: number
currency:
type: string
ledgerCurrency:
type: string
reference:
type: string
label:
type: string
notificationURL:
type: string
notificationEmail:
type: string
email:
type: string
recipientId:
type: string
shopperId:
type: string
status:
type: string
enum:
- new
- funded
- processing
- complete
- failed
- cancelled
- paid
- unpaid
requestDate:
type: string
format: date-time
dateExecuted:
type: string
format: date-time
transactions:
type: array
items:
type: object
properties:
amount:
type: number
date:
type: string
format: date-time
txid:
type: string
CreatePayoutRequest:
type: object
required:
- token
- amount
- currency
- ledgerCurrency
properties:
token:
type: string
description: API token with payout facade permissions.
amount:
type: number
description: The amount of the payout request.
currency:
type: string
description: The currency the payout request is denominated in (ISO 4217).
ledgerCurrency:
type: string
description: Ledger currency code set for the account (e.g., USD, BTC).
reference:
type: string
description: Merchant-provided unique reference identifier for the payout.
notificationURL:
type: string
format: uri
description: Webhook URL for payout status notifications.
notificationEmail:
type: string
format: email
description: Email for payout notification.
email:
type: string
format: email
description: The email address of an active recipient.
recipientId:
type: string
description: BitPay recipient ID.
shopperId:
type: string
description: This field is used when the payout is tied to a shopper.
label:
type: string
description: Merchant-provided label for the payout request.
message:
type: string
description: Optional merchant message to include with the payout.
ErrorResponse:
type: object
properties:
status:
type: string
example: error
error:
type: string
description: Error code or type.
message:
type: string
description: Human-readable error message.
code:
type: integer
description: Numeric error code.
PayoutResponse:
type: object
properties:
data:
$ref: '#/components/schemas/Payout'