Date: 2026-05-13 Product: Payhawk (payhawk.com) -- Spend Management Platform, London/Sofia Purpose: Evaluate Payhawk's API capabilities for Orcha integration -- specifically for a German customer evaluating Payhawk as a Pleo alternative for employee credit cards while continuing to use Orcha for AP invoices and DATEV for accounting.
Payhawk is NOT an ERP or accounting system. Like Pleo and Moss, it is a spend management platform that handles:
Payhawk sits upstream of the ERP -- it captures, codes, and approves expenses, then exports pre-accounted data to the customer's actual accounting/ERP system (DATEV, NetSuite, Business Central, Sage Intacct, Xero, Exact, etc.).
Implication for Orcha: Payhawk is a peer (spend management) layer, not a target system to push invoices into. For the customer scenario in scope (Orcha = AP, DATEV = accounting, Payhawk = card programme), the integration question is narrower:
Both directions are technically feasible -- with significant nuances. See section 7.
| Capability | Public API | Via Workato | Via Make | Via DATEV | Via CSV | Verdict |
|---|---|---|---|---|---|---|
| Read expenses (cards + invoices + reimbursements) | YES (GET /expenses) |
YES (triggers) | YES (community) | N/A | YES | Available now |
| Read individual expense detail | YES (GET /expenses/{id}) |
YES | YES | N/A | YES | Available now |
| Read bank statements / card transactions (raw) | YES (Fund Accounts endpoint) | NO | NO | N/A | NO | Available now |
Real-time webhooks (expense.created, etc.) |
YES | YES (real-time trigger) | YES | N/A | N/A | Available now |
| Read receipt/invoice documents | YES (URL in document.files[].url) |
NO | NO | YES (Belege Online) | N/A | Available now |
| Read suppliers/vendors | YES (custom field-like) | NO | NO | YES (DUO master data) | YES | Available now |
| Write suppliers/vendors | PARTIAL (via External ID mapping + custom fields API) | NO | NO | YES (Payhawk -> DUO via External ID) | YES (import) | Workaround required |
| Read chart of accounts | YES (Categories / custom fields) | NO | NO | YES (DUO -> Payhawk) | YES | Available now |
| Write chart of accounts | YES (Categories + custom fields update API; multi-entity endpoints added Summer 2025) | NO | NO | YES (one-way DUO -> Payhawk) | YES (import) | Available now |
| Read/write cost centers (KOST1/KOST2) | YES (custom fields, predefined list type) | NO | NO | Manual setup in DATEV | YES | Available now |
| Read/write tax codes | YES (custom fields update) | NO | NO | YES (DUO -> Payhawk; BU7/8/9 auto) | YES | Available now |
| Read employees | YES | NO | NO | N/A | YES | Available now |
| Mark expenses as exported (close the loop) | YES (added Summer 2025) | NO | NO | YES (automatic) | N/A | Available now |
| Push invoices into Payhawk | Email inbox / UI upload only | NO | NO | NO | NO | Not via API |
| Trigger/manage approvals | NO (read-only) | NO | NO | NO | NO | Not available |
Overall assessment: Payhawk has a meaningfully better API posture than Pleo on three critical axes -- real-time webhooks, broad plan availability, and rate limits -- while DATEV integration is among the best in the category (native, bidirectional master-data sync via DATEV Cloud Services / Rechnungsdatenservice 1.0). Reference-data write is feasible but takes a different shape than Pleo: Payhawk models chart of accounts, cost centers, tax codes, and projects as Categories + Custom Fields rather than as separate first-class resources, and supplier/vendor write is the weakest area -- there is no documented POST /suppliers endpoint and suppliers are typically pushed in via the DATEV mapping flow or CSV import.
| API | Base URL | Purpose |
|---|---|---|
| Developer API (v3) | https://api.payhawk.io/api/v3 |
Main REST API: expenses, custom fields, fund accounts, workflow, webhooks |
| Developer Portal | https://developers.payhawk.com/ |
Interactive documentation with in-browser auth and "Try it" |
| Help Center (developer section) | payhawk.com/help/payhawk-for-developers |
Conceptual guides, auth setup, FAQ |
| OpenAPI / Swagger spec | Embedded in developer portal | Machine-readable spec |
| Method | Details |
|---|---|
| API Key (Bearer or custom header) | Primary auth method -- no OAuth |
| Headers accepted | Authorization: Bearer <KEY> OR X-Payhawk-ApiKey: <KEY> |
| Key types | Primary, Secondary (auto-generated, undeletable) + custom keys |
| Group-level keys | For multi-entity orgs -- one key spans multiple entities for master-data ops |
| Key management | Payhawk Web Portal > Settings > Integrations > API Keys |
| Permissions | Admin / IT Admin / custom role required to issue keys |
No OAuth 2.0 and no scoped tokens -- this is simpler than Pleo's OAuth client-credentials flow but means API keys are static long-lived credentials that grant broad access. Treat them as production secrets.
ratelimit-* response headersFor comparison, Pleo's limit is 600 requests/minute = 10 req/s, so Payhawk is slightly more permissive at the per-second budget. The 15 req/s ceiling is comfortable for incremental sync + webhook-driven reconciliation; a full bulk replay on a large account would need pagination + backoff.
Confirmed via developer portal section index, help center, and Workato/Make connector inspection:
| API Category | Read | Write | Notes |
|---|---|---|---|
| Expenses | GET /expenses (paginated, filterable by reviewedAt, etc.; 1000 records max per page), GET /expenses/{id} |
POST to create bills, reimbursable, cash expenses (but NOT card expenses -- those come from the card switch) |
Mark-as-exported PATCH added Summer 2025 |
| Workflow | GET /accounts/{accountId}/expenses/{expenseId}/workflow returns approver names, status, steps |
N/A | Approval read-only |
| Custom Fields | List, get definitions and values | Create, update, delete field definitions; update values on expenses | This is the primary mechanism for cost centers, projects, tax codes, etc. |
| Categories (Chart of Accounts) | List | Create / update (Summer 2025 multi-entity endpoints) | Maps to DATEV Sachkonten in DUO-connected accounts |
| Fund Accounts | GET bank statements / card-tx ledger with FX info |
N/A | This is the raw transaction feed (settled card tx, ATM/FX fees) |
| Webhook Subscriptions | List subscriptions | Create / update / delete subscriptions | Per-entity; group-level orgs manage separately |
| Documents / Receipts | Returned inline on expense responses as document.files[].{id, url, contentType} -- array supports multiple files per expense |
Implicit (attached via Receipts Mailbox or UI/mobile upload) | URL longevity not publicly documented -- see section 7 |
| Suppliers | Implicit -- exposed on expense responses; bulk via import/export in UI | No public POST /suppliers documented; supplier mapping primarily via External ID + CSV import or DATEV sync |
Weakest area for write parity with Pleo |
| Employees | Read available | Limited; managed primarily via HRIS connectors (30+ HR systems including BambooHR, Workday, Personio, Deel) | |
| Cards | Card detail referenced on expenses (last-4, type, virtual/physical implied) | N/A | Card issuance handled in UI / via banking layer |
Per the Summer 2025 release notes:
API is on v3. No public deprecation schedule surfaced. The v3 namespace appears stable; older versions are not referenced in current docs.
Confidence: MEDIUM-HIGH. Payhawk's write surface is real and useful, but it is structured differently than Pleo's. Where Pleo has separate first-class resources for Vendors, Accounts, Tags, Tax Codes (each with full CRUD), Payhawk consolidates most reference data under Categories (chart of accounts) and Custom Fields (cost centers, projects, tax codes, locations, etc.) with a generic update API. Suppliers are the weakest area.
| Operation | Method | Confidence | Source |
|---|---|---|---|
| Create expense (bill / reimbursable / cash) | POST | HIGH | Developer portal "Create expense" |
| Update expense (incl. custom field values) | PUT/PATCH | HIGH | Workato connector ("Update expense" action) |
| Create custom field definition | POST | HIGH | Help Center "Updating Custom Fields from Exact Online" describes the pattern |
| Update custom field definition / values | PUT/PATCH | HIGH | Help Center; ERP integrations rely on this |
| Delete custom field | DELETE | MEDIUM | Listed as supported in dev API overview |
| Create / update Categories (Chart of Accounts) | POST/PUT | HIGH | Summer 2025 release notes -- explicit multi-entity write API for categories |
| Mark expense as exported | PATCH | HIGH | Summer 2025 release notes |
| Mark payment as exported | PATCH | HIGH | Summer 2025 release notes |
| Create webhook subscription | POST | HIGH | Developer portal "Create Webhook Subscription" |
| Update webhook subscription | PUT | HIGH | Developer portal |
| Delete webhook subscription | DELETE | HIGH | Developer portal |
| Operation | Status | Workaround |
|---|---|---|
| Create supplier | No documented public endpoint | Use supplier bulk import (CSV) in UI; or rely on DATEV DUO master-data sync with External ID mapping; or push supplier as a custom field value |
| Update supplier master data | No documented public endpoint | Same workarounds |
| Set supplier External ID for ERP mapping | Supported in UI / bulk import, not confirmed in API | Bulk import + manual mapping per Help Center |
unpaid@payhawk.me / paid@payhawk.me) -- up to 10 attachments per emailPOST /vendors, PUT /vendors, archive, etc.| Platform | Payhawk Connector? | Quality | Details |
|---|---|---|---|
| Workato | YES (official-grade) | Production | 2 real-time triggers (New expense, Updated expense) + 3 actions (Get expense, Update expense, Custom action). HTTP connector available for any other endpoint. |
| Make | YES (community) | Community-built | Contributed by MAXMEL Tech via Make's community/partners program. Free tier. No specific module list published; uses official Payhawk API endpoints under the hood. Adoption is very low ("0 scenarios" published count). |
| Zapier | NO | -- | No dedicated Payhawk Zapier app found in the marketplace. (Notable gap vs Pleo, which has 4 triggers + 8 actions on Zapier.) |
| Celigo | NO | -- | Not in marketplace |
| n8n | NO native | -- | No native or community node found; would have to use the generic HTTP Request node |
| Tray.io | NOT CONFIRMED | -- | Not listed |
Workato is the best iPaaS path if Orcha or a customer wants no-code orchestration. The two real-time triggers (New expense, Updated expense) mirror Payhawk's webhook events and are the same primitives we'd build against directly. For anything beyond expenses (categories write, custom fields write, webhook subscription management), even Workato users will need the HTTP connector. The Zapier gap is real -- customers used to Pleo-on-Zapier will not have parity.
This is Payhawk's strongest non-API channel and a major advantage vs Pleo for German customers.
| Aspect | Detail |
|---|---|
| DATEV products supported | DATEV Unternehmen Online (DUO) -- listed on DATEV Marketplace |
| API used by Payhawk | DATEV Cloud Services / Rechnungsdatenservice 1.0 |
| Direction | Bidirectional |
| Inbound (DUO -> Payhawk) | Chart of accounts (Sachkonten), tax codes, cost centers (KOST1 + KOST2 -- but must be configured in DATEV first, no auto-pull), supplier master data limitations apply |
| Outbound (Payhawk -> DUO) | Payment transactions (real-time on settle), expense entries (real-time on review), receipts + invoices delivered to Belege Online (DATEV's native document store) |
| Setup | Wizard-driven, NOT one-click. Requires: tax advisor enables Rechnungsdatenservice 1.0 + admin rights in MyDatev, then mapping of collective supplier account, EUR/GBP/USD bank accounts, cash-in-transit account, and ATM/FX fee account. Initial CoA upload via wizard. |
| Speed | Real-time on review (expenses) / settle (payments) |
| Suppliers | DUO does NOT support automatic supplier retrieval. Workflow: set Payhawk supplier's External ID to the DUO supplier code. Bulk via import/export. No retroactive update of historical expenses if mapping changes. |
| Tax codes | Payhawk auto-creates BU7, BU8, BU9; other rates require manual configuration |
| Special features | FX/POS fee handling per IAS 21; protection against double-booking; respects DATEV locked periods; bookkeeping correction flow |
Implication for Orcha-in-customer-stack: If the customer connects Payhawk directly to DATEV DUO, the chart of accounts, tax codes, and cost centers will flow DATEV -> Payhawk natively -- meaning Orcha does NOT need to push CoA/tax/cost-center reference data into Payhawk in that configuration. Orcha would still need to push supplier mappings (External ID alignment) if Orcha is the authority for vendor master data, since DUO can't auto-sync those. See section 7 for the recommended split.
Confirmed list (non-exhaustive):
| System | Connection Type | Direction |
|---|---|---|
| DATEV (DUO) | API (Cloud Services / RDS 1.0) | Bidirectional |
| NetSuite | API (native) | Bidirectional |
| Microsoft Dynamics 365 Business Central | API | Bidirectional (incl. Projects/Tasks pull added Jan 2026) |
| Microsoft Dynamics 365 Finance | API | Bidirectional |
| Sage Intacct | API (incl. prepaid expense amortization sync Jan 2026) | Bidirectional |
| Xero | API (separate fee export Feb 2026) | Bidirectional |
| Exact Online | API (CoA + projects + VAT + departments sync) | Bidirectional |
| Exact Globe | API | Bidirectional |
| QuickBooks | API | Bidirectional |
| Pennylane | API (Dec 2025 -- masterdata sync) | Bidirectional |
| Odoo | API | Bidirectional |
| AFAS | API | Bidirectional |
| Sage 50/100/200 | CSV/XLS template | Export |
| Cegid | API/CSV | Bidirectional |
| SAP S/4HANA, B1, ByDesign | Predefined CSV/XLS export templates | Export |
Workday, ADP, Gusto, BambooHR, Deel, Paycor, Personio, Hibob, etc.
| Aspect | Detail |
|---|---|
| Available | YES, official |
| Confirmed event examples | expense.created, expense.approved -- "full list under NewWebhookSubscription > EventType in API docs" (not enumerable without authenticated portal access; the schema is JS-rendered SPA so cannot be scraped here) |
| Subscription mgmt | Create / update / delete via API; per-entity (group-level subscriptions managed separately) |
| Delivery | HTTPS POST |
| Retries | Automatic on 408, 409, 429, 500+ responses (retry count not publicly documented) |
| Signature verification | SHA-256 + RSA -- payload signed; receiver verifies with Payhawk's public key |
| Real-time? | YES -- this is the primary advantage vs Pleo |
Payhawk API is free on all plans. This is the headline differentiator vs Pleo.
"Free to use across all Payhawk accounts" -- payhawk.com/integration/api
There is no API-gated tier and no per-call fee. The 15 req/s rate limit applies uniformly. Any paying Payhawk customer can issue API keys via Settings > Integrations.
For comparison: Pleo gates Open API access to the Advanced plan ($109/mo+).
Payhawk priced per module + per admin/accountant seat + per card + by transaction volume, NOT per-user. Employee seats are unlimited on every plan.
| Module | Starting Price (USD/mo) | Relevant For |
|---|---|---|
| Travel | $299 | Business travel booking |
| Cards & Expenses | $449 (some sources cite $699 for higher tier) | Primary scope for this customer -- card programme + expense management + 40+ ERP/HR integrations |
| Bill Payments | $349 | AP module (customer would NOT need this since Orcha handles AP) |
| Procure to Pay | $499 | PO management |
| Payhawk Complete | Custom | All modules |
Every module includes: unlimited employee seats, OCR data extraction, advanced workflow approvals, multi-entity environment, live accounting integrations, custom exports, HRIS integrations, security/SSO, and developer API access.
Pricing model differences vs Pleo:
expense.created, expense.approved, etc.) pointing at Orcha endpoint| Pain Point with Pleo | Payhawk Status | Source |
|---|---|---|
| Realtime transaction webhooks -- Pleo gates expense data behind customer-triggered export jobs (monthly cadence) | YES, real-time webhooks. expense.created, expense.approved, full event catalog managed via Webhook Subscriptions API. POST to subscriber endpoint, RSA/SHA-256 signed. Retries on 408/409/429/5xx. |
payhawk.com/integration/api ; payhawk.com/blog/mastering-webhooks-for-efficient-financial-data-integration |
| Receipt URL longevity -- Pleo expires receipt URLs after 24h | NOT PUBLICLY DOCUMENTED. Expense response returns document.files[].url but the URL TTL policy is not stated in any public Payhawk doc. The developer portal is a JS-rendered SPA that WebFetch cannot read fully -- this needs to be tested empirically (issue an API call, capture URL, attempt re-fetch after 1h / 6h / 24h / 7d). HIGH PROBABILITY these are signed S3/CloudFront URLs with multi-hour TTL (industry standard), but cannot be confirmed without an authenticated probe. |
developer portal (gated); apitracker.io |
| Full CRUD on reference data (vendors, CoA, cost centers, tax codes) | 3 of 4 yes, 1 weak. CoA via Categories API (read + write, multi-entity from Summer 2025). Cost centers + tax codes + projects via Custom Fields API (full CRUD on definitions and values). Suppliers/vendors lack a documented public CRUD endpoint -- workaround is bulk import or DATEV sync + External ID mapping. This is the only meaningful write gap vs Pleo. | payhawk.com/help/overview-of-the-payhawk-developer-api ; Summer 2025 release notes |
| DATEV native integration depth | EXCELLENT. Native DUO integration via DATEV Cloud Services / Rechnungsdatenservice 1.0. Bidirectional master data (CoA, tax codes, KOST1/2). Real-time export of expenses (on review) + payments (on settle) + receipts/invoices to Belege Online. Wizard setup. Listed on DATEV Marketplace. (Pleo's DATEV integration is one-click export, but less deeply bidirectional for master data and uses CSV for older DATEV Kanzlei Rechnungswesen workflows.) | payhawk.com/en-us/integration/datev ; payhawk.com/help/connecting-payhawk-to-duo |
| API access pricing tier | API is free on ALL plans. Entry point is the Cards & Expenses module at $449/mo flat (unlimited employee seats). No Advanced-tier gating. | payhawk.com/integration/api ; payhawk.com/en-us/pricing-and-plans |
| Field completeness on transactions | Expense response includes: amount + currency + FX, merchant, category (CoA), custom field values (cost center, project, tax code), employee, approver names + status (via separate workflow endpoint), document/receipt URLs, expense type (bill / cash / reimbursable / card). Card last-4 and virtual/physical flag are surfaced via the cards data on expenses. Full schema visible only in authenticated developer portal -- needs verification probe for exact JSON field names. | developer portal sections "Expenses" + "Workflow" + "Fund Accounts" |
Payhawk and Orcha have overlapping functionality in the AP module of Payhawk -- but the customer scenario in scope explicitly excludes Payhawk's Bill Payments module. The split is clean:
| Capability | Payhawk (Cards & Expenses module) | Orcha |
|---|---|---|
| Invoice capture (OCR) | (yes, but module not in use by this customer) | YES (core product) |
| Card transaction capture | YES | NO |
| Card transaction pre-accounting | YES (AI-powered) | NO |
| Reimbursements | YES (mileage, per diem) | NO |
| Cost center / project coding | YES (Custom Fields) | YES |
| DATEV push | YES (Belege Online + real-time export) | YES (direct integration) |
| Approval workflows | YES (read-only via API) | Depends on customer |
So with the Bill Payments module off, Payhawk's responsibility is cards + reimbursements + their export to DATEV, and Orcha's responsibility is AP invoices + their export to DATEV. The two streams converge in DATEV, not in either spend tool.
Scenario A: Orcha reads card transaction + expense data FROM Payhawk for unified spend analytics (PRIMARY USE CASE)
expense.created / expense.approved webhooks -> Orcha endpointGET /api/v3/accounts/{accountId}/expenses/{expenseId} for full detailGET /api/v3/accounts/{accountId}/expenses/{expenseId}/workflow for approver chaindocument.files[].url) for receipt access -- BUT verify URL TTL before designing whether to mirror documents into Orcha S3 or fetch on-demandScenario B: Orcha writes reference data INTO Payhawk for consistent coding (SECONDARY USE CASE)
POST /suppliers API.Scenario C: Customer migrates AP from Orcha to Payhawk's Bill Payments module
Scenario D: Orcha pushes invoices into Payhawk
POST /invoices endpoint. Email-to-Mailbox (unpaid@payhawk.me) would work as a hack but is irrelevant since customer doesn't want this anyway.| Dimension | Pleo | Payhawk | Winner for Orcha |
|---|---|---|---|
| Real-time webhooks | Partial (Svix-powered, but expense flow is export-job-gated) | YES (expense.* events real-time, RSA-signed) |
Payhawk |
| Export cadence | Customer-triggered Export Jobs (monthly typical) | Auto on review (expenses) / settle (payments) | Payhawk |
| API access tier | Advanced plan ($109/mo+) | All plans (no tier gating) | Payhawk |
| Vendor CRUD | YES (full first-class API) | NO (CSV import + External ID workaround) | Pleo |
| CoA CRUD | YES (first-class, batch create) | YES (Categories API, multi-entity write Summer 2025) | Tie |
| Cost center / project CRUD | YES (Tags API, max 5 per entry) | YES (Custom Fields API, dynamic + predefined list types) | Tie |
| Tax code CRUD | YES (first-class) | YES (Custom Fields API) | Tie |
| Auth | OAuth 2.0 client credentials | Static API key (Bearer) | Pleo (more secure model, but Payhawk simpler to integrate) |
| Rate limit | 600/min (10/s) | 15/s | Payhawk (1.5x) |
| DATEV depth | One-click export, less deep on master data | Native bidirectional via DATEV Cloud Services, Belege Online for documents | Payhawk |
| Zapier connector | YES (4 triggers + 8 actions) | NO | Pleo |
| Workato connector | NO | YES (2 triggers + 3 actions) | Payhawk |
| Approval via API | NO | NO (read-only workflow) | Tie |
| Invoice push via API | NO | NO | Tie |
The single most important unverified question for the customer scenario is: do receipt URLs returned by GET /expenses persist, or do they expire like Pleo's 24h ones? Public docs do not state a policy. Our recommendation:
The URL field is explicit and documented (document.files[].url), and the receipt is a first-class object (multiple files per expense supported, with id, url, contentType), so retrieval mechanics are clean -- only the TTL is ambiguous.
| Orcha Need | Payhawk Support | Endpoint(s) | Confidence | Notes |
|---|---|---|---|---|
| Real-time card-tx ingestion | YES (webhooks) | Webhook Subscriptions -> expense.created |
HIGH | RSA-signed, retries on 4xx/5xx |
| Full expense detail pull | YES | GET /expenses/{id} |
HIGH | Incl. document URLs, custom fields |
| Approver chain | YES | GET /expenses/{id}/workflow |
HIGH | Read-only |
| Raw card-tx feed (pre-review) | YES | Fund Accounts (bank statements) | MEDIUM | Catches tx before review |
| Receipt document URLs | YES | Inline on expense response | HIGH | TTL unverified -- needs probe |
| Sync chart of accounts (write) | YES | Categories API (multi-entity Summer 2025) | HIGH | Often unnecessary if DATEV DUO connected |
| Sync cost centers / projects (write) | YES | Custom Fields API | HIGH | Predefined or dynamic list |
| Sync tax codes (write) | YES | Custom Fields API | HIGH | Often unnecessary if DATEV DUO connected |
| Sync suppliers / vendors (write) | PARTIAL | Bulk CSV import + External ID; no public POST | MEDIUM | Workaround; DUO can't auto-pull either |
| Mark expense as exported | YES | PATCH (Summer 2025) | HIGH | Closes the loop |
| Push invoices into Payhawk | NO | N/A | HIGH | Not via API |
| Trigger approvals | NO | N/A | HIGH | Read-only |
| Read employees | YES | Employees endpoint | HIGH | HRIS connectors usually fill this role |
Unlike Pleo, where API gating + monthly export cadence + 24h receipt expiry make a clean real-time integration painful, Payhawk's posture is fundamentally compatible with how Orcha wants to operate:
[Card transactions] [Vendor invoices]
| |
v v
Payhawk -- real-time webhook --> Orcha (read-side: unified spend analytics)
| |
v v
DATEV <----- shared books ----- DATEV
Read side (Payhawk -> Orcha):
expense.created and expense.approvedGET /expenses/{id} -- pull amount, FX, merchant, category, custom fields, employee, card metadata, document URLsGET /expenses/{id}/workflow for approver chainGET /expenses?reviewedAt>... reconciliation sweep against missed webhooksWrite side (Orcha -> Payhawk):
POST /suppliers.| Approach | Cost | Complexity | Value | Verdict |
|---|---|---|---|---|
| Read card tx via webhook + GET /expenses | $0 marginal (API is free) | Low-Medium | High | Recommended for unified analytics |
| Mirror documents to Orcha storage | $0 marginal | Low | Medium-High | Recommended (default-safe until TTL probed) |
| Write supplier mappings via CSV import | $0 marginal | Low | Medium | Recommended if Orcha is supplier master |
| Write CoA / cost centers / tax codes via API | $0 marginal | Medium | Low if DATEV DUO connected | Skip in default case |
| Use Workato instead of direct API | Workato license | Lowest | Same value as direct | Only if customer is already a Workato shop |
Before any engineering commitment:
POST /suppliers exists in a non-public partner-only namespace -- Payhawk has a Partner Program (payhawk.com/partner-program) that may expose richer endpoints than the public dev portalFor the customer scenario (DATEV + Orcha + Pleo replacement with Payhawk for cards): YES, integrate. The read-side path is genuinely clean -- real-time webhooks, included API, deep field coverage. The write-side path is narrower than Pleo's CRUD but sufficient because DATEV does the heavy lifting for accounting reference data. Suppliers are the one gap to call out to the customer (and to mitigate via CSV import + External ID).
Payhawk is materially better than Pleo on the three critical gaps that prompted this evaluation:
https://api.payhawk.io/api/v3, 15 req/s, free on all plans, RESTful, real-time webhooksexpense.created example, retry behaviour on 408/409/429/500+, SHA-256/RSA signature verificationSupplementary research for the German defense-sector customer assessment (companion to 2026-05-14-qonto-vs-pleo-defense-customer-assessment.md). Updated customer priorities: must handle employee credit cards extremely well, needs a strong mobile receipt-capture app, needs a read+write API, and prefers NOT prepaid (wants a charge card / credit line, not a top-up wallet).
| Dimension | Finding | Source |
|---|---|---|
| Prohibited-business / restricted-activities policy | Payhawk's published Restricted Activities list (current Terms + legacy Terms of Use) covers pyramid/Ponzi schemes, illegal goods, counterfeit goods, third-party payment aggregation, money laundering, terrorism financing/propaganda, pornography/escort services, non-licensed drugs, money service bureaus, dealers in precious metals/stones, plus restricted MCCs (gambling, crypto, money transfer, lotteries). Defense, arms, weapons, ammunition, military goods/vehicles, and dual-use goods are NOT named anywhere — neither as prohibited nor as explicitly permitted. This is materially better than Qonto (which explicitly excludes "military activities, including the sale of weapons, military vehicles, and their copies") and similar to Pleo's silence — but silence is discretionary, not a green light. | payhawk.com/terms ; payhawk.com/terms-legacy |
| Card issuer / licence holder (EEA) | For EEA companies, Payhawk cards are issued by Payhawk Financial Services UAB (Lithuanian EMI, Bank of Lithuania licence No. 95 / authorisation LB002200) and Paynetics AD (Bulgarian EMI). Payhawk is a Visa principal member. Paynetics' own General Terms list prohibited transactions (pyramid schemes, illegal/counterfeit goods, pornography, AML/CTF) — again no defense/weapons exclusion, only a generic "illegal items / applicable law" catch-all. So neither Payhawk's nor the BIN sponsor's published policy bars defense. | lb.lt ; thebanks.eu ; paynetics.online/pages/paynetics-general-terms ; payhawk.com/terms |
| Data hosting | Payhawk's Trust Portal states German customer data is stored in Frankfurt, Germany; all other customer data in Brussels, Belgium; no cross-jurisdiction replication. Infrastructure on AWS + GCP. This is concretely better than Pleo ("EEA, region unstated") and comparable to or better than Qonto (AWS Paris) for a German buyer. | payhawk.com/trust |
| Certifications | ISO 27001:2022, SOC 1 Type 2, SOC 2 Type 2, PCI-DSS Level 1, GDPR, DORA-compliant, CSA STAR Level 1, and IDW PS 880 (German auditing standard for service-org controls). This is a much stronger certification stack than both Qonto (ISO 27001 scoped only to e-invoicing; no SOC 2) and Pleo (no ISO 27001, no SOC 2). BSI C5 and ISAE 3402 are NOT held — relevant if the customer's security function mandates BSI C5. | payhawk.com/trust ; payhawk.com/security |
| Verdict | AMBER — no documented barrier, and Payhawk is the strongest of the three vendors on certifications and German data residency. But "not prohibited" ≠ "cleared": onboarding remains a discretionary KYB decision, Payhawk's own help docs direct edge-case industries to sales@payhawk.com, and Visa scheme rules + the EEA EMIs' AML/sanctions screening still apply. Get written pre-clearance from Payhawk sales/compliance before recommending. No RED signal anywhere. |
— |
Payhawk does overlap with Orcha — more than Pleo, less aggressively than Qonto, but the trajectory is the concern.
No material regressions since the 2026-05-13 doc; one positive signal. Base API still https://api.payhawk.io/api/v3, 15 req/s, API free on all plans.
Orcha can READ: expenses/transactions (GET /accounts/{accountId}/expenses, paginated 1000/page, filterable) incl. amount/FX/merchant/category/custom-field values; individual expense detail; receipts/documents (inline files[] array with id/url/contentType, multiple per expense — URL TTL still not publicly documented, still needs an empirical probe); approval workflow (/expenses/{id}/workflow, approver names + status, read-only); raw card-tx feed via Fund Accounts bank-statement endpoint (tx type, currency, FX, fees). Employees and card-metadata endpoints remain thinly documented publicly — confirm in the authenticated portal.
Orcha can WRITE: custom fields — full CRUD on definitions and values (the primary mechanism for cost centers, tax codes, projects); categories / chart of accounts — create/update incl. multi-entity endpoints (Summer 2025); create bills / reimbursable / cash expenses (not card expenses); mark expenses/payments as exported (Summer 2025); webhook subscription CRUD. Suppliers/vendors remain the weak spot — still no clearly documented public POST /suppliers; however the webhook catalogue now lists a supplier.updated event, implying suppliers are at least a first-class object internally, so a write endpoint may exist or be near — worth a direct check with Payhawk. Workaround unchanged: bulk CSV import + External ID, or DATEV DUO sync.
Webhooks: real-time confirmed, ~20 event types incl. expense.created, expense.approved, payment.settled, supplier.updated; HTTPS POST, RSA/SHA-256 signed, retries on 408/409/429/5xx. Real-time capability holds.
Funding model — this is the strong fit for the customer's "NOT prepaid" requirement. Payhawk offers a genuine revolving credit card / credit line in the EEA (incl. Germany), not just a prepaid wallet:
Cards & app UX — solid, not flawless. Aggregate user-satisfaction ~92% across G2/Capterra (~930 reviews); Payhawk is a G2 Leader and Momentum Leader in expense management. Physical cards (plastic + metal) ship in ~5 business days; issuing cards is praised as fast. Mobile receipt capture is a core strength — "snap a photo, system extracts the data instantly," AI auto-suggests the account code. Documented gripes: receipt scanner accuracy/responsiveness is "could be better," the email-receipt matcher doesn't always match, occasional post-update technical glitches, limited reporting, and physical cards don't print the in-app card name (confusing with multi-entity setups). Net: a credible, mobile-first cards + capture product that clears the customer's bar, with minor rough edges typical of the category.