Bank Accounts
Bank accounts connect statements, payments, and reconciliation. Use these queries and mutations to provision cash/bank ledgers, update metadata, and remove unused accounts. Pair this with Bank Ingest when you import transactions.
Prerequisites
- A Naqood API secret or OAuth-issued secret scoped to the organization
- The organization
slugon every request - A role that can manage bank accounts
BankAccount fields
| Field | Type | Notes |
|---|---|---|
id | ID! | Stable identifier |
name | String! | Display label (for example “Main AED Account”) |
bankName | String | Optional bank name |
iban / bic | String | Optional identifiers |
branch | String | Optional branch info |
address / city / postalCode | String | Optional location details |
country | String | ISO country name |
currency | String! | ISO‑4217 code (for example AED, USD) |
account | Account | Linked ledger account (when applicable) |
externalId | String | Upstream reference (for example a bank feed identifier) |
externalBalanceSnapshot | BankAccountBalanceSnapshot | Optional latest observed balance. Pass date for a historical day |
createdAt / updatedAt | Timestamp! | Audit timestamps |
BankAccountBalanceSnapshot fields:
| Field | Type | Notes |
|---|---|---|
bankAccountId | ID! | Bank account the snapshot belongs to |
balance | String! | Observed statement balance |
balanceDate | Date! | Statement date of that balance |
requestedDate | Date! | Date you asked for (balanceDate when omitted) |
isVirtual | Boolean! | true when the result is carried forward from an earlier snapshot |
source | String! | Where the snapshot came from |
List bank accounts
Fetch all bank and cash accounts for an organization.
query BankAccounts($slug: Slug!) {
organization(slug: $slug) {
bankAccounts {
id
name
bankName
currency
iban
bic
externalId
externalBalanceSnapshot {
balance
balanceDate
isVirtual
source
}
}
}
}
Create a bank account
mutation CreateBankAccount($input: CreateBankAccountInput!) {
createBankAccount(input: $input)
}
CreateBankAccountInput highlights:
| Field | Required | Notes |
|---|---|---|
slug | ✅ | Organization issuing the account |
name | ✅ | Display label |
currency | ✅ | ISO‑4217 code |
bankName | Optional | Bank label shown in UI |
iban / bic | Optional | Banking identifiers |
externalId | Optional | Use to align with external systems |
Update a bank account
mutation UpdateBankAccount($input: UpdateBankAccountInput!) {
updateBankAccount(input: $input) {
id
name
bankName
iban
bic
externalId
}
}
Provide the id plus any fields you want to change (name, identifiers, externalId, and so on). Statement balances are not part of this mutation.
To record an observed statement balance, use updateBankAccountBalanceSnapshot:
mutation UpdateBankAccountBalanceSnapshot(
$input: UpdateBankAccountBalanceSnapshotInput!
) {
updateBankAccountBalanceSnapshot(input: $input) {
bankAccountId
balance
balanceDate
source
}
}
UpdateBankAccountBalanceSnapshotInput fields: bankAccountId, balance, and balanceDate (Date, for example "2025-11-05"). You can also send snapshots with transactions on Bank Ingest.