***
title: Manage vendor payment links
subtitle: >-
Generate, send, and manage payment links for bills so vendors can choose their
preferred payment method
description: >-
Use the Payabli API to generate and send vendor payment links. Vendors select
their preferred payout method — ACH, virtual card, or check — through a
secure, hosted page.
'og:description': >-
Use the Payabli API to generate and send vendor payment links. Vendors select
their preferred payout method — ACH, virtual card, or check — through a
secure, hosted page.
keywords: >-
vendor payment links, pay out, vendor enablement, payment links, bill
payments, ACH, virtual card, vCard, check payout
slug: guides/pay-out-developer-payment-links-manage
icon: link-simple
area:
* Pay Out
subArea:
* Payouts
audience:
* developers
***
Use vendor payment links to let vendors choose how they want to get paid. When you generate a payment link for a bill, the vendor receives a secure, hosted page where they can select their preferred payment method — ACH, virtual card (vCard), or check. Their choice is stored and reused for future payouts, so you don't need to collect payment details manually or send additional links.
This is ideal for on-demand payout workflows where you need vendors to self-enroll their payment preferences without building your own collection UI.
## Considerations
Keep these in mind when working with vendor payment links:
* You must [create a vendor](/guides/pay-out-developer-vendors-manage) and a [bill](/guides/pay-out-developer-bills-manage) before generating a payment link.
* The payment link is tied to a specific bill. When the vendor completes the link, Payabli automatically authorizes and captures the payout, and the vendor's payment method preference is stored for future use.
* Paypoints control which payment methods are offered to the vendor. You can configure the link to show any combination of ACH, virtual card, and check.
* You can send payment links via email.
## Payment methods
Vendor payment links support the following payout methods. Paypoints determine which methods to offer each vendor.
| Method | Description | Delivery speed |
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------- | -------------------- |
| **Virtual card (vCard)** | A single-use virtual credit card delivered to the vendor via secure email. Includes card number, expiration, and CVV behind MFA. | Same day or next day |
| **ACH transfer** | A direct electronic bank transfer. Same-day and standard options available depending on underwriting approval. | 1 – 3 business days |
| **Check** | A physical check generated and mailed to the vendor's address on file. | 5 – 14 business days |
Payments captured before 3:30 PM ET typically pull funds from the payer's account within 2–3 business days. A 3-day hold is applied to ensure funds clear before disbursement to the vendor.
## Generate a payment link
Send a POST request to `/api/PaymentLink/bill/{billId}` to create a payment link for a bill. Use the `mail2` query parameter to send the link directly to the vendor's email — pass one or more email addresses separated by semicolons (for example, `mail2=ap@vendor.com; billing@vendor.com`). See the [API reference](/developers/api-reference/paymentlink/generate-payment-link-from-bill) for full documentation.
Use the request body to configure the payment page appearance, including branding, messaging, and which payout methods are offered to the vendor. The `paymentMethods.methods` object uses Pay Out-specific field names:
* `ach` — offer ACH bank transfer
* `vcard` — offer virtual card
* `check` — offer physical check
Set `defaultMethod` to highlight a preferred option (for example, `"vcard"`), and use `allowMultipleMethods: true` to let the vendor pick from all enabled options.
A successful request returns a 200 response with the payment link ID.
## Send a payment link
Send a POST request to `/api/PaymentLink/push/{payLinkId}` to deliver a payment link to the vendor via email. See the [API reference](/developers/api-reference/paymentlink/send-payment-link) for full documentation.
If you included the `mail2` query parameter when generating the link, the vendor already received it. Use this endpoint to resend the link or send it to additional recipients.
A successful request returns a 200 response with the payment link ID.
## What the vendor sees
When the vendor opens the payment link, they see a secure, branded page with the bill details and available payment methods. If you set a `defaultMethod` when generating the link, that method is highlighted as the recommended option. The vendor can choose a different method if multiple methods are enabled.
The vendor selects their preferred method and provides the required details:
* **ACH**: Bank account and routing number
* **Virtual card**: Email address for secure card delivery
* **Check**: Mailing address (if not already on file)
When the vendor submits their selection, Payabli automatically authorizes and captures the payout for that bill. The bill status transitions follow the same flow as any other authorize and capture action — for example, moving from Active to In Transit to Paid. You don't need to call the authorize or capture endpoints separately.
The vendor's payment method preference is also securely tokenized and stored on their vendor record. You can use this stored preference for future payouts without sending additional links.
## Get payment link details
Send a GET request to `/api/PaymentLink/{payLinkId}` to retrieve information about a specific payment link. See the [API reference](/developers/api-reference/paymentlink/get-payment-link-from-id) for full documentation.
A successful request returns a 200 response with the payment link details.
## Update a payment link
There are two ways to update a Pay Out payment link:
### Update status or expiration
Send a PATCH request to `/api/PaymentLink/out/{paylinkId}` to update the link's status, expiration date, or page content. See the [API reference](/developers/api-reference/paymentlink/update-payout-payment-link) for full documentation.
Use this to cancel a link, extend its expiration, or reactivate an expired link. Setting a new expiration date on an expired link automatically reactivates it to `Active` status.
Payment link statuses: `Active`, `Expired`, `Canceled`, `Deleted`.
This example reactivates an expired link with a new expiration date:
### Update page content
Send a PATCH request to `/api/PaymentLink/updateOut/{paylinkId}` to update the payment page configuration — branding, messaging, payment methods offered, and other page settings. See the [API reference](/developers/api-reference/paymentlink/update-payout-payment-link-content) for full documentation.
This example changes which payment methods are offered to the vendor:
## Delete a payment link
Send a DELETE request to `/api/PaymentLink/{payLinkId}` to delete a payment link. See the [API reference](/developers/api-reference/paymentlink/delete-payment-link) for full documentation.
A successful request returns a 200 response confirming the payment link was deleted.
## Stored payment preferences
When a vendor completes a payment link, their chosen method and payment details are securely tokenized and stored on their vendor record. You can retrieve a vendor's stored methods by calling `GET /api/Vendor/{id}` — the response includes a `storedMethods` array with each method's `idPmethod` (the stored method ID), `method` type, and masked account details.
For subsequent payouts, reference the stored method by passing its `storedMethodId` in the authorize request:
```bash
curl -X POST "https://api-sandbox.payabli.com/api/MoneyOut/authorize" \
-H "Content-Type: application/json" \
-H "requestToken: $API_TOKEN" \
-d '{
"entryPoint": "$ENTRY_POINT",
"paymentMethod": {
"method": "ach",
"storedMethodId": "$STORED_METHOD_ID"
},
"paymentDetails": {
"totalAmount": 1500.00
},
"vendorData": {
"vendorNumber": "VENDOR-001"
},
"invoiceData": [
{
"billId": 12345,
"invoiceNumber": "INV-2025-002",
"netAmount": "1500.00"
}
]
}'
```
You can also set a default stored method on the vendor record using the `defaultMethodId` field on the vendor object. This identifies which stored method to use by default for that vendor's payouts.
For more on authorizing and capturing payouts, see [Manage payouts](/guides/pay-out-developer-payouts-manage).