Agicap Integration Investigation Summary

Date: 2026-02-22 Author: Max (with Claude Code) For: Co-founder review


TL;DR

Agicap has undocumented write API endpoints for invoices, POs, and credit notes. We confirmed them by creating a test account, authenticating via OAuth 2.0, and reverse-engineering the full DTO schema through validation errors. The API works, but needs a "connection" to be provisioned by Agicap before we can actually push data. Next step: contact Agicap to get a connection set up.


What We Investigated

Channel Result
Agicap Public API Write endpoints exist (undocumented). Confirmed via direct testing.
Celigo (iPaaS) Native Agicap connector with confirmed Import (write) support. ~$6k/yr minimum.
Chift (unified API) Dead end. Agicap is a customer of Chift, not a connector.
SFTP Custom-quoted professional services engagement. No self-service. No documented formats.
Agicap UI "Banks and Integrations" page only handles bank connections, not API integration sources.

What We Actually Tested (hands-on)

1. Created accounts

2. Authenticated successfully

3. Confirmed read endpoints work

4. Discovered write endpoints exist (v1 + v2)

By sending intentionally incomplete requests, we got HTTP 400 validation errors that revealed:

5 writable document types:

Both v1 and v2 of the API exist. URL pattern:

https://api.agicap.com/public/business-documents/{v1|v2}/entities/{entityId}/connections/{connectionId}/{resource}

5. Reverse-engineered the full V2 DTO schema

By sending wrong field types and checking for 400 vs 500 responses, we mapped which fields the backend actually parses:

Required fields (V2 supplier/client invoices):

Field Type
externalId string
invoiceNumber string
currency string
amounts.totalAmount number
amounts.taxesAmount number
amounts.dueAmount number
status enum: none, draft, due, paid, cancelled, deleted, paymentExecuted
issueDate DateTimeOffset
dueDate DateTimeOffset
counterParty.id string

Optional fields (confirmed parsed by DTO):

Field Type
counterParty.name string
paymentDate Nullable<DateTimeOffset>
metadata IDictionary<string, string>

Variations by document type:

Fields confirmed NOT on the DTO (silently ignored by .NET backend): description, costCenter (top-level), category, account, tags, lineItems, notes, paymentTerms, reference, supplier, contact, bankAccount, paymentMethod, and ~15 others tested

Valid statuses:

Example V2 request body:

[{
  "externalId": "orcha-001",
  "invoiceNumber": "INV-2024-001",
  "currency": "EUR",
  "amounts": {"totalAmount": 119.00, "taxesAmount": 19.00, "dueAmount": 119.00},
  "status": "draft",
  "issueDate": "2024-01-15",
  "dueDate": "2024-02-15",
  "counterParty": {"id": "supplier-001", "name": "Test Supplier GmbH"},
  "metadata": {"costCenter": "CC-001", "glAccount": "4200"}
}]

6. Confirmed what does NOT exist

All return 404: categories, cost-centers, accounts, contacts, suppliers, expected-transactions, payment-orders, settings, integrations, sources

7. Hit the blocker: connection provisioning


The metadata Field (Cost Centers + GL Accounts)

Cost centers and GL accounts are not available as standalone endpoints (404). However, both v1 and v2 DTOs have a metadata field typed as IDictionary<string, string>. This is almost certainly how custom data like cost centers and GL accounts get attached to invoices.

We can't test which metadata keys Agicap recognizes until we have a live connection. This is a key question for Agicap.


Capability Matrix

Capability Can we do it? How? Confidence
Write invoices (supplier/client) YES Business Documents API v2 95%+ (validated via API)
Write purchase orders YES Business Documents API v2 95%+ (validated via API)
Write credit notes (supplier/client) YES Business Documents API v2 95%+ (validated via API)
Push cost centers Likely Via metadata field on invoices 80% (field exists, keys untested)
Push GL accounts Likely Via metadata field on invoices 80% (field exists, keys untested)
Trigger approval workflows NO Not possible via any channel 95%+
Read bank journal entries YES Treasury Bank Journal API Confirmed
Read transactions YES Treasury Bank Journal exports Confirmed
Read card expenses Likely Card Expenses Bank Journal API High

Architecture Options

Approach Cost Complexity Best When
Direct Agicap API (recommended) $0 Low Agicap provisions a connection for us
Celigo middleware ~$6k/yr Medium If connection can only be created via Celigo
SFTP Custom quote High If API approach fails entirely

Recommended: Direct API integration via Business Documents v2. Auth is standard OAuth 2.0, schema is straightforward, backend is .NET/C#. Build a native Clojure module following Orcha's DATEV/Maesn pattern.


Next Steps to Get Full Certainty

1. Contact Agicap (critical, unblocks everything)

Send them this:

We're building an integration from our invoice processing platform (Orcha) to Agicap via your Business Documents API v2. We've confirmed the write endpoints work and reverse-engineered the DTO schema.

We need:

  1. A connection provisioned for entity 211584 (GET /connections currently returns [])
  2. Full API documentation for Business Documents v2 write endpoints
  3. What metadata keys are recognized for cost centers and GL accounts?
  4. Is there a partner API program for direct integration?

Contact via: https://agicap.com/en/partners/become-partner/

2. Once connection exists, test these (we can do this ourselves)

3. Ask Agicap about SFTP (if API doesn't cover everything)

4. Rotate test credentials

The current API credentials (Client ID MWKY9K5mrD) were used during this exploration and should be rotated.


Resource URL
Developer Portal https://api.agicap.com/
Business Documents Guide https://api.agicap.com/guides/business_documents
Business Documents v2 https://api.agicap.com/api-details/business-documents-v2
Auth Guide https://api.agicap.com/guides/authentication
Partner Program https://agicap.com/en/partners/become-partner/
Celigo Agicap Connector https://docs.celigo.com/hc/en-us/articles/30494709375515
Legacy API Docs https://openapi.agicap.com/docs/index.html
Postman Collection https://www.postman.com/agicap-data-int/workspace/agicap-public/

Dead Ends (don't revisit)