Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Contact Us
  • Home
  • Integration

Lockbox JSON Specification

Outlines the Lockbox specification for ingestion lockbox payments made outside of PatientPay

Written by Chris Joyce

Updated at April 22nd, 2025

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Patient Portal
  • Admin
    Config Reports Onboarding
  • Integration
  • Release Notes
+ More

Table of Contents

Drop Folder for Lockbox JSON

Lockbox payments are typically made to a third-party service via physical check. It is important that PatientPay and the system of record be kept in sync with lockbox payments to ensure the patient's bill balance is accurate. We provide an Lockbox JSON Specification to allow partners to send us a smaller update file that includes transactions made outside of PatientPay.

Drop Folder for Lockbox JSON

Lockbox update files should be dropped in the same incoming SFTP folder as the statement files.

 


The following outlines the specifications and minimum required fields for a Lockbox statement ingestion via JSON file and SFTP.

Object Field Required Data Type Description
  schema Y string (13) Identifies this as a payment update file; hard-coded to "ppay-payment-updates"
  version Y string (5) Identifies the version of the payment update file; hard-coded to current schema version of "1.0.0"
statements The statements array contains one or more statement objects separated by comma
statement A statement object is a nested object that contains fields and nested objects pertaining to the statement or bill
  statementId Y string (32) This unique statementId should match an existing statementId for which bill that is being updated
  clientId Y string (10) Unique identifier for the organization for which bill belongs to that is being updated. NOTE: Case sensitive.
  partnerTransactionsOnly Y boolean This flag indicates whether to process the partnerTransactions array as an update instead of validating as a complete statement; it should always be true for payment updates
statement.patients The patients array contains one or more patient objects separated by the comma
patient The patient object is a nested object that contains fields pertaining to the patient record
  accountId Y string (55) Uniquely identified the patient account ID for which you are updating a bill
statement.partnerTransactions The partnerTransactions array contains one or more transactions that are added/subtracted from the bill
  transactionId N string (55) A unique identifier for each transaction
  transactionDate Y date The date of the transaction in the format YYYY-MM-DD.
  transactionAmt Y   Amount of transaction to be recorded in system. The amount should be negative if deducting from the bill and positive if adding to the bill. Transaction amount cannot be greater than bill amount.
  transactionDesc N string Description for the transaction
  payerId N string (10) Identifies the payer from the payer table, if applicable. Pass null if not providing a value
  transactionType N string Specifies the type of transaction (“SALE” or “DEBIT”); default is “DEBIT” if not provided
  transactionPaymentMethodType Y string Specifies payment method (“CARD” or “CHECK”); Use "CHECK" for lockbox payment
  transactionSource N string Specifies the source of the payment. Use "LOCKBOX" for lockbox payment

 

Example Lockbox JSON:

{
    "schema": "ppay-payment-updates",
    "version": "1.0.0",
    "statements": [
        {
            "statementId": "TST108531",
            "partnerTransactionsOnly": true,
            "clientId": "TST",
            "patients": [
                {
                    "accountId": "TB135H"
                }
            ],
            "partnerTransactions": [
                {
                    "transactionId": "314001717607",
                    "transactionDate": "2021-10-24",
                    "transactionAmt": "-40.00",
                    "transactionDesc": "Check # 3004",
                    "payerId": null,
                    "transactionType": "DEBIT",
                    "transactionPaymentMethodType": "CHECK",
                    "transactionSource": "LOCKBOX"
                }
            ]
        }
    ]
}

Download Specification in Excel

data blueprint eternal json

Was this article helpful?

Yes
No
Give feedback about this article

Related Articles

  • Integrating with PatientPay
  • Episodic JSON Statement Specification

Copyright 2025 – PatientPay.

Knowledge Base Software powered by Helpjuice

Expand