canonical: https://jentic.com/apis/dev-api.payfactory.app/payfactory

# Dev Api Payfactory App Payfactory API

Jentic publishes the only available OpenAPI specification for Payfactory API, keeping it validated and agent-ready. Payfactory provides embedded payment facilitation (payfac) services for ISVs and SaaS platforms that want to monetise payments without becoming a payfac themselves. The API covers merchant application onboarding, document upload, underwriting, transaction metadata, and reporting on deposits and ACH transactions, so software vendors can offer payments inside their product without rebuilding the back-office plumbing.

## For AI agents

Onboard merchant applications, manage underwriting, attach transaction metadata, and pull deposit and ACH reporting data through Payfactory's embedded payfac API.

## Scope

Does not handle hosted checkout, subscription billing, or chargeback management - use for embedded payfac onboarding, transaction metadata, and deposit reporting only.

## Capabilities

- Submit a merchant application and track its underwriting status
- Drive a multi-step application form session through token-based handoff
- Upload supporting documents like bank statements or IDs to a merchant application
- Attach metadata to processed transactions for reconciliation
- Pull deposit and ACH transaction reporting for finance teams
- Trigger underwriting on a submitted application
- Retrieve detailed application status for a given merchant

## Use cases

### Embedded Merchant Onboarding

Vertical SaaS platforms onboard their customers as merchants by combining the application form session endpoints with document upload. The `/v1/ApplicationForm/session` endpoint hands off a tokenised session for the merchant to fill out the form, and `/v1/Document/Upload` attaches required documents - bank statements, IDs, voided checks - before `/v1/Application/Submit` and StartUnderwriting close the loop.

Example prompt: Create a session via POST `/v1/ApplicationForm/session`, upload required documents via POST `/v1/Document/Upload/{type}/{appId}`, then call POST `/v1/Application/Submit` and POST `/v1/Application/StartUnderwriting/{appId}.`

### Underwriting Status Tracking

Operations teams use the application detail and status endpoints to poll where each merchant sits in the underwriting queue and surface that state inside their own admin UI. This avoids bouncing customers between systems while their account is being reviewed.

Example prompt: Call GET `/v1/Application/Status/{appId}` for each in-flight application and update the internal admin record with the latest status.

### Transaction Metadata for Reconciliation

Finance and accounting teams attach internal references to processed transactions via `/v1/Transaction/Metadata` and the bulk variant. The metadata helps reconcile Payfactory deposits against the platform's own ledger entries and customer invoices.

Example prompt: POST `/v1/Transaction/MetadataBulk` with an array of transaction IDs and corresponding internal invoice numbers to enable reconciliation in the finance system.

### Deposit and ACH Reporting

Finance teams pull funded deposits and the ACH transactions that make them up via `/v1/Reporting/Deposits` and `/v1/Reporting/AchTransactions.` This drives daily settlement reports, cash forecasting, and the reconciliation runs that bridge gateway activity to the bank account.

Example prompt: Call GET `/v1/Reporting/Deposits/{numberOfDeposits}` for the last 7 deposits and GET `/v1/Reporting/AchTransactions/{referenceId}` for each, then build a settlement report.

### Agent-Driven Merchant Operations

AI agents help platform ops triage onboarding queues, chase missing documents, and update status across Payfactory by going through Jentic. The Payfactory API key stays in your Jentic One instance and the agent can resolve intents like 'check this merchant's underwriting status' without writing custom integration code.

Example prompt: Search Jentic for 'check Payfactory application status', load the GET `/v1/Application/Status/{appId}` operation, and execute it for each in-flight applicant ID.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/v1/Application/Submit` | Submit a merchant application |
| GET | `/v1/Application/Status/{appId}` | Get current application status |
| POST | `/v1/Application/StartUnderwriting/{appId}` | Trigger underwriting on a submitted application |
| POST | `/v1/ApplicationForm/session` | Create a hosted application form session |
| POST | `/v1/Document/Upload/{type}/{appId}` | Upload a supporting document to an application |
| POST | `/v1/Transaction/MetadataBulk` | Attach metadata to multiple transactions |
| GET | `/v1/Reporting/Deposits` | List recent deposits |
| GET | `/v1/Reporting/AchTransactions/{referenceId}` | List ACH transactions for a deposit |

## Key resources

- **Application** — Submit, query, and manage merchant applications
- **ApplicationForm** — Session-based hosted application form for merchants
- **Document** — Upload supporting documents to merchant applications
- **Transaction** — Attach metadata to single or batched transactions
- **Reporting** — Deposit and ACH transaction reporting

## Why Jentic

- **Setup:** Wiring the Payfactory API by hand means learning its API key header and building the embedded onboarding, underwriting, document upload, transaction metadata, and deposit reporting calls yourself. Through Jentic you install once, import the Payfactory API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Payfactory puts the application id in the URL path (`/v1/Application/Status/{appId}`), so a rule can pin your agent to one application: it can check that application's status and read its reports and nothing else. You choose the operations it may call, so actions like starting underwriting or submitting a new application are not included unless you add them.
- **Credential handling:** Your Payfactory API key is stored once, encrypted, by your own Jentic One instance and injected into the ApiKey header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'check a Payfactory application status' or 'pull last week's deposits', and Jentic returns the matching operation with its input schema so the agent calls the right endpoint without browsing Payfactory docs.

## Related APIs

- **Stripe API** — Stripe Connect provides full payfac-style onboarding and processing for platforms.
- **Adyen Balance Platform** — Adyen Balance Platform supports embedded financial products including payfac flows.
- **GoCardless API** — GoCardless adds bank debit (direct debit / ACH pull) alongside Payfactory's card-led flows.

## FAQ

### Why is there no official OpenAPI spec for Payfactory API?

Payfactory does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Payfactory API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Payfactory API use?

Payfactory uses an API key passed in a request header (ApiKey scheme). Through Jentic the key is stored encrypted in the vault and injected at call time so the raw value never enters agent context.

### Can I onboard a merchant end-to-end with the Payfactory API?

Yes - chain POST `/v1/ApplicationForm/session`, POST `/v1/Document/Upload/{type}/{appId}` for each document, POST `/v1/Application/Submit`, and POST `/v1/Application/StartUnderwriting/{appId}` to drive a full onboarding flow.

### How do I pull deposit and ACH reporting from the Payfactory API?

Call GET `/v1/Reporting/Deposits` or `/v1/Reporting/Deposits/{numberOfDeposits}` for the deposit list, then GET `/v1/Reporting/AchTransactions/{referenceId}` to get the underlying ACH transactions for each deposit.

### What are the rate limits for the Payfactory API?

The OpenAPI spec does not declare rate limits. For reporting workloads, prefer the bulk metadata endpoint (`/v1/Transaction/MetadataBulk`) and paginate deposit reads to reduce request volume.

### How do I check an application's status through Jentic?

Search Jentic for 'check Payfactory application status', load the GET `/v1/Application/Status/{appId}` operation, and execute it with the application ID. Jentic injects the API key at execution time.

### Can I limit what my agent is allowed to do with the Payfactory API?

Yes. Because you run Jentic One yourself, your own rules decide which Payfactory operations and credentials the agent can use. Since Payfactory puts the application id in the URL path, such as GET `/v1/Application/Status/{appId}`, a rule can pin the agent to a single application so it only reads that application's status and deposit and ACH reports. Write actions like POST `/v1/Application/Submit` or POST `/v1/Application/StartUnderwriting/{appId}` stay off limits unless you explicitly allow them.
