Payabli paymentLink API
The paymentLink API from Payabli — 11 operation(s) for paymentlink.
The paymentLink API from Payabli — 11 operation(s) for paymentlink.
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-paymentlink-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: reference Payment Link 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: paymentLink
paths:
/PaymentLink/{idInvoice}:
post:
operationId: AddPayLinkFromInvoice
summary: Generate payment link from Invoice
description: 'Generates a payment link for an invoice from the invoice ID.
The payment page configuration blocks (`logo`, `page`, `paymentMethods`, `review`, `messageBeforePaying`, `paymentButton`, `notes`, `contactUs`, and `settings`) are optional. When you omit a block, Payabli applies a default rather than hiding it. The block is enabled at a fixed display order, so the generated page stays complete and branded. To hide a section, send the block explicitly with `enabled` set to `false`. An explicit value is always honored and is never replaced by a default. For each block''s default, see its description in the request body.
'
tags:
- paymentLink
parameters:
- name: idInvoice
in: path
description: Invoice ID
required: true
schema:
type: integer
- name: amountFixed
in: query
description: Indicates whether customer can modify the payment amount. A value of `true` means the amount isn't modifiable, a value `false` means the payor can modify the amount to pay.
required: false
schema:
type: boolean
default: true
- name: mail2
in: query
description: List of recipient email addresses. When there is more than one, separate them by a semicolon (;).
required: false
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/PayabliApiResponsePaymentLinks'
'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/PaymentPageRequestBody'
/PaymentLink/bill/{billId}:
post:
operationId: AddPayLinkFromBill
summary: Generate payment link from Bill
description: Generates a payment link for a bill from the bill ID. The vendor receives a secure page where they can select their preferred payment method (ACH, virtual card, or check) and complete the payment.
tags:
- paymentLink
parameters:
- name: billId
in: path
description: The Payabli ID for the bill.
required: true
schema:
type: integer
- name: amountFixed
in: query
description: Indicates whether customer can modify the payment amount. A value of `true` means the amount isn't modifiable, a value `false` means the payor can modify the amount to pay.
required: false
schema:
type: boolean
default: true
- name: mail2
in: query
description: List of recipient email addresses. When there is more than one, separate them by a semicolon (;).
required: false
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/PayabliApiResponsePaymentLinks'
'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/PaymentPageRequestBodyOut'
/PaymentLink/load/{paylinkId}:
get:
operationId: getPayLinkFromId
summary: Get payment link from ID
description: Retrieves a payment link by ID.
tags:
- paymentLink
parameters:
- name: paylinkId
in: path
description: ID for payment link
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/GetPayLinkFromIdResponse'
'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'
/PaymentLink/push/{payLinkId}:
post:
operationId: pushPayLinkFromId
summary: Send payment link
description: Send a payment link to the specified email addresses or phone numbers.
tags:
- paymentLink
parameters:
- name: payLinkId
in: path
description: ID for the payment link.
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/PayabliApiResponsePaymentLinks'
'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/PushPayLinkRequest'
/PaymentLink/update/{payLinkId}:
put:
operationId: updatePayLinkFromId
summary: Update payment link
description: Updates a payment link's details.
tags:
- paymentLink
parameters:
- name: payLinkId
in: path
description: ID for the payment link.
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/PayabliApiResponsePaymentLinks'
'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/PayLinkUpdateData'
/PaymentLink/refresh/{payLinkId}:
get:
operationId: refreshPayLinkFromId
summary: Refresh payment link content
description: Refresh a payment link's content after an update.
tags:
- paymentLink
parameters:
- name: payLinkId
in: path
description: ID for the payment link.
required: true
schema:
type: string
- name: amountFixed
in: query
description: Indicates whether customer can modify the payment amount. A value of `true` means the amount isn't modifiable, a value `false` means the payor can modify the amount to pay.
required: false
schema:
type: boolean
default: true
- 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/PayabliApiResponsePaymentLinks'
'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'
/PaymentLink/{payLinkId}:
delete:
operationId: deletePayLinkFromId
summary: Delete payment link
description: Deletes a payment link by ID.
tags:
- paymentLink
parameters:
- name: payLinkId
in: path
description: ID for the payment link.
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/PayabliApiResponsePaymentLinks'
'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'
/PaymentLink/send/{payLinkId}:
get:
operationId: sendPayLinkFromId
summary: Send payment link email
description: Sends a payment link to the specified email addresses.
tags:
- paymentLink
parameters:
- name: payLinkId
in: path
description: ID for the payment link.
required: true
schema:
type: string
- name: attachfile
in: query
description: When `true`, attaches a PDF version of invoice to the email.
required: false
schema:
type: boolean
default: false
- name: mail2
in: query
description: List of recipient email addresses. When there is more than one, separate them by a semicolon (;).
required: false
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/PayabliApiResponsePaymentLinks'
'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'
/PaymentLink/bill/lotNumber/{lotNumber}:
post:
operationId: AddPayLinkFromBillLotNumber
summary: Generate payment link from lot number
description: Generates a vendor payment link for a specific bill lot number. This allows you to pay all bills with the same lot number for a vendor with a single payment link.
tags:
- paymentLink
parameters:
- name: lotNumber
in: path
description: Lot number of the bills to pay. All bills with this lot number will be included.
required: true
schema:
type: string
- name: entryPoint
in: query
description: The entity's entrypoint identifier. [Learn more](/developers/api-reference/api-overview#entrypoint-vs-entry)
required: true
schema:
$ref: '#/components/schemas/Entry'
- name: vendorNumber
in: query
description: The vendor number for the vendor being paid with this payment link.
required: true
schema:
type: string
- name: mail2
in: query
description: List of recipient email addresses. When there is more than one, separate them by a semicolon (;).
required: false
schema:
type: string
- name: amountFixed
in: query
description: Indicates whether customer can modify the payment amount. A value of `true` means the amount isn't modifiable, a value `false` means the payor can modify the amount to pay.
required: false
schema:
type: string
default: 'true'
- 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/PayabliApiResponsePaymentLinks'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentPageRequestBodyOut'
/PaymentLink/out/{paylinkId}:
patch:
operationId: patchOutPaymentLink
summary: Update Pay Out payment link
description: Partially updates a Pay Out payment link's content, expiration date, and/or status. Use this to modify the payment page configuration, extend or change the expiration, or cancel a link. Updating the expiration date of an expired link reactivates it to Active status.
tags:
- paymentLink
parameters:
- name: paylinkId
in: path
description: ID for the payment link.
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/PayabliApiResponsePaymentLinks'
'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/PatchOutPaymentLinkRequest'
/PaymentLink/updateOut/{paylinkId}:
patch:
operationId: updatePayLinkOutFromId
summary: Update Pay Out payment link content
description: Updates the payment page content for a Pay Out payment link. Use this to change the branding, messaging, payment methods offered, or other page configuration.
tags:
- paymentLink
parameters:
- name: paylinkId
in: path
description: ID for the payment link.
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/PayabliApiResponsePaymentLinks'
'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/PaymentPageRequestBodyOut'
components:
schemas:
ContactElement:
type: object
properties:
emailLabel:
type: string
description: Custom content for email
enabled:
$ref: '#/components/schemas/Enabled'
header:
type: string
description: Header text for section
order:
$ref: '#/components/schemas/Order'
paymentIcons:
type: boolean
description: Flag indicating if icons for accepted card brands will be shown
phoneLabel:
type: string
description: Custom content for phone number
title: ContactElement
PageIdentifier:
type: string
description: Auxiliary validation used internally by payment pages and components.
title: PageIdentifier
AdditionalData:
type: object
additionalProperties:
type: object
additionalProperties:
description: Any type
description: "Custom dictionary of key:value pairs. You can use this field to store any\ndata related to the object or for your system. If you are using\n[custom identifiers](/developers/developer-guides/entities-customers),\npass those in this object. Max length for a value is 100 characters.\nExample usage:\n\n```json\n{\n \"additionalData\": {\n \"key1\": \"value1\",\n \"key2\": \"value2\",\n \"key3\": \"value3\"\n }\n}\n```\n"
title: AdditionalData
ResponseText:
type: string
description: 'Response text for operation: ''Success'' or ''Declined''.
'
title: ResponseText
PaymentLinkStatus:
type: string
enum:
- Active
- Expired
- Canceled
- Deleted
description: The status of a payment link.
title: PaymentLinkStatus
FrequencyList:
type: object
properties:
annually:
type: boolean
description: Enable or disable the annual frequency.
every2Weeks:
type: boolean
description: Enable or disable the every-two-weeks frequency.
every3Months:
type: boolean
description: Enable or disable the every-three-months frequency.
every6Months:
type: boolean
description: Enable or disable the every-six-months frequency.
monthly:
type: boolean
description: Enable or disable the monthly frequency.
onetime:
type: boolean
description: Enable or disable the one-time frequency.
weekly:
type: boolean
description: Enable or disable the weekly frequency.
title: FrequencyList
MethodElementSettingsApplePayButtonStyle:
type: string
enum:
- black
- white-outline
- white
default: black
description: 'The Apple Pay button style. See
[Apple Pay Button Style](/developers/developer-guides/hosted-payment-page-apple-pay#param-applepay-button-style)
for more information.
'
title: MethodElementSettingsApplePayButtonStyle
LabelElement:
type: object
properties:
enabled:
$ref: '#/components/schemas/Enabled'
label:
type: string
description: Label to display for section or element
order:
$ref: '#/components/schemas/Order'
title: LabelElement
MethodElementSettingsApplePay:
type: object
properties:
buttonStyle:
$ref: '#/components/schemas/MethodElementSettingsApplePayButtonStyle'
default: black
description: The Apple Pay button style. See [Apple Pay Button Style](/developers/developer-guides/hosted-payment-page-apple-pay#param-applepay-button-style) for more information.
buttonType:
$ref: '#/components/schemas/MethodElementSettingsApplePayButtonType'
default: pay
description: The text on Apple Pay button. See [Apple Pay Button Type](/developers/developer-guides/hosted-payment-page-apple-pay#param-applepay-button-type) for more information.
language:
$ref: '#/components/schemas/MethodElementSettingsApplePayLanguage'
default: en-US
description: The Apple Pay button locale. See [Apple Pay Button Language](/developers/developer-guides/hosted-payment-page-apple-pay#param-applepay-language) for more information.
title: MethodElementSettingsApplePay
AllowOverride:
type: boolean
description: 'Whether the configured service fee can be overridden at the transaction
level.
'
title: AllowOverride
PayorFields:
type: object
properties:
display:
type: boolean
description: Flag indicating if the input field will show in container
fixed:
type: boolean
description: Flag indicating if the value in input field is read-only or not.
identifier:
type: boolean
description: Flag indicating if the input field is a customer identifier
label:
type: string
description: Label to display for field
name:
type: string
description: Name of field to show. Should be one of the standard customer fields or a custom field name
order:
$ref: '#/components/schemas/Order'
required:
type: boolean
description: Flag indicating if the input field is required for validation
validation:
type: string
description: "Type of validation to apply to the input field Accepted values:\n\n - alpha for alphabetical\n\n - numbers for numeric\n\n - text for alphanumeric\n\n - email for masked email address input\n\n - phone for US phone numbers"
value:
type: string
description: Pre-populated value for field
width:
type: integer
description: "Numeric value indicating the size of input relative to the container. Accepted values:\n\n - 4 = 1/3\n\n - 6 = 1/2\n\n - 8 = 2/3\n\n - 12 = 3/3"
title: PayorFields
DisplayProperty:
type: object
properties:
display:
type: boolean
description: When `true`, the field is displayed on the receipt.
Fixed:
type: boolean
description: This field is unused.
name:
type: string
description: The field's name.
title: DisplayProperty
IsSuccess:
type: boolean
description: 'Boolean indicating whether the operation was successful. A `true` value
indicates success. A `false` value indicates failure.
'
title: IsSuccess
HeaderElement:
type: object
properties:
enabled:
$ref: '#/components/schemas/Enabled'
header:
type: string
description: Header text for section
order:
$ref: '#/components/schemas/Order'
title: HeaderElement
MethodElementSettingsApplePayLanguage:
type: string
enum:
- en-US
- ar-AB
- ca-ES
- zh-CN
- zh-HK
- zh-TW
- hr-HR
- cs-CZ
- da-DK
- de-DE
- nl-NL
- en-AU
- en-GB
- fi-FI
- fr-CA
- fr-FR
- el-GR
- he-IL
- hi-IN
- hu-HU
- id-ID
- it-IT
- ja-JP
- ko-KR
- ms-MY
- nb-NO
- pl-PL
- pt-BR
- pt-PT
- ro-RO
- ru-RU
- sk-SK
- es-MX
- es-ES
- sv-SE
- th-TH
- tr-TR
- uk-UA
- vi-VN
default: en-US
description: 'The Apple Pay button locale. See
[Apple Pay Button Language](/developers/developer-guides/hosted-payment-page-apple-pay#param-applepay-language)
for more information.
'
title: MethodElementSettingsApplePayLanguage
IdempotencyKey:
type: string
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. The key persists for 2 minutes. After 2 minutes, you can reuse
the key if needed.
'
title: IdempotencyKey
FileContentFtype:
type: string
enum:
- pdf
- doc
- docx
- jpg
- jpeg
- png
- gif
- txt
description: The MIME type of the file (if content is provided).
title: FileContentFtype
PayabliErrorBody:
type: object
properties:
isSuccess:
type: boolean
description: Always `false` for error responses.
responseCode:
type: integer
description: 'Code for the response. Learn more in
[API Response Codes](/developers/api-reference/api-responses).
'
responseText:
type: string
description: Error text describing what went wrong.
responseData:
$
# --- truncated at 32 KB (60 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/payabli/refs/heads/main/openapi/payabli-paymentlink-api-openapi.yml