Ingest transactions (deprecated)

POST https://api.invunion.com/api/v1/ingest/transactions ingest:write Idempotency-Key Markdown

Deprecated. Push up to 1000 bank transactions synchronously. Use Create import job instead.

This call still works but is deprecated: every response carries Deprecation: true and Link: </api/v1/import-jobs>; rel="successor-version". New integrations should use Create import job with entity: "transaction", which takes the same rows, accepts up to 10,000 per call, and reports per-row results.

Synchronously inserts up to 1000 transactions. The tenant is taken from the API key. Duplicate sourceType+sourceId rows are skipped. Matching jobs are published for non-ignored inserts. This call does not create an import job. Requires a tenant API key with ingest:write. Limited to 10 requests per minute per key.

Body parameters

NameTypeRequired
transactions

Rows to ingest. Minimum 1, maximum 1000. Extra top-level fields are rejected.

array
Required
sourceId

Your unique id for this movement. Together with sourceType this is the idempotency key.

Example: bank:2026-09-12:TX-8891

string

Max 255

Required
amount

Positive amount in major currency units, unless the tenant stores minor units.

Example: 1000

number
Required
direction

Payment direction. debit/credit and inbound/outbound are accepted aliases of in/out.

string

No maximum

Required
Allowed valuesinoutdebitcreditinboundoutbound
transactionDate

Transaction date (YYYY-MM-DD or ISO timestamp).

Example: 2026-09-12

string

No maximum

Required
sourceType

Origin of the record. Default api.

string

No maximum

Optional
Allowed valuesapicsvenable_bankingcamt_052camt_053camt_054mt940
currency

ISO 4217 currency. Default EUR.

Example: EUR

string

Max 3

Recommended
bookingDate

Booking date.

Example: 2026-09-12

string

No maximum

Optional
valueDate

Value date.

Example: 2026-09-12

string

No maximum

Optional
descriptionOriginal

Bank wording.

Example: VIREMENT LEONES CARS

string

Max 1000

Optional
descriptionDisplay

Display wording.

Example: Leones Cars — wire payment

string

Max 1000

Optional
externalReference

End-to-end or invoice reference.

Example: INV-2026-0042

string

Max 255

Optional
remittanceInfo

Unstructured remittance information.

Example: INV-2026-0042 Leones Cars

string

Max 500

Optional
structuredReference

Structured creditor reference.

Example: RF18539007547034

string

Max 255

Optional
counterpartyName

Name as received from the bank.

Example: Leones Cars

string

Max 255

Optional
counterpartyIban

Counterparty IBAN.

Example: FR7630006000011234567890189

string

Max 50

Optional
counterpartyBic

Counterparty BIC.

Example: BNPAFRPP

string

Max 11

Optional
counterpartyIdentifier

Non-IBAN counterparty instrument key.

Example: [email protected]

string

Max 255

Optional
flowType

Economic flow type (payment, refund, fee, and similar).

Example: payment

string

No maximum

Optional
analytic1

Analytic axis 1.

Example: SALES-EU

string

Max 100

Optional
analytic2

Analytic axis 2.

Example: CHANNEL-DIRECT

string

Max 100

Optional
sourceRaw

Original bank payload as JSON. At most 32 keys, nested depth 3, 8 KB serialized, and 64-character key names. Keys __proto__, constructor, and prototype are rejected.

Example: {"bookingDate":"2026-09-12"}

object
Optional
metadata

JSON object. At most 32 keys, nested depth 3, 8 KB serialized, and 64-character key names. Keys __proto__, constructor, and prototype are rejected.

Example: {"bank_tx_id":"EB-991"}

object
Optional

Errors

This operation can return the following errors in addition to generic HTTP failures.

Error HTTP code Description
Missing Bearer token 401 The Authorization header is missing or is not a Bearer token.
Invalid or revoked API key 401 The API key is unknown, malformed, expired, or has been revoked.
API key is missing scope ingest:write 403 The key does not include ingest:write. A write scope does not imply the matching read scope.
Too many requests, please try again later 429 More than 100 requests in one minute from this API key or IP address. Wait for the Retry-After header (seconds) and retry.
Too many ingest requests, please try again later 429 POST /ingest/transactions is limited to 10 requests per minute per API key, on top of the general limit. Retry-After is in seconds.
Invalid API key 401 The Bearer token is not a tenant API key. This operation is API-key-only.
API key is not bound to a tenant 400 The key exists but has no tenant.
Validation failed 400 The body failed schema validation. details lists field and message.
Internal server error 500 Unexpected server error. The JSON body includes correlationId. Retry with backoff.
Idempotency-Key must be 8-255 characters: letters, digits, ".", "_", ":" or "-". 400 The Idempotency-Key header is present but malformed.
A request with this Idempotency-Key is still being processed. 409 The first request with this key has not finished. Retry after it completes. code is idempotency_in_progress.
This Idempotency-Key was already used with a different request body. 422 Send a new key for a different request. code is idempotency_key_reuse.