For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
LogoLogo
AI agentsStatus PageContact sales
HomeGuidesDeveloper ToolsChangelogsCookbooks
HomeGuidesDeveloper ToolsChangelogsCookbooks
    • Payabli developer overview
    • Developer quickstart
    • Developer testing guide
    • Test accounts
  • API
    • Using the API
    • API responses
    • API conventions
    • API changelog
    • Webhooks
  • Embedded Components
    • Overview
    • EmbeddedMethod UI
    • PayMethod UI
    • VirtualTerminal UI
    • ExpressCheckout UI
    • Changelog
  • Server SDKs
    • Server SDKs overview
  • Other tools
    • Postman collection
    • Payabli MCP
    • Agent Skills
    • Example apps
  • Payabli developer overview
  • Developer quickstart
  • Developer testing guide
  • Test accounts
  • Using the API
  • API responses
  • API conventions
  • API changelog
  • June 15, 2026
  • June 11, 2026
  • June 1, 2026
  • May 11, 2026
  • April 13, 2026
  • March 26, 2026
  • March 25, 2026
  • March 16, 2026
  • February 23, 2026
  • February 17, 2026
  • January 26, 2026
  • January 20, 2026
  • December 30, 2025
  • December 23, 2025
  • December 2, 2025
  • November 26, 2025
  • November 24, 2025
  • November 10, 2025
  • October 22, 2025
  • October 21, 2025
  • October 6, 2025
  • September 15, 2025
  • September 8, 2025
  • August 27, 2025
  • August 18, 2025
  • July 21, 2025
  • July 11, 2025
  • July 10, 2025
  • July 8, 2025
  • June 5, 2025
  • May 28, 2025
  • May 22, 2025
  • May 16, 2025
  • May 13, 2025
  • April 18, 2025
  • April 2, 2025
  • March 3, 2025
  • February 24, 2025
  • February 5, 2025
  • January 14, 2025
  • January 1, 2025
  • December 29, 2024
  • December 27, 2024
  • December 23, 2024
  • November 26, 2024
  • November 20, 2024
  • November 19, 2024
  • October 22, 2024
  • October 10, 2024
  • July 23, 2024
  • May 22, 2024
  • April 22, 2024
  • March 20, 2024
  • March 6, 2024
  • February 15, 2024
  • January 31, 2024
  • December 7, 2023
  • November 9, 2023
  • October 20, 2023
  • September 19, 2023
  • August 24, 2023
  • August 1, 2023
  • July 26, 2023
  • June 29, 2023
  • June 1, 2023
  • Overview
  • Make a transaction
  • Authorize transaction
  • Capture transaction
  • Void transaction
  • Refund transaction
  • Partially refund transaction
  • Make transaction
  • Authorize transaction
  • Capture transaction
  • Capture transaction (GET)
  • Void transaction
  • Refund transaction
  • Refund split transaction
  • Reverse transaction
  • Send receipt
  • Get transaction details
  • Make microdeposit
  • Reverse microdeposit
  • Validate card
  • Capture check (RDC)
  • List transactions for paypoint
  • List transactions for org
  • List settled transactions for paypoint
  • List settled transactions for org
  • List batches for paypoint
  • List batches for org
  • List batch details
  • List batch details for org
  • List transfers
  • List transfers for org
  • Get transfer details
  • Export batches for paypoint
  • Export batches for org
  • Export batch details for paypoint
  • Export batch details for org
  • Export settled transactions for paypoint
  • Export settled transactions for org
  • Export transactions for paypoint
  • Export transactions for org
  • Export transfers for paypoint
  • Export transfer details
  • Create subscription
  • Get subscription
  • Update subscription
  • Delete subscription
  • List subscriptions by paypoint
  • List subscriptions by organization
  • Export subscriptions by paypoint
  • Export subscriptions by org
  • Get subscription stats
  • Create customer
  • Get customer
  • Update customer
  • Delete customer
  • Link transaction to customer
  • Send opt-in
  • Import customers
  • List customers by paypoint
  • List customers by organization
  • Export customers for paypoint
  • Export customers by org
  • Get customer stats
  • Register device
  • List devices
  • Get device history
  • Unregister device
  • List devices by paypoint
  • List devices by organization
  • Create invoice
  • Get invoice
  • Update invoice
  • Delete invoice
  • Send invoice
  • Get invoice attachment
  • Delete invoice attachment
  • Get next invoice number
  • List invoices by paypoint
  • List invoices by organization
  • Export invoices by paypoint
  • Export invoices by org
  • Get invoice PDF
  • Create payment page
  • Get payment page
  • Get all page details
  • Update payment page
  • Delete payment page
  • Get dispute record
  • Add response to dispute
  • Get dispute attachment
  • List disputes by paypoint
  • List disputes by organization
  • Export disputes by paypoint
  • Export disputes by org
  • Configure Apple Pay for org
  • Configure Apple Pay for paypoint
  • Configure Google Pay™ for org
  • Configure Google Pay™ for paypoint
  • Add domain
  • Cascade domain
  • Verify domain
  • Get payment method domain
  • List payment method domains
  • Update payment method domain
  • Delete payment method domain
  • Authorize payout
  • Capture payout
  • Capture list of payouts
  • Cancel payout
  • Cancel payout (deprecated)
  • Cancel list of payouts
  • Get payout details
  • Get payout check image
  • Update check payment status
  • Reissue payout
  • Deposit funds
  • Get virtual card details
  • Send virtual card link
  • Create ghost card
  • Update card status
  • Create payout subscription
  • Get payout subscription
  • Update payout subscription
  • Delete payout subscription
  • List payout subscriptions by paypoint
  • List payout subscriptions by org
  • List payout batches for paypoint
  • List payout batches for org
  • List payouts by paypoint
  • List payouts by org
  • List vcards by paypoint
  • List vcards by org
  • List vcard transactions by paypoint
  • List vcard transactions by org
  • Get list of outbound transfers for an organization
  • Get list of outbound transfers for a paypoint
  • Get outbound transfer details
  • Export payouts by paypoint
  • Export payouts by org
  • Export payout batches by paypoint
  • Export payout batches by org
  • Create vendor
  • Get vendor
  • Update vendor
  • Delete vendor
  • Enrich vendor
  • Schedule outreach call
  • Get outreach call status
  • Import vendors
  • List vendors by paypoint
  • List vendors by organization
  • Export vendors by paypoint
  • Export vendors by org
  • Get vendor stats
  • Create bill
  • Get bill
  • Update bill
  • Delete bill
  • List bills by paypoint
  • List bills by organization
  • Import bills
  • Delete bill attachment
  • Get bill attachment
  • Send bill for approval
  • Approve bill
  • Change approvers
  • Export bills by paypoint
  • Export bills by org
  • Generate boarding link
  • Get template
  • List templates
  • Delete template
  • Create merchant application
  • Create multi-product boarding app
  • Get app by ID
  • Get multi-product boarding apps for paypoint
  • List all apps for org
  • Update app
  • Delete application
  • Get application via auth token
  • Retrieve application by link ID
  • Get boarding link by template ID
  • Get or send boarding link
  • Get boarding link by reference
  • List all application links
  • Export applications
  • Create notification
  • Get notification
  • List notifications by paypoint
  • List notifications by org
  • Update notification
  • Delete notification
  • List generated reports by paypoint
  • List generated reports by org
  • Export generated report
  • Search notification logs
  • Get log entry
  • Retry notification
  • Bulk retry notifications
  • Create user
  • Get user
  • Update user
  • Delete user
  • Configure MFA
  • Authenticate user
  • Refresh token
  • Logout user
  • Update password
  • Reset password
  • Validate MFA
  • Resend MFA code
  • List users by org
  • List users by paypoint
  • Verify bank account details
  • Create organization
  • Get organization
  • Get basic details by name
  • Get basic details by ID
  • Get organization settings
  • Update organization
  • Delete organization
  • List suborganizations by organization
  • Export organizations by paypoint
  • Get basic paypoint details
  • Get basic paypoint details by ID
  • Get paypoint details
  • Get paypoint settings
  • Upload logo
  • List paypoints by organization
  • Export paypoints by organization
  • Migrate paypoint
  • Get stats for an org or paypoint
  • Create payment link from invoice
  • Create payment link from bill
  • Get payment link
  • Send payment link
  • Update payment link
  • Refresh payment link
  • Delete payment link
  • Email payment link
  • Generate vendor link for lot number
  • Update Pay Out payment link
  • Update Pay Out payment link content
  • Tokenize payment method
  • Get tokenized method details
  • Update tokenized payment method
  • Delete tokenized payment method
  • Create item
  • Get item
  • List items
  • Update item
  • Delete line item
  • OCR PDF or image
  • OCR a base64-encoded string
  • Webhooks
  • Transaction Canceled
  • Transaction Processing
  • Transaction Processed
  • Transaction On Hold
  • Transaction Released
  • Transaction Recovered
  • Transaction Initiated
  • Transaction Authorized
  • Transaction Approved/Captured
  • Transaction Declined
  • Transaction Technical Decline
  • Transaction Failed
  • Transaction Error
  • Transaction Paid
  • Transaction Returned
  • Transaction Rejected
  • Settlement Pending
  • Settlement In Transit
  • Settlement Transferred
  • Settlement Funded
  • Settlement Resolved
  • Settlement Exception
  • Settlement ACH Return/Chargeback
  • Settlement Held
  • Settlement Released
  • Batch Funded
  • Batch Processed
  • Batch Paid
  • Batch Fund Pending
  • Batch Open
  • Batch Closed
  • Batch Not Closed
  • Batch Canceled
  • Batch Transferred
  • Batch Resolved
  • Batch On Hold
  • Batch Released
  • Overview
  • EmbeddedMethod UI
  • PayMethod UI
  • VirtualTerminal UI
  • ExpressCheckout UI
  • Temp token flow
  • Temp token app
  • Framework integrations
  • Changelog
  • June 15, 2026
  • May 11, 2026
  • April 15, 2026
  • March 16, 2026
  • February 17, 2026
  • October 6, 2025
  • January 28, 2025
  • October 27, 2024
  • October 24, 2024
  • July 31, 2024
  • Server SDKs overview
  • TypeScript SDK overview
  • Changelog
  • June 11, 2026
  • June 8, 2026
  • May 20, 2026
  • May 11, 2026
  • May 8, 2026
  • April 30, 2026
  • April 13, 2026
  • March 17, 2026
  • March 13, 2026
  • March 10, 2026
  • February 18, 2026
  • February 11, 2026
  • January 21, 2026
  • January 20, 2026
  • January 16, 2026
  • December 9, 2025
  • November 5, 2025
  • September 19, 2025
  • June 9, 2025
  • C# SDK overview
  • Changelog
  • June 11, 2026
  • June 8, 2026
  • May 20, 2026
  • May 11, 2026
  • May 8, 2026
  • April 30, 2026
  • April 13, 2026
  • March 17, 2026
  • March 13, 2026
  • March 10, 2026
  • February 18, 2026
  • February 11, 2026
  • January 21, 2026
  • January 20, 2026
  • January 16, 2026
  • January 15, 2026
  • December 8, 2025
  • November 5, 2025
  • September 19, 2025
  • PHP SDK overview
  • Changelog
  • June 11, 2026
  • June 8, 2026
  • May 20, 2026
  • May 11, 2026
  • May 8, 2026
  • April 30, 2026
  • April 13, 2026
  • March 17, 2026
  • March 13, 2026
  • March 10, 2026
  • February 18, 2026
  • February 11, 2026
  • January 21, 2026
  • January 20, 2026
  • January 16, 2026
  • January 15, 2026
  • December 8, 2025
  • November 5, 2025
  • September 19, 2025
  • Python SDK overview
  • Changelog
  • June 11, 2026
  • June 8, 2026
  • May 20, 2026
  • May 11, 2026
  • May 8, 2026
  • April 30, 2026
  • April 13, 2026
  • March 17, 2026
  • March 13, 2026
  • March 10, 2026
  • February 18, 2026
  • February 11, 2026
  • January 21, 2026
  • January 20, 2026
  • January 16, 2026
  • January 15, 2026
  • December 8, 2025
  • November 5, 2025
  • September 19, 2025
  • Java SDK overview
  • Changelog
  • June 11, 2026
  • June 8, 2026
  • May 20, 2026
  • May 11, 2026
  • May 8, 2026
  • April 30, 2026
  • April 13, 2026
  • March 17, 2026
  • March 13, 2026
  • March 10, 2026
  • February 18, 2026
  • February 11, 2026
  • January 21, 2026
  • January 20, 2026
  • January 16, 2026
  • January 15, 2026
  • December 8, 2025
  • November 5, 2025
  • September 19, 2025
  • Go SDK overview
  • Changelog
  • June 11, 2026
  • June 8, 2026
  • May 20, 2026
  • May 11, 2026
  • May 8, 2026
  • April 30, 2026
  • April 13, 2026
  • March 17, 2026
  • March 13, 2026
  • March 10, 2026
  • February 18, 2026
  • February 11, 2026
  • January 21, 2026
  • January 20, 2026
  • January 16, 2026
  • January 15, 2026
  • December 8, 2025
  • November 5, 2025
  • September 19, 2025
  • Ruby SDK overview
  • Changelog
  • June 11, 2026
  • June 8, 2026
  • May 20, 2026
  • May 11, 2026
  • May 8, 2026
  • April 30, 2026
  • April 13, 2026
  • March 17, 2026
  • March 13, 2026
  • March 10, 2026
  • February 18, 2026
  • February 11, 2026
  • January 28, 2026
  • December 18, 2025
  • Rust SDK overview
  • Changelog
  • June 11, 2026
  • June 8, 2026
  • May 20, 2026
  • May 11, 2026
  • May 8, 2026
  • April 13, 2026
  • March 30, 2026
  • March 17, 2026
  • March 13, 2026
  • March 10, 2026
  • February 18, 2026
  • February 11, 2026
  • January 22, 2026
  • Postman collection
  • Payabli MCP
  • Agent Skills
  • Example apps
AI agentsStatus PageContact sales
On this page
  • June 15, 2026
  • Pay In
  • Pay Out
  • June 11, 2026
  • Documentation changes for June 11, 2026
  • June 1, 2026
  • New and updated unified response codes
  • May 11, 2026
  • Card Account Updater for stored cards
  • Updated filter operators on virtual card query endpoints
  • New endpoints for querying virtual card transactions
  • New card rejection status
  • New StoredMethod field and idPmethod filter on subscription queries
  • New SubscriptionType field and filter on subscription queries
  • New subscriptionType request parameter and balance-driven subscriptions
  • New splitCount field on transaction query responses
  • New Date on check event on payout transactions
  • New remitEmail filter on vendor query endpoints
  • / is now allowed in vendor and remittance addresses
  • April 13, 2026
  • Enhanced Refund Flow and expanded card processing infrastructure
  • AI-powered vendor enrichment
  • New autoCapture flag for authorization requests
  • Query cloud devices endpoints
  • New cardType field on vCard query endpoints
  • Added entryPoint field to all Pay Out webhook payloads
  • New endpoint: verify bank account details
  • Documentation changes for April 13, 2026
  • March 26, 2026
  • Ghost card API reference and guide
  • March 25, 2026
  • Payout subscription API reference and guide
  • March 16, 2026
  • Input validation for achHolder in TokenStorage
  • Service fee configuration fields added to paypoint credentials
  • Added StatementEmail to paypoint details response
  • Autogenerate bank account accountId
  • Reissue payout transactions
  • February 23, 2026
  • Updated Postman collection structure
  • February 17, 2026
  • Remote Deposit Capture (RDC) documentation enhancements
API

API changelog

This changelog provides an overview of the recent changes made to the Payabli APIs.
June 15, 2026
June 15, 2026

June 11, 2026
June 11, 2026

June 1, 2026
June 1, 2026

May 11, 2026
May 11, 2026

April 13, 2026
April 13, 2026

March 26, 2026
March 26, 2026

March 25, 2026
March 25, 2026

March 16, 2026
March 16, 2026

February 23, 2026
February 23, 2026

February 17, 2026
February 17, 2026

Older posts

Next

© 2026 Centavo, Inc. All rights reserved | Centavo (DBA Payabli) is a registered Payment Facilitator of PNC Bank, N.A., Pittsburgh, PA. Payabli is a registered ISO/MSP of Merrick Bank, South Jordan, UT.

PayabliTest Cards & AccountsPay In StatusesPay Out StatusesDocs FeedbackTrust Center

This entry covers the API changes released on June 15, 2026.

Pay In

Hide the save payment method checkbox on payment pages

We’ve added a showSaveMethod boolean to the paymentMethods section of a hosted payment page’s content. Set it to false to hide the “Save payment details for future use” checkbox on the page. It defaults to true, so existing payment pages keep showing the checkbox unless you change it.

The field is available on the payment page endpoints: Create a payment page, Update a payment page, Get payment page details, and Get all payment page details.

v2 refunds support split funding

The v2 refund endpoints now support refunding split-funded transactions. Refund a settled transaction and Partially refund a settled transaction accept an optional request body with split instructions. Omit the body for a standard refund, or include refundDetails.splitRefunding to refund across the original split recipients. Split refunds now return the unified v2 response format, matching the legacy Refund a settled transaction with instructions endpoint.

Settlement query responses include split transfer details

Settlement query responses now enrich each item in splitFundingInstructions with the batch and transfer that paid out the split. This applies to Get list of settled transactions for an entrypoint and for an organization.

Each split instruction now carries three additional fields, alongside the existing recipientEntryPoint, AccountId, Description, and Amount. batchNumber and transferId are null when the batch or transfer isn’t yet available:

FieldTypeDescription
batchNumberstring or nullThe batch the split was paid out in. Null when the batch isn’t available.
transferIdinteger or nullIdentifier of the transfer that carried the split. Null when the transfer isn’t available.
transferAmountnumberThe total amount of the transfer that carried the split.

Legacy Pay In transaction endpoints are deprecated

We’ve deprecated the legacy Pay In transaction lifecycle endpoints. They still work for transactions originally created with the legacy endpoints, but new integrations should use the v2 endpoints, which return the unified response format. Transactions created with a legacy endpoint must be managed with the legacy lifecycle endpoints, and transactions created with a v2 endpoint must be managed with the v2 endpoints. The two sets aren’t interchangeable.

To refund a split-funded transaction, use the Refund a settled transaction endpoint with split instructions in the request body. This replaces the legacy Refund a settled transaction with split instructions endpoint.

Deprecated endpointUse instead
Make a transactionMake a transaction
Authorize a transactionAuthorize a transaction
Capture an authorized transactionCapture an authorized transaction
Void a transactionVoid a transaction
Refund a settled transactionRefund a settled transaction
Refund a settled transaction with split instructionsRefund a settled transaction with split instructions
Reverse a transactionNo direct equivalent. Check the transaction’s settlement status, then Void or Refund.

Pay Out

Instant payouts with wire and Real-Time Payments

We’ve added wire transfer and Real-Time Payments (RTP) as instant payout rails for vendor disbursements. Set paymentMethod.method to "wire" or "rtp" on the Authorize payout endpoint, using the same achHolder, achRouting, achAccount, and achAccountType fields as ACH. Both rails are US domestic only and irrevocable: once captured, a wire or RTP payout can’t be cancelled or reissued.

Instant payouts draw against the paypoint’s available payout balance, which Payabli validates at authorize time for wire and RTP. Two balance-specific errors return error code 3729 with HTTP 400 Bad Request: one when Payabli can’t read the balance, and one when the amount exceeds the available balance.

See Send instant payouts for the full workflow, balance requirements, and lifecycle differences from ACH.

New endpoint for depositing funds

We’ve added the Deposit funds endpoint (POST /Funding/depositFunds) for adding funds to a paypoint’s available payout balance. Deposited funds enter a pending state and become available for instant payouts once confirmed through FBO reconciliation.

New wire and Real-Time Payments payout statistics

The Get basic statistics endpoint (GET /Statistic/basic) now returns four fields that break out outbound RTP and wire activity: outRTPTransactions, outRTPVolume, outWireTransactions, and outWireVolume. Each follows the existing per-rail count and volume pattern and returns 0 when there’s no activity on that rail.

Capture and authorize return 202 or 422 on risk policy outcomes

We’ve updated the HTTP status codes the Capture payout and Authorize payout endpoints return when a risk policy acts on a transaction. Both previously returned 400, which incorrectly implied the request itself was invalid.

Risk outcomeStatusResponse codeMeaning
Held for review2029051Velocity fraud alert. The transaction is accepted and held for risk review, not rejected.
Blocked4229005A risk policy blocked the transaction. Terminal rejection.

In both cases the body still carries isSuccess: false and the responseData detail block. 400 is now reserved for structurally invalid requests. Update any integration that treats a 400 on these endpoints as an outright failure, so a held transaction isn’t mistaken for a rejected one. See Manage payouts for details.

New Capturing payout status

Payouts now report a transient Capturing status (12) while a capture is in progress, between Authorized (11) and Captured (1). See Pay Out statuses and Manage payouts.

Pay Out transaction webhooks now include RefundAmount

We’ve added a RefundAmount field to all Pay Out transaction webhooks. If a vendor partially refunds a transaction, this field contains the amount left of the original transaction after the refund. Example: If the original transaction was for $100.00, and the vendor issues a partial refund of $30.00, this field has a value of $70.00.

AI vendor outreach calling (beta)

Vendor enrichment now includes an AI outreach call as a third stage. When invoice scanning and web search can’t determine how a vendor wants to be paid, Payabli can schedule an AI agent to call the vendor and collect their preferred payment method and contact email.

We’ve added two endpoints:

  • Schedule outreach call (POST /Vendor/enrich/schedule_call/{entry}) schedules a call to a vendor.
  • Get outreach call status (GET /Vendor/{vendorId}/enrichment/call-status) returns the latest call activity for a vendor.

The enrich vendor endpoint also accepts a new scheduleCallIfNeeded parameter that triggers the call automatically when the earlier stages return insufficient data.

Outreach calling is in beta and is opt-in. Contact your Payabli representative to enable it, provision a phone number, and discuss pricing. See Vendor enrichment for behavior and Enrich vendors with the API for integration details.

Pay Out responses now include vendorId

We’ve added a vendorId field to the responseData on the Pay Out Authorize, Capture, and Cancel payout responses. vendorId returns the Payabli vendor ID for the payout, the same value as the existing customerId field, which is unchanged and continues to work. Use vendorId for clearer Pay Out semantics.

Transfer report adds type and method

We’ve added type and method fields to the Pay Out transfer report, returned by Get list of outbound transfers for a paypoint and for an organization.

FieldTypeDescription
typestring or nullThe transfer type: debit, credit, or billing.
methodstring or nullThe payment method, such as ach, vcard, or check.

You can also filter the report by these values with two new filters, detailType and detailMethod. Both support the eq, ne, in, nin, ct, and nct operators. See the reporting engine reference for filter syntax.

Documentation changes for June 11, 2026

As part of an ongoing effort to better align the documentation with the API, we’ve updated several Pay Out response schemas. These changes affect the documentation only, the API itself was already returning this data.

Corrected BatchId type on payout details

Corrected the type of the BatchId field from string to number on the GET /MoneyOut/details/:transId endpoint response. See Get payout details for more information.

Added SettlementStatusName and EntityId to payout details

Added documentation for two fields on the GET /MoneyOut/details/:transId endpoint response:

  • SettlementStatusName (nullable string, the name of the settlement status)
  • EntityId (nullable string, the entity’s ID in Payabli).

See Get payout details for more information.

Corrected Contacts type on vendor records

Corrected the type of the Contacts field on vendor records from a single object to an array of objects. This affects the following endpoints:

  • Get vendor
  • List vendors by paypoint
  • List vendors by org
  • Get payout subscription
  • List payout subscriptions by paypoint
  • List payout subscriptions by organization
  • Get outbound transfer details

This entry covers the API changes released on June 1, 2026.

New and updated unified response codes

We’ve added new codes and updated the text for several existing codes in the Pay In unified response codes reference. These codes apply to Pay In transactions made with v2 of the API.

New response codes

CodeHTTP Status CodeReason
D0316402Authentication error
D0480402Inactive account
D0481402Closed account
D0740402ACH Risk Decline
E3017400Invalid Total Amount
E3729400Invalid Amount
E7046400The checkuniqueId provided is not valid

We also added descriptions to the existing D1000, D1001, D1002, and D1003 codes and clarified their resolution steps.

Updated response code text

We revised the description, resolution, or both for these existing codes:

CodeWhat changed
D0715Resolution now directs you to attempt an ACH Return
D0725Updated description and resolution
D0730Updated description and resolution
D0731Updated description and resolution
D0735Updated description

See the Pay In unified response codes reference for the full description and resolution text for every code.

This entry covers the API changes released on May 11, 2026.

Card Account Updater for stored cards

We’ve documented Card Account Updater, a service that automatically refreshes stored card credentials when cards expire, are reissued, or are closed. Twice per month, it checks stored cards that are expiring in the current or next month against the Visa Account Updater (VAU) and Mastercard Automatic Billing Updater (ABU) programs, then refreshes the stored token when an update comes back. This reduces recurring payment declines from stale card data.

Subscribe to the new CardUpdaterComplete notification event to receive each paypoint run’s results by email (CSV) or webhook. See Card Account Updater for the result code reference and setup, and the Notifications overview for the event.

Contact your Payabli representative to enable Card Account Updater on one or more paypoints, or across your entire organization.

Updated filter operators on virtual card query endpoints

We’ve updated the supported filter operators on the List vcards by paypoint and List vcards by org endpoints. Identifier filters now support numeric range comparisons, and string filters support starts-with and ends-with matching.

The sw (starts with) and ew (ends with) operators are new across the API. See the Filters and conditions reference for the full operator list.

Updated filters

FilterBeforeAfter
statuseq, ne, in, nineq, ne, ct, nct, sw, ew
paypointIdeq, ne, in, nineq, ne, gt, ge, lt, le
payoutIdeq, ne, ct, nct, in, nineq, ne, gt, ge, lt, le
vendorIdeq, ne, ct, nct, in, nineq, ne, gt, ge, lt, le
orgNameeq, ne, ct, ncteq, ne, ct, nct, sw, ew
cardTypeeqeq, ne, gt, ge, lt, le

All other filters and response fields are unchanged.

New endpoints for querying virtual card transactions

We’ve documented two endpoints for retrieving virtual card transactions:

  • List vcard transactions by paypoint (GET /Query/vcardsTransactions/{entry})
  • List vcard transactions by org (GET /Query/vcardsTransactions/org/{orgId})

Each record returns virtual card and transaction details, with filters covering both transaction-level fields and the underlying card. See either endpoint’s API reference for the full field and filter list.

New card rejection status

We added the Reject transaction status in the Payabli API. This new status is for transactions that were rejected by the issuing bank or card network after being authorized or settled. See Card rejection for more information. We also added new features across the API to allow users to filter for transactions with card rejections and see the amounts rejected.

New Reject transaction status

The Reject transaction status has a value of -4. This status indicates that a transaction was rejected by the issuing bank or card network after being authorized or settled. When querying transactions with the List transactions for paypoint or List transactions for org endpoints, a value of -4 is returned in the TransStatus field for transactions that were rejected. See the Money in transaction status reference for the full list of transaction statuses and their meanings.

New Reject value for operation filter

The operation filter on the List transactions for paypoint and List transactions for org endpoints now supports the Reject value. Use this value to filter for transactions that were rejected by the issuing bank or card network after being authorized or settled. See the Filters and conditions reference to learn more about using filters to query transactions.

New cardRejectedAmount fields on transfer details endpoint

We added two new cardRejectedAmount fields to the Get transfer details endpoint. The cardRejectAmount field in the Summary object reflects the total amount of all transactions in the transfer that were rejected by the issuing bank or card network after being authorized or settled. The cardRejectAmount field in each Record object reflects the amount of that specific transaction that was rejected. See the endpoint’s API reference for the full response shape.

New StoredMethod field and idPmethod filter on subscription queries

The List subscriptions by paypoint and List subscriptions by organization endpoints now return the full stored payment method linked to each subscription as a new StoredMethod object. Both endpoints also accept a new idPmethod filter that narrows results by the linked stored method’s identifier. See either endpoint’s API reference for the full field list and operators.

New SubscriptionType field and filter on subscription queries

The List subscriptions by paypoint and List subscriptions by organization endpoints now return a SubscriptionType field on each record and accept a new subscriptionType filter. The field distinguishes Regular subscriptions (fixed-amount recurring) from BalanceDriven subscriptions (amount tracks an outstanding balance), and returns null when no type is assigned. The filter supports eq, ne, in, and nin and accepts values case-insensitively. See either endpoint’s API reference for the full field list and operators.

New subscriptionType request parameter and balance-driven subscriptions

The Create subscription endpoint now accepts a new optional subscriptionType parameter with two values: Regular (the default — a standard fixed-amount recurring subscription) and BalanceDriven. A balance-driven subscription charges the payor’s outstanding balance at run time instead of a fixed amount. Each scheduled run reads the live balance and charges that amount; a zero balance is skipped, not charged.

subscriptionType can’t be changed after the subscription is created.

The Get subscription endpoint now also returns SubscriptionType on the single-subscription response.

New monthly cadence frequencies

scheduleDetails.frequency on the Create subscription and Update subscription endpoints accepts three new values:

  • firstofmonth
  • fifteenthofmonth
  • endofmonth

These cadences are valid for both Regular and BalanceDriven subscriptions. BalanceDriven subscriptions only accept these three values.

BalanceDriven schedule rules

For BalanceDriven subscriptions:

  • scheduleDetails.startDate is calculated automatically from the chosen frequency. Any value you supply is ignored.
  • scheduleDetails.endDate doesn’t apply — these subscriptions run until cancelled.
  • No static totalAmount is stored on the schedule. The amount is determined at each run.

New splitCount field on transaction query responses

The List transactions for paypoint and List transactions for org endpoints now return a splitCount integer on each transaction record. The value reflects the number of split funding instructions associated with the transaction, matching the length of splitFundingInstructions in the same record.

New Date on check event on payout transactions

We’ve added a new Date on check entry to the Events array on payout transaction records. This event surfaces the exact date the check printer recorded for the check, which is the value most banks expect in a Positive Pay file.

The date is embedded directly in the TransEvent string in M/D/YYYY H:MM:SS AM/PM format. For example: Date on check: 5/11/2026 8:42:22 AM. Strip the Date on check: prefix from the TransEvent value, trim any leading space, and convert the date to the format your bank requires.

For payouts issued before May 11, 2026, the Date on check event isn’t present. Continue using the EventTime of the Captured event as a fallback.

See Integrate Positive Pay for the recommended extraction pattern, and the Get payout details endpoint for the full response shape.

New remitEmail filter on vendor query endpoints

The List vendors by paypoint and List vendors by organization endpoints now accept a remitEmail filter that narrows results by the vendor’s remittance email. The filter is case-insensitive and supports the ct, nct, eq, and ne operators, matching the existing email filter.

/ is now allowed in vendor and remittance addresses

We’ve added / to the set of characters allowed in Pay Out vendor street and remittance address fields. This supports common US fractional-house-number formats like 2524 1/2 S Dunsmuir Ave.

The full allowed character set is now letters, numbers, spaces, and . , # ' - & /.

This affects the address fields on Create vendor, Update vendor, and any other endpoint that accepts vendor address data.

This entry covers the API changes released on April 13, 2026.

Enhanced Refund Flow and expanded card processing infrastructure

As part of ongoing infrastructure investments, we’re expanding our card processing rails to deliver greater reliability, stability, and redundancy. As paypoints are enabled on the new infrastructure, some will be newly enrolled in Enhanced Refund Flow, and some that already use Enhanced Refund Flow may see changes to settlement timing.

What’s changing

Enhanced Refund Flow queues card refunds that are submitted during the nightly settlement window or before a transaction has fully settled. This prevents refund declines and protects ledger balances. Two things are changing:

  • The nightly window is now variable. The nightly window, when Payabli performs settlement, ledger reconciliation, and transfer processing, depends on your paypoint’s infrastructure configuration. The timing may differ from the current 5–7 PM ET window. See the nightly window reference table for details.
  • More paypoints will be enrolled in Enhanced Refund Flow. If your paypoints are newly enabled, refund and reversal API responses may begin returning an Initiated status where they previously returned Approved or Declined synchronously.

What this means for the API

The refund API contract isn’t changing. The same fields and statuses apply. However, depending on your situation, you may notice different behavior:

If your paypoints…What to expect
Already use Enhanced Refund FlowThe expectedProcessingDateTime value in Initiated responses may reflect a different nightly window. No code changes needed.
Are newly enrolled in Enhanced Refund FlowRefund responses may return Initiated (with resultCode 10 and an expectedProcessingDateTime) instead of an immediate Approved or Declined. The final outcome is delivered asynchronously via RefundedPayment or DeclinedPayment webhooks.

Preparing your integration

If your paypoints are being newly enrolled in Enhanced Refund Flow, review the integration tips:

  • Handle Initiated as an interim refund status and await the final outcome via webhook
  • Store the transId from the Initiated response for reconciliation
  • Subscribe to RefundedPayment and DeclinedPayment webhook events
  • Don’t retry partial refund requests after receiving an Initiated response, as this creates a second partial refund

Payabli will let you know directly if your paypoints are affected. To test Enhanced Refund Flow in Sandbox, contact the Payabli team.

AI-powered vendor enrichment

We’ve added AI-powered vendor enrichment to automate the collection of vendor payment acceptance info and contact information. This opt-in feature reduces manual vendor research and helps maximize virtual card adoption.

Contact Payabli to enable it for your organization.

New endpoint

  • Enrich vendor (POST /Vendor/enrich/{entry}): Triggers invoice scanning, web search, or both for an existing vendor. Supports auto-apply mode (writes extracted data to the vendor record) and review mode (returns raw results for manual confirmation).

Updated endpoints

  • Create vendor: Now accepts an optional PDF invoice attachment. When provided, the invoice is scanned and extracted vendor details are merged into the request (empty-field-only, request body fields take precedence).
  • Create bill: When the first attachment is a PDF, it triggers an invoice scan that populates vendor and bill fields from the extracted data.
  • Get vendor: Response now includes enrichment status and payment acceptance fields: EnrichmentStatus, EnrichedBy, EnrichedAt, EnrichmentId, PaymentPortalUrl, CardAccepted, and AchAccepted.

Guides

  • Vendor enrichment overview
  • Enrich vendors with the API

New autoCapture flag for authorization requests

We added a new autoCapture boolean flag to the Authorize payment endpoint. When the autoCapture flag is set to true, the payout is automatically captured after a successful authorization. If the payout is authorized with the autoCapture flag set to true, you don’t need to capture the payout. See Authorize a payout request for more information.

Query cloud devices endpoints

We’ve added new query endpoints for listing cloud device records, following the same pattern as existing query endpoints for transactions, customers, and subscriptions.

New endpoints

  • List devices by paypoint (GET /Query/devices/{entry}): Returns a paginated list of cloud devices for a single paypoint.
  • List devices by organization (GET /Query/devices/org/{orgId}): Returns a paginated list of cloud devices across all paypoints in an organization.

Both endpoints support the standard query filters, sorting, and pagination. Filter by device status, type, OS, make, model, serial number, health check timestamps, and paypoint or organization fields.

New cardType field on vCard query endpoints

We’ve added a cardType field to the response for the List vcards by paypoint and List vcards by org endpoints. The field identifies whether a record is a single-use virtual card or a ghost card:

ValueCard type
0Single-use virtual card
2Ghost card

Both endpoints also accept a new cardType filter, which supports equality only. For example, cardType=2 returns only ghost cards.

Added entryPoint field to all Pay Out webhook payloads

We added the entryPoint field to all webhook payloads for Pay Out events. See the Webhook notification response reference for webhook payloads.

New endpoint: verify bank account details

We’ve added a new verify bank account details endpoint that verifies a bank account and returns detailed results from the verification network. The endpoint returns rich data, including bank name, account status, response codes, and account dates, to support detailed decision-making and troubleshooting.

Request fields

FieldTypeRequiredDescription
routingNumberstringYesBank routing number to verify
accountNumberstringYesBank account number to verify
accountTypestringNoAccount type, such as Checking or Savings
countrystringNoISO country code, such as US
accountHolderTypestringConditionalpersonal or business. Required when bank authentication is enabled for the paypoint’s organization
holderNamestringConditionalAccount holder’s name. Personal accounts use the holder’s full name; business accounts use the legal business name. Required when bank authentication is enabled

Response fields

The responseData object includes these verification details:

FieldTypeDescription
isValidbooleanWhether the bank account passed verification
verificationResponsestringOverall outcome, such as Pass, Verified, Declined, NoData, Bypassed, or Error
bankNamestringName of the bank associated with the routing number
reportedAccountTypestringAccount type reported by the verification network
responseCodestringResponse code from the verification network
responseValuestringNetwork-specific response value (for example, CA11 or RT00)
responseDescriptionstringHuman-readable description of the outcome
accountAddedDatestringDate the account was first seen by the verification network
accountLastUpdatedDatestringDate the account record was last updated
accountClosedDatestringDate the account was closed, if applicable

Documentation changes for April 13, 2026

As part of an ongoing effort to better align the documentation with the API, we’ve updated webhook payload schemas. These changes affect the documentation only, the API itself was already accepting this data.

Changed FileReceiveError webhook event name to FileReceivedError

Changed the Event field in the importFileError webhook from FileReceiveError to FileReceivedError. The webhook contains the same information.

Changed PolicyId field from a number to a string

Changed the PolicyId field from a number to a string in the following webhooks:

  • CreatedApplication
  • FailedBoardingApplication
  • ApprovedApplication
  • SubmittedApplication
  • DeclinedApplication
  • HoldingApplication
  • BoardingApplication

See the Webhook notification response reference for webhook payloads.

Removed the UnderWritingApplication webhook event

We removed the UnderWritingApplication webhook. The HoldingApplication webhook contains the same information as UnderWritingApplication and can be used in the same use cases. See the HoldingApplication schema for exact fields.

Ghost card API reference and guide

As part of an ongoing effort to improve API documentation coverage, we’ve added complete API reference documentation and an integration guide for ghost card endpoints. These endpoints were already available in the API.

New API reference pages

Added full request and response documentation for the following endpoints:

  • POST /MoneyOutCard/GhostCard/{entry}: Create ghost card
  • PATCH /MoneyOutCard/card/{entry}: Update card status

New integration guide

Added Manage ghost cards with the API, a guide covering how to create ghost cards with configurable spending limits and update card statuses.

Payout subscription API reference and guide

As part of an ongoing effort to improve API documentation coverage, we’ve added complete API reference documentation and an integration guide for payout subscription endpoints. These endpoints were already available in the API.

New API reference pages

Added full request and response documentation for the following endpoints:

  • POST /PayoutSubscription: Create payout subscription
  • GET /PayoutSubscription/{subId}: Get payout subscription
  • PUT /PayoutSubscription/{subId}: Update payout subscription
  • DELETE /PayoutSubscription/{subId}: Delete payout subscription
  • GET /Query/payoutsubscriptions/{entry}: List payout subscriptions by paypoint
  • GET /Query/payoutsubscriptions/org/{orgId}: List payout subscriptions by organization

New integration guide

Added Manage payout subscriptions with the API, a guide covering how to create, pause, update, and delete recurring vendor payouts. The guide includes request examples for ACH and vCard payment methods.

Input validation for achHolder in TokenStorage

The Save a payment method and Update a payment method endpoints now validate the achHolder field. The API returns a 400 Bad Request if the value doesn’t meet the following rules:

  • Allowed characters: Letters, numbers, spaces, hyphens, apostrophes, and periods
  • Length: 2–100 characters
  • Pattern: ^[A-Za-z0-9\s\-'.]+$

Requests with special characters like ~!@#$%^&*() in achHolder are now rejected.

Service fee configuration fields added to paypoint credentials

We’ve added three fields to the credentials object in the GET /Paypoint/{entry} response. These boolean fields expose the paypoint’s service fee configuration:

  • GreaterValueAllowed — Whether a customer fee greater than the configured service fee is allowed.
  • AbsorbDifference — Whether the paypoint absorbs the difference between the configured service fee and the actual fee charged to the customer.
  • AllowOverride — Whether the configured service fee can be overridden at the transaction level.

Added StatementEmail to paypoint details response

The GET /Paypoint/{entry} endpoint response now includes a StatementEmail object in the Paypoint data. This object lets you see how billing statement emails are configured for a paypoint.

The StatementEmail object contains:

  • Sender: The email address that statements are sent from. Always uses a Payabli domain. If null, noreply@payabli.com is used.
  • Recipients: A list of email addresses that receive billing statements.

The field is null if statement email hasn’t been configured for the paypoint.

See Get paypoint details for the full response schema.

Autogenerate bank account accountId

When you create or update a bank account in the bankData object without providing an accountId, Payabli now generates one automatically. The generated format is acct-{first_digit}xxxxx{last_4_digits}, based on the accountNumber field. The mask always uses five x characters regardless of account number length. For example, account number 123456789 produces acct-1xxxxx6789.

If a generated accountId would duplicate an existing one within the same service at the paypoint, the system appends a numeric suffix to keep it unique (for example, acct-1xxxxx6789-2).

The bank account’s accountId is also used as the identifier for its associated payment connector. This means the accountId you see in the paypoint’s credentials array matches the accountId of the linked bank account.

When you provide a custom accountId, Payabli doesn’t autogenerate one.

Affected endpoints

  • Create merchant application
  • Update merchant application
  • Create vendor
  • Update vendor

Reissue payout transactions

You can now reissue a payout transaction with a different payment method using the new Reissue payout endpoint.

Use POST /MoneyOut/reissue when a payout can’t be completed with the original payment method. For example, if a virtual card expires before a vendor redeems it, or an ACH payment is returned by the bank, you can reissue the payout as a check, ACH, or virtual card.

The original transaction must be in Processing or Processed status. The endpoint creates a new transaction and links it to the original through the event history. The original transaction gets a “Reissued” event, and the new transaction includes a reference back to the original.

For details on which payment methods you can reissue to and how the process works, see Reissue payouts with the API.

Updated Postman collection structure

We’ve updated the tooling that generates our Postman collection. The collection now uses path-based folder grouping, which changes some folder names and merges a few small folders into their parent.

Folder name changes

Folder names are now PascalCase without spaces:

BeforeAfter
Money InMoneyIn
Money OutMoneyOut
Token StorageTokenStorage
Payment LinkPaymentLink
Charge BacksChargeBacks
Check CaptureCheckCapture
Line ItemLineItem
Payment Method DomainPaymentMethodDomain

Merged folders

Two small folders have been merged into their parent path group:

  • Hosted Payment Pages (3 endpoints) is now part of Paypoint
  • Ocr (2 endpoints) is now part of Import

No API changes

This is a Postman collection structure change only. No API endpoints, request formats, or response formats have changed. All 231 endpoints are still present in the collection. If you use Postman environment variables or saved requests that reference folder names, you may need to update those references.

Remote Deposit Capture (RDC) documentation enhancements

We’ve improved the documentation for Remote Deposit Capture (RDC) transactions.

Added BOC to achCode documentation

Added BOC (Back Office Conversion) as a documented value for the achCode field in the POST /MoneyIn/getpaid request. BOC is used to convert paper checks received in-person at a point-of-sale or staffed payment location into electronic ACH debits. Only consumer checks are eligible — business, government, and mailed checks aren’t supported.

Added checkUniqueId to paymentDetails documentation

Added the checkUniqueId field to the paymentDetails object in the POST /MoneyIn/getpaid request. This field is required for RDC transactions where achCode is BOC. Use the id value from the check processing response.

Added BOC request example

Added a BOC example to the POST /MoneyIn/getpaid endpoint showing a complete RDC payment request, including checkUniqueId, achCode: BOC, and totalAmount in dot-decimal notation.

Webhook enhancements

Added ReportedDepositDate field to FundedPayment webhook payload

We added the ReportedDepositDate field to the FundedPayment webhook payload. This field represents the date when the payment was reported as deposited.