Payabli paymentLink API
The paymentLink API from Payabli — 11 operation(s) for paymentlink.
The paymentLink API from Payabli — 11 operation(s) for paymentlink.
openapi: 3.1.0
info:
title: API reference Bill paymentLink 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:
PaymentLinkStatus:
type: string
enum:
- Active
- Expired
- Canceled
- Deleted
description: The status of a payment link.
title: PaymentLinkStatus
MethodsListOut:
type: object
properties:
ach:
type: boolean
description: When `true`, ACH bank transfer is offered as a payout method.
check:
type: boolean
description: When `true`, physical check is offered as a payout method.
vcard:
type: boolean
description: When `true`, virtual card (vCard) is offered as a payout method.
description: Payment methods available for Pay Out payment links. Controls which payout options are offered to the vendor.
title: MethodsListOut
MethodsList:
type: object
properties:
amex:
type: boolean
description: When `true`, American Express is accepted.
applePay:
type: boolean
description: When `true`, Apple Pay is accepted.
googlePay:
type: boolean
description: When `true`, Google Pay is accepted.
discover:
type: boolean
description: When `true`, Discover is accepted.
eCheck:
type: boolean
description: When `true`, ACH is accepted.
mastercard:
type: boolean
description: When `true`, Mastercard is accepted.
visa:
type: boolean
description: When `true`, Visa is accepted.
diners:
type: boolean
description: When `true`, Diners Club is accepted.
jcb:
type: boolean
description: When `true`, JCB is accepted.
rdc:
type: boolean
description: When `true`, Remote Deposit Capture (RDC) is accepted.
title: MethodsList
SettingElement:
type: object
properties:
enabled:
$ref: '#/components/schemas/Enabled'
fields:
type: array
items:
$ref: '#/components/schemas/DisplayProperty'
description: Fields to display on the reciept.
order:
$ref: '#/components/schemas/Order'
sendAuto:
type: boolean
default: true
description: When `true`, Payabli automatically sends the receipt to the payor email address.
sendManual:
type: boolean
default: false
description: When `true`, you must send the reciept to the payor manually using the [/MoneyIn/sendreceipt/\{transId\}](/developers/api-reference/moneyin/send-receipt-for-transaction) endpoint.
title: SettingElement
MethodElementSettingsApplePayButtonType:
type: string
enum:
- plain
- buy
- donate
- check-out
- book
- continue
- top-up
- order
- rent
- support
- contribute
- tip
- pay
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.
'
title: MethodElementSettingsApplePayButtonType
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
ReceiptContent:
type: object
properties:
amount:
$ref: '#/components/schemas/Element'
description: Section amount of payment receipt
contactUs:
$ref: '#/components/schemas/Element'
description: Section contactUs of payment receipt
details:
$ref: '#/components/schemas/Element'
description: Section payment details of payment receipt
logo:
$ref: '#/components/schemas/Element'
description: Section logo of payment receipt
messageBeforeButton:
$ref: '#/components/schemas/LabelElement'
description: Section message of payment receipt
page:
$ref: '#/components/schemas/PageElement'
description: Section page of payment receipt
paymentButton:
$ref: '#/components/schemas/LabelElement'
description: Section payment button of payment receipt
paymentInformation:
$ref: '#/components/schemas/Element'
description: Section payment information of payment receipt
settings:
$ref: '#/components/schemas/SettingElement'
description: The receipt's settings.
description: Object containing receipt body configuration
title: ReceiptContent
AccountId:
type: string
description: Custom identifier for payment connector.
title: AccountId
PushPayLinkRequest:
oneOf:
- type: object
properties:
channel:
type: string
enum:
- email
description: 'Discriminator value: email'
additionalEmails:
type: array
items:
type: string
description: 'List of additional email addresses you want to send the paylink to, formatted as an array.
Payment links and opt-in requests are sent to the customer email address on file, and additional
recipients can be specified here.'
attachFile:
type: boolean
description: When `true`, attaches a PDF version of the invoice to the email.
required:
- channel
description: email variant
- type: object
properties:
channel:
type: string
enum:
- sms
description: 'Discriminator value: sms'
required:
- channel
description: sms variant
discriminator:
propertyName: channel
description: Request body for the push paylink operation.
title: PushPayLinkRequest
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
PageContent:
type: object
properties:
amount:
$ref: '#/components/schemas/AmountElement'
description: Amount section of payment page
autopay:
$ref: '#/components/schemas/AutoElement'
description: Autopay section of payment page
contactUs:
$ref: '#/components/schemas/ContactElement'
description: ContactUs section of payment page
entry:
type: string
description: Identifier of entry point owner of page
invoices:
$ref: '#/components/schemas/InvoiceElement'
description: Invoices section of payment page
logo:
$ref: '#/components/schemas/Element'
description: Logo section of payment page
messageBeforePaying:
$ref: '#/components/schemas/LabelElement'
description: Message section of payment page
name:
type: string
description: Descriptor of page
notes:
$ref: '#/components/schemas/NoteElement'
description: Notes section of payment page
page:
$ref: '#/components/schemas/PageElement'
description: Page header section of payment page
paymentButton:
$ref: '#/components/schemas/LabelElement'
description: Payment button section of payment page
paymentMethods:
$ref: '#/components/schemas/MethodElement'
description: Payment methods section of payment page
payor:
$ref: '#/components/schemas/PayorElement'
description: Customer/Payor section of payment page
review:
$ref: '#/components/schemas/HeaderElement'
description: Review section of payment page
subdomain:
$ref: '#/components/schemas/Subdomain'
description: Unique identifier assigned to the page.
title: PageContent
AdditionalData:
type: object
additionalProperties:
type: object
additionalProperties:
description: Any type
description: "Custom dictionary of key:value pairs. You can use this field to store an
# --- 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