Skip to main content
Vendor payments in DualEntry record disbursements against posted bills. A single payment can cover one bill or several bills for the same vendor, and you can apply credits and prepayments to reduce the amount remitted. DualEntry keeps your books in sync with the money you move, but it is not a payment rail. For paper checks, DualEntry generates the check itself (a PDF you print). For electronic methods (ACH and wire), you initiate the actual transfer in your bank or payment provider, and the payment record in DualEntry tracks the disbursement against the bill. DualEntry does not transmit funds or generate a bank file (such as a NACHA/ACH batch file).

Selecting bills to pay

Navigate to Money Out → Vendor Payments and create a new payment. Pick the vendor and bank account, and DualEntry lists that vendor’s open (posted, approved, unpaid) bills. Select the bills this payment covers, and DualEntry totals the amount to remit. Each vendor payment applies to a single vendor, so to pay many vendors in a cycle you create one payment per vendor. The API equivalent is a POST to /public/v2/vendor-payments/ with the bills and amounts you want to apply. You can also retrieve open bills via /public/v2/bills/ filtered by record_status=posted and approval_status=approved. You can adjust the amount applied to each bill, which lets you make partial payments or prioritize past-due and discount-deadline bills. If you pay on a regular cycle (weekly or biweekly), retrieving open bills by due date helps you identify everything that needs to go out in the current run.

Payment methods

DualEntry creates three payment methods by default, each suited to different vendor relationships and transaction sizes. You can also create custom payment methods to fit your organization’s specific needs.

ACH

ACH is the default electronic payment method for domestic vendors. You associate a bank account with the payment and record it in DualEntry to keep your books in sync. DualEntry does not originate the transfer or produce a bank file (such as a NACHA/ACH batch file). Instead, you initiate the payment in your bank or payment provider, and the payment record tracks the disbursement against the bill. ACH is the most cost-effective method for domestic payments and works well for recurring vendor relationships where you have the vendor’s bank details on file.

Wire transfer

For wire payments, DualEntry records the wire details (reference number, bank, amount) as a payment record. Wire initiation happens outside DualEntry in your banking portal; the payment record in DualEntry keeps your books in sync. Wires are typically reserved for large or time-sensitive payments where same-day settlement is required.

Paper checks

DualEntry prints checks directly from your own bank account on your own check stock, with no third-party check printing service involved. The check PDF is generated inside DualEntry and returned to you (or rendered in the UI) so you can print it on your office printer. This makes paper checks useful for vendors who do not accept electronic payments, for one-off disbursements where you want a physical record, or when compliance requires a wet-signature instrument. You can print checks for any of the following transaction types:
  • Vendor payments
  • Vendor prepayments
  • Direct expenses (payments that bypass the bill workflow, like petty cash or a one-off reimbursement)
  • Customer refunds
DualEntry supports three check workflows through the /public/v2/paper-checks/ endpoint:
  • Print now (POST /paper-checks/print-now/): generate and print a single check immediately. The check record is created and marked as printed in one call, and the response includes a base64-encoded PDF you can stream straight to a printer.
  • Print later (POST /paper-checks/print-later/): queue one or more checks with a status of not_printed. Use this when you want to batch printing into a single weekly or end-of-day run.
  • Print batch (PUT /paper-checks/print-batch/): print all queued checks at once. DualEntry returns a single merged PDF and assigns sequential check numbers in the order you supply the check IDs.

Templates

Each check is rendered from a PaperCheckTemplate, which controls layout, MICR line position, company branding, and signature block. You can use the default template or pass a template_id on any of the print endpoints to use a custom template, for example if you maintain separate check stock for different entities.

Managing printed checks

After a check is created you can:
  • List paper checks with filters for status, bank account, vendor, or date range to find what has been queued, printed, or archived.
  • Retrieve a single check by ID, including its PDF, for reprinting or audit.
  • Archive a check if it was printed in error or voided. Archiving sets the status to archived and keeps the audit trail intact.

Check numbers and registers

Check numbers are assigned sequentially from the check register associated with the selected bank account. The system prevents duplicate check numbers within a register, so you cannot accidentally re-issue a number that has already been used. For a batch run you can pass first_check_number to align with the next physical check in your stock; if you omit it, DualEntry auto-assigns from the bank account’s sequence. Printed checks flow into bank reconciliation the same way as any other disbursement. They appear as expected outflows until the physical check clears your bank.

Applying credits, prepayments, and partial payments

If a vendor has issued a credit memo or you have an outstanding prepayment, you can apply it during payment selection. Credits from /public/v2/vendor-credits/ and prepayments from /public/v2/vendor-prepayments/ appear as available balances next to the vendor’s open bills. Select the credit or prepayment to apply, and DualEntry reduces the payment amount accordingly. You can apply a credit partially, and the remaining balance stays available for future payments. Prepayment applications are tracked separately at /public/v2/vendor-prepayment-applications/ for full auditability. When you pay a vendor before receiving the bill, the prepayment posts to the Vendor Deposit system account, an asset account DualEntry reserves to hold deposits and prepayments paid to vendors. The balance sits there as an asset until you apply it to a bill, at which point the application releases the deposit and reduces the amount you remit. Because Vendor Deposit is a system account, avoid repurposing it for other uses; DualEntry warns you if you try to edit a system account. You are also not required to pay a bill in full. Adjust the payment amount on any line in the selection screen to make a partial payment. DualEntry tracks the remaining balance on the bill, and it continues to appear in your aging until fully paid. Partial payments are common when negotiating payment terms, resolving disputes, or managing cash flow. The bill’s open balance updates immediately after the payment posts.

Payment approval and posting

Vendor payments can be routed through their own approval workflow, separate from bill approval. This is useful when you want a manager to approve bills but require a treasurer or controller to authorize the actual cash disbursement. Set up a payment approval workflow under Settings → Approval Workflows with the record type set to vendor payment. You can route based on payment amount, entity, or payment method. Payments above a threshold might require dual authorization, while routine payments below the threshold pass with a single approval. When you confirm a vendor payment, DualEntry creates the accounting entry: a debit to accounts payable (clearing the bill liability) and a credit to the bank account. The payment record links back to each bill it covers, so you always have a clear trail from disbursement to invoice. Posted payments appear in bank reconciliation as expected outflows. When the corresponding bank transaction clears, DualEntry matches it to the payment record automatically or presents it for manual matching.

Vendor refunds

When a vendor refunds a payment (for a returned item, overpayment, or cancelled service), record it through /public/v2/vendor-refunds/. The refund creates a debit to the bank account and a credit to accounts payable or the original expense account, depending on how you allocate it. Refunds link back to the original payment for audit trail purposes. You can issue a full or partial refund, and partial refunds leave the remaining payment allocation intact. The refund amount appears as an expected inflow in bank reconciliation, ready for matching when it clears.
Direct expenses that bypass the bill workflow (such as petty cash or corporate card charges) are recorded through /public/v2/direct-expenses/. These post immediately without going through bill approval.
Last modified on July 10, 2026