Bank Accounts
API Reference
Connections

Connections

Who calls these endpoints?External API (s2s)
Base path
/api/v1/bank-connect
Identity
Ed25519 request signature on every request — X-Key-Id, X-Date, X-Nonce, X-Signature. ±5 min clock window, single-use nonce. A Bearer token or a panel session is not accepted here (401 AUTH_HEADERS_MISSING).
Authorization
The key must carry the Bank Connections product (BANK_CONNECT) and the permission for the endpoints on this page: bank-connect:view. Without the product the call gets 403 PRODUCT_NOT_ENABLED; without the permission 403 API_INSUFFICIENT_SCOPE. See API Introduction › Permissions.
Cross-surface
These endpoints are the s2s surface — call them from your own server with a signed request. The same data has screens in the panel, but panel endpoints cannot be called with an API key, and these endpoints cannot be called with a panel session. Connecting and disconnecting a bank is done only in the panel.

A connection is the read connection you set up with a bank. You set it up in the panel; these endpoints read the status of your connections. What the statuses mean: Concepts › Connection statuses.

List connections

GET /api/v1/bank-connect/connections

Query parameterTypeDescription
statusstringComma-separated statuses, e.g. ACTIVE,DEGRADED. Values: PENDING_DOCUMENTS, UNDER_REVIEW, PENDING_SETUP, ACTIVE, DEGRADED, SUSPENDED, DISCONNECTED.
bankIdstring (UUID)Only connections to this bank.
limitintegerRecords per page, 1–100. Default 25.
cursorstringpageInfo.nextCursor from the previous response.
source lunixi-sign.sh
REQ_PATH="/api/v1/bank-connect/connections?status=ACTIVE,DEGRADED"
lunixi_sign GET "$REQ_PATH"
 
curl "https://api-gateway.lunixi.com$REQ_PATH" \
  -H "X-Key-Id: $LUNIXI_KEY_ID" \
  -H "X-Date: $DATE" \
  -H "X-Nonce: $NONCE" \
  -H "X-Signature: $SIGNATURE"

$bankConnect in the PHP example: API Introduction › PHP SDK.

{
  "status": "success",
  "code": "SUCCESS",
  "data": {
    "items": [
      {
        "connectionId": "00000000-0000-0000-0000-000000000010",
        "bank": { "bankId": "00000000-0000-0000-0000-000000000001", "eftCode": "0000", "name": "ÖRNEK BANKA" },
        "status": "ACTIVE",
        "statusReasonCode": "activated",
        "createdAt": "2026-01-01T06:00:00.000Z",
        "activatedAt": "2026-01-01T07:00:00.000Z",
        "lastSuccessfulSyncAt": "2026-01-01T07:05:00.000Z",
        "accountCount": 1,
        "capabilities": ["ACCOUNT_LIST", "BALANCE", "TRANSACTIONS"]
      }
    ]
  },
  "pageInfo": { "hasMore": false, "nextCursor": null, "totalCount": null },
  "statusCode": 200,
  "requestId": "00000000-0000-0000-0000-000000000000"
}

Single connection

GET /api/v1/bank-connect/connections/{connectionId} returns a single connection. data is the connection object itself; the fields are the same as in the list. A connection that is unknown, belongs to another organization or to the other environment returns 404 bank_connect.connection.not_found.

The connection object

FieldTypeDescription
connectionIdstring (UUID)The connection's ID.
bankobjectbankId, eftCode and, when available, name.
statusstringThe connection status. → Connection statuses
statusReasonCodestringThe reason for the status; see the table below. Absent when there is no value.
createdAtstringWhen the connection (the application) was created.
activatedAtstringWhen the connection became active. Absent if it has not been active yet.
lastSuccessfulSyncAtstringTime of the last successful read from the bank for this connection. Absent if there has been no read yet.
accountCountintegerNumber of accounts found under the connection.
capabilitiesstring[]What can be done on this connection. With OUTGOING_TRANSFER you can make money transfers, with FX_EXCHANGE currency exchange. Values: Banks › capabilities.

Status reason codes

statusReasonCode is a short, stable code; choose the text you display based on this code yourself. New codes may be added; do not treat an unknown code as an error, act on the status field only.

CodeMeaning
documents_requiredApplication documents are pending.
documents_submittedYour documents are being reviewed by Lunixi.
document_rejectedA document was rejected; review the reason in the panel and deliver it again.
application_approvedYour application was approved; setup is in progress.
manual_setup_requiredSetup is being completed by Lunixi.
credential_requiredThe connection details needed for setup are pending.
action_requiredAn additional step is required to complete setup; check the connection details in the panel.
activatedThe connection is active.
setup_failedSetup could not be completed.
sync_failures_thresholdRecent reads failed in a row (the connection is DEGRADED).
sync_recoveredReads are succeeding again.
credential_invalidThe connection details are invalid and need to be updated in the panel.
disconnected_by_ownerYou disconnected this connection.
disconnected_by_operatorThe connection was disconnected by Lunixi.

Errors

HTTPcodeWhat to do
400VALIDATION_ERRORstatus or bankId is invalid, limit is outside 1–100, or you sent an undeclared parameter.
400bank_connect.cursor.invalidSend the cursor unchanged or start from the first page.
404bank_connect.connection.not_foundCheck the ID and your key's environment.