Send paymentsPay Out concepts

Integrate Positive Pay

Learn how Positive Pay works and build your Positive Pay file from Payabli payout data
View as MarkdownOpen in Claude
Applies to:DevelopersPartnersPaypoints

Despite the rise of digital payments, checks remain popular in payables for several reasons:

  • Legacy systems and business practices: Many companies have entrenched processes that rely on check issuance. For certain B2B payments or government transactions, checks are still the preferred or required payment method due to the longevity and reliability of these systems.
  • Underbanked populations: Some individuals or businesses might not have easy access to digital payment systems, preferring checks for their simplicity and universal acceptance.
  • Minimal transaction fees: Many digital payment platforms charge fees for processing transactions, but with checks, the only costs are printing and mailing. This is attractive for organizations issuing or collecting payments at scale.

However, checks come with significant fraud risks, including:

  • Check forgery: Fraudsters can alter the details on a check to withdraw funds from the payer’s account.
  • Counterfeit checks: Fraudulent checks can be created to mimic legitimate ones, deceiving businesses into accepting fake payments.
  • Check washing: Criminals can steal checks and erase details like the payee’s name, allowing them to cash the check themselves.

You can mitigate these risks by integrating Positive Pay. This guide explains how Positive Pay works and how to build your Positive Pay file from Payabli payout data.

What Positive Pay is

Positive Pay is an automated fraud prevention tool that matches the details of issued checks with those presented for payment. The bank or financial institution compares the check number, payee, and amount with the check-issuance file provided by the business. If discrepancies arise, the bank flags the check for further review before clearing the payment.

Contact your bank to understand which Positive Pay features they support.

Most institutions offer the following:

  • Check matching: Every issued check is compared to a list of checks the business has authorized.
  • Discrepancy alerts: Any discrepancies between the check information and the records trigger alerts for manual review.
  • Prevention of altered checks: It helps detect alterations to checks after they’re issued by verifying key fields like the amount or payee.

These functions help keep businesses secure.

How Positive Pay works

1

Authorize and capture a check payout transaction

Issue a payout transaction to Payabli with paymentMethod.method set to "check". See Manage payouts with the API for the full authorize-and-capture flow.

2

Build and submit your Positive Pay file

After the check is issued, pull the check details from Payabli (check number, issue date, payee, and amount), assemble your Positive Pay file in the format your bank requires, and submit it to your bank.

3

Check presented for payment

When the check is presented to the bank for payment, the bank compares the check’s details with the previously submitted file.

4

Review for discrepancies

If the check details don’t match the details included in the file, the bank notifies the merchant of the discrepancy before processing the check. The merchant then decides whether to honor or reject the payment.

By verifying the check’s details, Positive Pay reduces the likelihood of fraudulent transactions being processed.

Your responsibilities

Payabli provides the data you need to build a Positive Pay file, but you own:

  • File creation in the format your bank requires
  • File submission to your bank
  • Follow-up on any discrepancies the bank flags

Positive Pay file format and delivery aren’t part of the Payabli platform. Contact your bank for their required file layout and submission method.

Build your Positive Pay file

A Positive Pay file includes these fields for each issued check. Pull the values from Payabli payout transaction data and assemble the file in the format your bank requires.

Positive Pay fieldPayabli fieldNotes
Check numberCheckNumberTop-level field on the payout transaction record.
Check dateEventTime for the Captured eventFound in the Events array. The Captured event time matches the date printed on the check.
AmountTotalAmountTop-level field on the payout transaction record.
PayeeVendor.Name1 (and Vendor.Name2 if used)Nested on the payout transaction record.

The Captured event’s EventTime is an ISO 8601 timestamp. Most banks require a date-only value (for example, YYYY-MM-DD), so extract the date portion when you build your file. Confirm the required date format and timezone with your bank.

Query a batch of payout transactions

Use the Payouts query endpoint to pull multiple payout transactions at once. Filter by payment method or date range to scope results to recently issued checks.

This snippet shows only the fields relevant to Positive Pay. See the API reference for the full response shape.

1{
2 "Records": [
3 {
4 "PaymentId": "01KXYZ789ABC123DEF456GHI",
5 "TotalAmount": 1250.00,
6 "PaymentMethod": "check",
7 "CheckNumber": "12847",
8 "Vendor": {
9 "VendorNumber": "V-CC-2847",
10 "Name1": "Concrete Supply Distributors",
11 "Name2": null
12 },
13 "Events": [
14 {
15 "TransEvent": "Captured",
16 "EventTime": "2025-01-15T10:22:25"
17 }
18 ]
19 }
20 ]
21}

Get details for a single payout transaction

Use the payout details endpoint to fetch one payout transaction by its PaymentId. The response exposes the same Positive Pay fields as the query endpoint.

1{
2 "CheckNumber": "12847",
3 "TotalAmount": 1250.00,
4 "PaymentMethod": "check",
5 "PaymentId": "01KXYZ789ABC123DEF456GHI",
6 "Vendor": {
7 "VendorNumber": "V-CC-2847",
8 "Name1": "Concrete Supply Distributors"
9 },
10 "Events": [
11 {
12 "TransEvent": "Captured",
13 "EventTime": "2025-01-15T10:22:25"
14 }
15 ]
16}

Sample Positive Pay file

Positive Pay file format varies by bank. Most banks accept a CSV with columns for check number, check date, amount, and payee. Here’s a sample layout using the field mapping above.

1CheckNumber,CheckDate,Amount,Payee
212847,2025-01-15,1250.00,Concrete Supply Distributors
312848,2025-01-15,875.50,Austin Lumber Company
412849,2025-01-16,2300.00,Valley Paint Supply

Confirm the required layout, delimiters, and submission method with your bank.