API reference
Base URL https://api.neofin.tech/v1. All endpoints require a bearer token. POST endpoints accept an Idempotency-Key.
Jump to: Collection accounts · Credits · Checkout sessions · Wallets and holds (Marketplace) · Beneficiaries · Payouts · Treasury · Shield · Balances · Webhooks and events · Sandbox only
Collection accounts
POST/collection-accountsCreate a collection account
GET/collection-accountsList collection accounts
GET/collection-accounts/{id}Retrieve a collection account
PATCH/collection-accounts/{id}Update rules and labels
POST/collection-accounts/{id}/freezeFreeze an account
POST/collection-accounts/{id}/unfreezeUnfreeze an account
POST/collection-accounts/{id}/closeClose an account
GET/collection-accounts/{id}/statements?date=Fetch a daily statement
Create a collection account
curl https://api.neofin.tech/v1/collection-accounts \
-H "Authorization: Bearer $NEO_API_KEY" \
-H "Idempotency-Key: 7f1c2e4a-9b0d-4c55-a1e3-2d6f0b9c8e11" \
-H "Content-Type: application/json" \
-d '{
"currency": "EUR",
"holder": {
"type": "business",
"legal_name": "Helios Merchants B.V.",
"kyb_id": "kyb_31QZ"
},
"external_ref": "mch_8F2K91",
"rules": {
"first_party_only": true,
"max_credit_amount": 5000000
},
"labels": { "region": "NL" }
}'
{
"id": "ca_9Hc2LmQ",
"object": "collection_account",
"status": "active",
"currency": "EUR",
"iban": "FR7630004012773091526107",
"bic": "NEOFFRP1",
"holder": {
"type": "business",
"legal_name": "Helios Merchants B.V.",
"kyb_id": "kyb_31QZ"
},
"external_ref": "mch_8F2K91",
"rules": { "first_party_only": true, "max_credit_amount": 5000000 },
"labels": { "region": "NL" },
"created_at": "2026-11-05T14:02:11Z"
}
| Parameter | Type | Description |
|---|---|---|
| currency | string, required | EUR or GBP. |
| holder.type | string, required | business, or individual within approved programmes. |
| holder.legal_name | string, required | Shown to payer banks as the beneficiary. |
| holder.kyb_id | string, required | A verified holder record. |
| external_ref | string | Your identifier, echoed on every credit. |
| rules | object | See the Collect guide. |
| labels | object | Free-form key-value pairs for grouping and reporting. |
Credits
GET/creditsList credits
GET/credits/{id}Retrieve a credit
POST/credits/{id}/acceptAccept a credit from review
POST/credits/{id}/returnReturn a credit to source
The credit object
{
"id": "cr_2Kd9xZ",
"object": "credit",
"status": "settled",
"collection_account": "ca_9Hc2LmQ",
"external_ref": "mch_8F2K91",
"amount": 1240000,
"currency": "EUR",
"rail": "sepa",
"payer": { "name": "Kestrel Logistics GmbH", "iban": "DE89 •••• •••• •••• 3000 00", "country": "DE" },
"shield": { "name_match": "exact", "score": 1.0, "screening": "clear", "decision": "accept" },
"remittance_info": "INV-2291",
"received_at": "2026-11-05T14:02:12Z",
"settled_at": "2026-11-05T14:02:13Z"
}
Statuses: pending, in_review, settled, returned.
Checkout sessions
POST/checkout-sessionsCreate a checkout session
GET/checkout-sessions/{id}Retrieve a session
POST/checkout-sessions/{id}/expireExpire a session
POST/checkout-sessions/{id}/refundsRefund a paid session
Create a checkout session
curl https://api.neofin.tech/v1/checkout-sessions \
-H "Authorization: Bearer $NEO_API_KEY" \
-H "Idempotency-Key: 3e8b1d7c-52aa-4f0e-9c1d-0a7b6e5d4c3b" \
-H "Content-Type: application/json" \
-d '{
"amount": 24900,
"currency": "EUR",
"order_ref": "NW-20418",
"expires_in": 86400,
"amount_rules": {
"underpayment": "refund",
"overpayment": "refund_excess"
},
"success_url": "https://shop.example/thanks",
"branding": { "display_name": "Northwind Store" }
}'
{
"id": "cs_8Wn3Qa",
"object": "checkout_session",
"status": "open",
"amount": 24900,
"currency": "EUR",
"order_ref": "NW-20418",
"iban": "FR7630004012770001983362015",
"bic": "NEOFFRP1",
"holder_name": "Northwind Store",
"hosted_url": "https://pay.neofin.tech/s/cs_8Wn3Qa",
"expires_at": "2026-11-06T14:02:11Z",
"created_at": "2026-11-05T14:02:11Z"
}
Wallets and holds (Marketplace)
POST/walletsCreate a wallet
GET/wallets/{id}Retrieve a wallet
GET/wallets/{id}/transactionsList wallet transactions
POST/holdsCreate a hold
POST/holds/{id}/releaseRelease a hold
POST/holds/{id}/reverseReverse a hold
POST/split-rulesCreate a split rule
Beneficiaries
POST/beneficiariesCreate a beneficiary
GET/beneficiariesList beneficiaries
DELETE/beneficiaries/{id}Delete a beneficiary
Payouts
POST/payoutsCreate a payout
POST/payout-batchesCreate a payout batch
GET/payouts/{id}Retrieve a payout
Treasury
POST/sweep-rulesCreate a sweep rule
GET/sweepsList sweeps
POST/quotesRequest a conversion quote
POST/conversionsExecute a conversion
POST/blinc-transfersCreate a BLINC transfer
Shield
GET/shield/rulesRetrieve rules
PUT/shield/rulesReplace rules
GET/reviewsList credits in review
GET/recallsList recall cases
GET/recalls/{id}Retrieve a recall case
POST/recalls/{id}/evidenceSubmit evidence to a case
Balances
GET/balancesList balances
GET/balances/{account_id}Retrieve a balance
{ "account": "ca_9Hc2LmQ", "currency": "EUR", "available": 41820000, "held": 0, "in_review": 4150000, "as_of": "2026-11-05T14:10:00Z" }
Webhooks and events
POST/webhook-endpointsCreate an endpoint
GET/webhook-endpointsList endpoints
DELETE/webhook-endpoints/{id}Delete an endpoint
GET/eventsList events
POST/events/{id}/redeliverRedeliver an event
Sandbox only
POST/sandbox/creditsSimulate an inbound credit
POST/sandbox/recallsSimulate a recall
POST/sandbox/clock/advanceAdvance the sandbox clock