Requires the payments-processor add-on · $25/mo
Manage add-ons
Integrations

Payments Processor

Run bulk supplier payment files (SEPA, ACH, NACHA) directly from /v1/payment-entries.

The snag

AP teams manually export bank files from spreadsheets each week, and there is no audit link from the file back to individual invoices.

How Zivvy helps

The payments-processor add-on groups approved /v1/payment-entries into a payment run and emits SEPA XML, NACHA, or ACH files with per-invoice traceability.

What you get

  • Batch approved /v1/payment-entries into a single payment run
  • SEPA pain.001, NACHA, and ACH file generation
  • Two-eyes approval + full audit trail per run

Workflow stream

Weekly supplier payment run to bank

Common uses

  1. 01

    Weekly supplier payment run to bank

  2. 02

    Batch payroll disbursement

  3. 03

    Refund runs to customers via ACH

Integration code

Open API reference

Create a payment run

curl -X POST https://integrate.zivvy.xyz/v1/payment-runs \
  -H "Authorization: Bearer $ZIVVY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "bank_account": "Deutsche Bank - EUR",
    "payment_entries": ["PAY-2026-0101", "PAY-2026-0102"],
    "value_date": "2026-07-30"
  }'

Export SEPA pain.001

import requests

run = requests.post(
    "https://integrate.zivvy.xyz/v1/payment-runs/RUN-2026-0007/export",
    headers={"Authorization": f"Bearer {ZIVVY_API_KEY}"},
    json={"format": "sepa_pain_001_09"},
).json()

pain = requests.get(run["download_url"]).content
open("sepa-2026-07-30.xml", "wb").write(pain)

API endpoints

POST /v1/payment-runsPOST /v1/payment-runs/{id}/approvePOST /v1/payment-runs/{id}/exportGET /v1/payment-entries

Events emitted

HMAC-SHA256 signed webhooks, retried for 24 hours.

  • payment-runs.created
  • payment-runs.approved
  • payment-runs.exported

0

free seats forever

0

card required to start

1

workspace for the workflow

Questions

Ready to try it?

Free plan. Two seats. No card.