Developer docsAPI version 2026-11-01
https://api.neofin.tech/v1StatusGet sandbox keys

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

Request
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" }
  }'
Response
{
  "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"
}
ParameterTypeDescription
currencystring, requiredEUR or GBP.
holder.typestring, requiredbusiness, or individual within approved programmes.
holder.legal_namestring, requiredShown to payer banks as the beneficiary.
holder.kyb_idstring, requiredA verified holder record.
external_refstringYour identifier, echoed on every credit.
rulesobjectSee the Collect guide.
labelsobjectFree-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

Credit
{
  "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

Request
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" }
  }'
Response
{
  "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
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

Errors

See Errors & status codes.