Skip to main content

Manage Customer Accounts

To process payments through Inventi, accounts need to be registered in the platform. You have two options:

Use Existing IBANs

Forward your existing customer IBANs to the platform for payment processing

Generate New IBANs

Create new accounts with Inventi-generated IBANs connected to CENTROlink and EKS
In this section, you’ll learn how to:
  • Register accounts (existing or new) in the platform
  • Support both private individuals and business entities
  • Manage account lifecycle (open, close, update)

Account Types

Private Accounts

Individual customer accounts with personal holder identity

Legal Accounts

Business accounts requiring organization identification

API Reference

Business Requirements

Every POST /accounts request must include an Idempotency-Key header to prevent duplicate accounts during retries.Implementation:
  • Generate a UUID per account creation intent
  • Persist the key until creation is confirmed
  • Retry with the same key if timeout occurs
Without idempotency, network retries can create duplicate accounts.
Your clientAccountId links platform accounts to your internal records and must be unique across your system.Store this mapping:
clientAccountId ⇄ accountId (platform) ⇄ iban
Enforce a uniqueness constraint in your database before calling the API.
TypeRequired Fields
PRIVATEPersonal holder identity fields
LEGALorganisationIdentification object
Account type cannot be changed after creation.
Never change account status through the update endpoint.
OperationEndpoint
Update dataPATCH /accounts/{id}
Change statusPOST /accounts/{id}/status
Using the wrong endpoint may result in validation errors.
The accounts endpoint uses cursor-based pagination for consistent results.Rules:
  • limit: 1-100 (default 20)
  • Use meta.nextPageToken to page forward
  • Use meta.previousPageToken to page backward
  • Treat tokens as opaque (do not parse)
For sync jobs, loop with nextPageToken until empty and store the last token for checkpointing.
Log these events for compliance:
  • Account registration (clientAccountId, platform ID, IBAN)
  • Status changes (who, when, old → new)
  • Update operations (before → after values)
  • API failures and response codes

Account Lifecycle

Register an Account

Use this endpoint to register a new account in the platform. If you provide bank details (countryCode, bankCode, accountCode), Inventi generates a new IBAN. Alternatively, you can register existing IBANs by providing them directly.
If you already have IBANs issued by your institution, you can register them in Inventi without generating new ones.
curl -X POST https://api.pgw-sandbox.finventi.com/account-service/v2/accounts \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: {uuid}" \
  -d '{
    "accountType": "PRIVATE",
    "accountHolderName": "Jane Doe",
    "clientAccountId": "cust_001",
    "countryCode": "LT",
    "bankCode": "70440",
    "accountCode": "1869"
  }'

Request Fields

accountType
string
required
PRIVATE or LEGAL
accountHolderName
string
required
Full name of account holder
clientAccountId
string
required
Your unique identifier for this account
countryCode
string
required
ISO country code (e.g., LT)
bankCode
string
required
Bank identifier code
accountCode
string
required
Account number suffix

Response Codes

CodeDescription
201Account created successfully
400Invalid request (validation error)
409Duplicate clientAccountId
500Internal server error

Account Operations

Retrieve account details by platform ID.
curl -X GET https://api.pgw-sandbox.finventi.com/account-service/v2/accounts/{id} \
  -H "Authorization: Bearer {token}"
CodeDescription
200Account found
404Account not found

Search Accounts

Use cursor-based pagination to search and list accounts.
curl -X GET "https://api.pgw-sandbox.finventi.com/account-service/v2/accounts?limit=20&status=OPEN" \
  -H "Authorization: Bearer {token}"

Filter Parameters

ParameterTypeDescription
ibanstringExact IBAN match
clientAccountIdstringExact match
accountHolderNamestringPartial match
statusstringOPEN or CLOSED
limitintegerResults per page (1-100)

Pagination Flow

UI pattern: Use nextPageToken for “Load more” buttons.Sync pattern: Loop until nextPageToken is null, store last successful token for resume.

Data Model

Store these fields for each account:
id
string
required
Platform account ID (primary key)
clientAccountId
string
required
Your internal reference (unique)
iban
string
required
Generated IBAN for the account
status
string
required
OPEN or CLOSED
accountType
string
required
PRIVATE or LEGAL
accountHolderName
string
required
Account holder’s name
audit_log
array
required
Status changes and updates with timestamps

Integration Checklist

1

Implement idempotent creation

Generate and persist Idempotency-Key for each account creation intent
2

Enforce unique clientAccountId

Add database constraint before calling the API
3

Store account mappings

Persist clientAccountIdidiban relationships
4

Separate data and status updates

Use PATCH for data, /status endpoint for open/close
5

Implement cursor pagination

Handle nextPageToken and previousPageToken for account listing
6

Add audit logging

Log all create, update, and status change operations

What’s Next?

With accounts created, your customers are ready to send and receive payments: