Payabli moneyOut API
The moneyOut API from Payabli — 12 operation(s) for moneyout.
The moneyOut API from Payabli — 12 operation(s) for moneyout.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/payabli-moneyout-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: reference Money Out API
version: 1.0.0
servers:
- url: https://api-sandbox.payabli.com/api
description: Sandbox
- url: https://api.payabli.com/api
description: Production
tags:
- name: moneyOut
paths:
/MoneyOut/authorize:
post:
operationId: AuthorizeOut
summary: Authorize a payout
description: 'Authorizes a transaction for payout.
If you don''t pass `autoCapture` with a value of `true`, authorized transactions aren''t flagged for settlement until captured. Use the `referenceId` returned in the response to capture the transaction.
When `autoCapture` is `true`, Payabli captures the transaction asynchronously after authorization. The response confirms only that the transaction was authorized; it doesn''t confirm that capture succeeded. To confirm capture, listen for the [`payout_transaction_approvedcaptured`](/developers/api-reference/webhooks-overview/payout-transaction-approved-captured) webhook event.
If a velocity fraud alert is triggered, the endpoint returns a `202` response with `responseCode` `9051`, and the authorization is held for risk review rather than rejected. If a risk policy blocks the transaction, the endpoint returns a `422` response with `responseCode` `9005`, a terminal rejection.
For check payouts, Payabli validates the remit (mailing) address at authorization. If the address fails deliverability validation, the endpoint returns a `422` response and doesn''t charge the paypoint. Correct the address and re-authorize. Other payout rails (ACH, RTP, virtual card, wire, and managed payables) aren''t affected.'
tags:
- moneyOut
parameters:
- name: allowDuplicatedBills
in: query
description: When `true`, the authorization bypasses the requirement for unique bills, identified by vendor invoice number. This allows you to make more than one payout authorization for a bill, like a split payment.
required: false
schema:
type: boolean
default: false
- name: doNotCreateBills
in: query
description: When `true`, Payabli won't automatically create a bill for this payout transaction.
required: false
schema:
type: boolean
default: false
- name: forceVendorCreation
in: query
description: When `true`, the request creates a new vendor record, regardless of whether the vendor already exists.
required: false
schema:
type: boolean
default: false
- name: Authorization
in: header
description: 'OAuth2 Bearer access token from the client-credentials flow. See [OAuth authentication](/developers/oauth-authentication).
'
required: true
schema:
type: string
- name: idempotencyKey
in: header
description: _Optional but recommended_ A unique ID that you can include to prevent duplicating objects or transactions in the case that a request is sent more than once. This key isn't generated in Payabli, you must generate it yourself. This key persists for 2 minutes. After 2 minutes, you can reuse the key if needed.
required: false
schema:
$ref: '#/components/schemas/IdempotencyKey'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AuthCapturePayoutResponse'
'400':
description: Bad request / invalid data.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'401':
description: Unauthorized request.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'422':
description: 'Blocked by fraud control. Returned when a risk policy blocks the transaction
(response code `9005`). This is a terminal outcome — the transaction is
rejected and won''t proceed, so the body carries `isSuccess: false` and
`responseCode: 9005`.
'
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'503':
description: Database connection error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AuthorizePayoutBody'
/MoneyOut/capture/{referenceId}:
get:
operationId: CaptureOut
summary: Capture an authorized payout transaction
description: 'Captures a single authorized payout transaction by ID. If the transaction was authorized with `autoCapture` set to `true`, you don''t need to call this endpoint to capture the transaction for processing.
If a velocity fraud alert is triggered, the endpoint returns a `202` response with `responseCode` `9051`, and the capture is held for risk review rather than rejected. If a risk policy blocks the transaction, the endpoint returns a `422` response with `responseCode` `9005`, a terminal rejection.'
tags:
- moneyOut
parameters:
- name: referenceId
in: path
description: The ID for the payout transaction.
required: true
schema:
type: string
- name: Authorization
in: header
description: 'OAuth2 Bearer access token from the client-credentials flow. See [OAuth authentication](/developers/oauth-authentication).
'
required: true
schema:
type: string
- name: idempotencyKey
in: header
description: _Optional but recommended_ A unique ID that you can include to prevent duplicating objects or transactions in the case that a request is sent more than once. This key isn't generated in Payabli, you must generate it yourself. This key persists for 2 minutes. After 2 minutes, you can reuse the key if needed.
required: false
schema:
$ref: '#/components/schemas/IdempotencyKey'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AuthCapturePayoutResponse'
'400':
description: Bad request / invalid data.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'401':
description: Unauthorized request.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'422':
description: 'Blocked by fraud control. Returned when a risk policy blocks the transaction
(response code `9005`). This is a terminal outcome — the transaction is
rejected and won''t proceed, so the body carries `isSuccess: false` and
`responseCode: 9005`.
'
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'503':
description: Database connection error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
/MoneyOut/captureAll:
post:
operationId: CaptureAllOut
summary: Capture a list of authorized payout transactions
description: Captures an array of authorized payout transactions for settlement. The maximum number of transactions that can be captured in a single request is 500.
tags:
- moneyOut
parameters:
- name: Authorization
in: header
description: 'OAuth2 Bearer access token from the client-credentials flow. See [OAuth authentication](/developers/oauth-authentication).
'
required: true
schema:
type: string
- name: idempotencyKey
in: header
description: _Optional but recommended_ A unique ID that you can include to prevent duplicating objects or transactions in the case that a request is sent more than once. This key isn't generated in Payabli, you must generate it yourself. This key persists for 2 minutes. After 2 minutes, you can reuse the key if needed.
required: false
schema:
$ref: '#/components/schemas/IdempotencyKey'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CaptureAllOutResponse'
'400':
description: Bad request / invalid data.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'401':
description: Unauthorized request.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'503':
description: Database connection error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
requestBody:
content:
application/json:
schema:
type: array
items:
type: string
/MoneyOut/cancel/{referenceId}:
delete:
operationId: CancelOutDelete
summary: Cancel a payout transaction
description: Cancel a payout transaction by ID.
tags:
- moneyOut
parameters:
- name: referenceId
in: path
description: The ID for the payout transaction.
required: true
schema:
type: string
- name: Authorization
in: header
description: 'OAuth2 Bearer access token from the client-credentials flow. See [OAuth authentication](/developers/oauth-authentication).
'
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliApiResponse0000'
'400':
description: Bad request / invalid data.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'401':
description: Unauthorized request.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'503':
description: Database connection error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
get:
operationId: CancelOutGet
summary: Cancel a payout transaction
description: Cancel a payout transaction by ID.
tags:
- moneyOut
parameters:
- name: referenceId
in: path
description: The ID for the payout transaction.
required: true
schema:
type: string
- name: Authorization
in: header
description: 'OAuth2 Bearer access token from the client-credentials flow. See [OAuth authentication](/developers/oauth-authentication).
'
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliApiResponse0000'
'400':
description: Bad request / invalid data.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'401':
description: Unauthorized request.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'503':
description: Database connection error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
/MoneyOut/cancelAll:
post:
operationId: CancelAllOut
summary: Cancel list of payout transactions
description: Cancels an array of payout transactions.
tags:
- moneyOut
parameters:
- name: Authorization
in: header
description: 'OAuth2 Bearer access token from the client-credentials flow. See [OAuth authentication](/developers/oauth-authentication).
'
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CaptureAllOutResponse'
'400':
description: Bad request / invalid data.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'401':
description: Unauthorized request.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'503':
description: Database connection error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
requestBody:
content:
application/json:
schema:
type: array
items:
type: string
/MoneyOut/details/{transId}:
get:
operationId: PayoutDetails
summary: Get details for a processed payout transaction
description: Returns details for a processed money out transaction.
tags:
- moneyOut
parameters:
- name: transId
in: path
description: ReferenceId for the transaction (PaymentId).
required: true
schema:
type: string
- name: Authorization
in: header
description: 'OAuth2 Bearer access token from the client-credentials flow. See [OAuth authentication](/developers/oauth-authentication).
'
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/BillDetailResponse'
'400':
description: Bad request / invalid data.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'401':
description: Unauthorized request.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'503':
description: Database connection error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
/MoneyOut/checkimage/{assetName}:
get:
operationId: GetCheckImage
summary: Get check image
description: 'Retrieve the image of a check associated with a processed transaction.
The check image is returned in the response body as a base64-encoded string.
The check image is only available for payouts that have been processed.'
tags:
- moneyOut
parameters:
- name: assetName
in: path
description: "Name of the check asset to retrieve. This is returned as `filename` in the `CheckData` object\nin the response when you make a GET request to `/MoneyOut/details/{transId}`.\n```\n \"CheckData\": {\n \"ftype\": \"PDF\",\n \"filename\": \"check133832686289732320_01JKBNZ5P32JPTZY8XXXX000000.pdf\",\n \"furl\": \"\",\n \"fContent\": \"\"\n }\n```\n"
required: true
schema:
type: string
- name: Authorization
in: header
description: 'OAuth2 Bearer access token from the client-credentials flow. See [OAuth authentication](/developers/oauth-authentication).
'
required: true
schema:
type: string
responses:
'200':
description: A base64-encoded string of the check image.
content:
application/json:
schema:
type: string
'400':
description: Bad request / invalid data.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'401':
description: Unauthorized request.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'503':
description: Database connection error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
/MoneyOut/status/{transId}/{checkPaymentStatus}:
patch:
operationId: UpdateCheckPaymentStatus
summary: Update check payment status
description: 'Updates the status of a processed check payment transaction. This endpoint handles the status transition, updates related bills, creates audit events, and triggers notifications.
The transaction must meet all of the following criteria:
- **Status**: Must be in Processing or Processed status.
- **Payment method**: Must be a check payment method.
### Allowed status values
| Value | Status | Description |
|-------|--------|-------------|
| `0` | Cancelled/Voided | Cancels the check transaction. Reverts associated bills to their previous state (Approved or Active), creates "Cancelled" events, and sends a `payout_transaction_voidedcancelled` notification if the notification is enabled. |
| `5` | Paid | Marks the check transaction as paid. Updates associated bills to "Paid" status, creates "Paid" events, and sends a `payout_transaction_paid` notification if the notification is enabled. |'
tags:
- moneyOut
parameters:
- name: transId
in: path
description: The Payabli transaction ID for the check payment.
required: true
schema:
type: string
- name: checkPaymentStatus
in: path
description: The new status to apply to the check transaction. To mark a check as `Paid`, send 5. To mark a check as `Cancelled`, send 0.
required: true
schema:
$ref: '#/components/schemas/AllowedCheckPaymentStatus'
- name: Authorization
in: header
description: 'OAuth2 Bearer access token from the client-credentials flow. See [OAuth authentication](/developers/oauth-authentication).
'
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliApiResponse00Responsedatanonobject'
'400':
description: Bad request / invalid data.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'401':
description: Unauthorized request.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'503':
description: Database connection error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
/MoneyOut/reissue:
post:
operationId: ReissueOut
summary: Reissue a payout transaction
description: 'Reissues a payout transaction with a new payment method. This creates a new transaction linked to the original and marks the original transaction as reissued.
The original transaction must be in **Processing** or **Processed** status. The payment method in the request body is used directly. The endpoint doesn''t fall back to vendor-managed payment methods.
The new transaction goes through the standard authorize-and-capture flow automatically. Both the original and new transactions are linked through their event histories for audit purposes.'
tags:
- moneyOut
parameters:
- name: transId
in: query
description: The transaction ID of the payout to reissue.
required: true
schema:
type: string
- name: Authorization
in: header
description: 'OAuth2 Bearer access token from the client-credentials flow. See [OAuth authentication](/developers/oauth-authentication).
'
required: true
schema:
type: string
- name: idempotencyKey
in: header
description: _Optional but recommended_ A unique ID that you can include to prevent duplicating objects or transactions in the case that a request is sent more than once. This key isn't generated in Payabli, you must generate it yourself. This key persists for 2 minutes. After 2 minutes, you can reuse the key if needed.
required: false
schema:
$ref: '#/components/schemas/IdempotencyKey'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ReissuePayoutResponse'
'400':
description: Bad request / invalid data.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'401':
description: Unauthorized request.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'403':
description: Consent error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'503':
description: Database connection error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ReissuePayoutBody'
/MoneyOut/vcard/{cardToken}:
get:
operationId: VCardGet
summary: Get a virtual card
description: Retrieves vCard details for a single card in an entrypoint.
tags:
- moneyOut
parameters:
- name: cardToken
in: path
description: ID for a virtual card.
required: true
schema:
type: string
- name: Authorization
in: header
description: 'OAuth2 Bearer access token from the client-credentials flow. See [OAuth authentication](/developers/oauth-authentication).
'
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/VCardGetResponse'
'400':
description: Bad request / invalid data.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'401':
description: Unauthorized request.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'503':
description: Database connection error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
/MoneyOutCard/vcard/{cardToken}/renew:
put:
operationId: RenewVCard
summary: Renew a virtual card
description: 'Renews an expired or expiring virtual card by extending its expiration date to a future month.
The card must be a virtual card that hasn''t been fully used. The new expiration date must be in `MM-YYYY` or `MM/YYYY` format and no more than 2 years and 363 days in the future. The card expires on the last day of the month you specify.
On success, `referenceId` holds the renewed card''s token (the card processor may issue a new token). The response reuses the standard payout result object, so the payment-transaction fields it carries don''t apply to renewal and always return `null`.'
tags:
- moneyOut
parameters:
- name: cardToken
in: path
description: ID for the virtual card to renew.
required: true
schema:
type: string
- name: Authorization
in: header
description: 'OAuth2 Bearer access token from the client-credentials flow. See [OAuth authentication](/developers/oauth-authentication).
'
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/RenewVCardResponse'
'400':
description: Bad request / invalid data.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'401':
description: Unauthorized request.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'503':
description: Database connection error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RenewVCardRequest'
/vcard/send-card-link:
post:
operationId: SendVCardLink
summary: Send virtual card link
description: Sends a virtual card link via email to the vendor associated with the `transId`.
tags:
- moneyOut
parameters:
- name: Authorization
in: header
description: 'OAuth2 Bearer access token from the client-credentials flow. See [OAuth authentication](/developers/oauth-authentication).
'
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/OperationResult'
'400':
description: Bad request / invalid data.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'401':
description: Unauthorized request.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'500':
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
'503':
description: Database connection error.
content:
application/json:
schema:
$ref: '#/components/schemas/PayabliErrorBody'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SendVCardLinkRequest'
components:
schemas:
OperationResult:
type: object
properties:
message:
type: string
description: Message describing the result. If the virtual card link was sent successfully, this contains the email address to which the link was sent.
success:
type: boolean
description: Indicates whether the operation was successful.
required:
- success
title: OperationResult
SplitFundingContent:
type: object
properties:
accountId:
type: string
description: The accountId for the account the split should be sent to.
amount:
type: number
format: double
description: Amount from the transaction to send to this recipient.
description:
type: string
description: A description for the split.
recipientEntryPoint:
type: string
description: The entrypoint the split should be sent to.
title: SplitFundingContent
RiskReason:
type: string
description: Reason for risk flagging.
title: RiskReason
AvsResponseText:
type: string
description: 'Text code describing the result for address validation (applies only for
card transactions).
'
title: AvsResponseText
ExternalPaypointId:
type: string
description: 'A custom identifier for the paypoint, if applicable.
'
title: ExternalPaypointId
Dbaname:
type: string
description: 'The alternate or common name that this business is doing business under,
usually referred to as a DBA name.
'
title: Dbaname
Contacts:
type: object
properties:
contactEmail:
$ref: '#/components/schemas/Email'
description: Contact email address.
contactName:
type: string
description: Contact name.
contactPhone:
type: string
description: Contact phone number.
contactTitle:
type: string
description: Contact title.
additionalData:
$ref: '#/components/schemas/AdditionalDataString'
title: Contacts
Mcc:
type: string
description: 'Business Merchant Category Code (MCC).
[This resource](http
# --- truncated at 32 KB (114 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/payabli/refs/heads/main/openapi/payabli-moneyout-api-openapi.yml