Ingest a batch of raw transactions into an external connection for HSA-eligibility enrichment. Idempotent on external_transaction_id within the connection: re-pushed ids update the stored transaction and re-adjudicate. Returns 202. Enrichment results arrive via transactions.ingested webhooks and are read from /users/{user_id}/expenses. Requires the ingest key scope, a write scope with no product counterpart, so read-only keys can never push data. Calling this on a Sail-managed connection returns 409 connection_not_external.
Path Parameters
user_idstringrequired
The Sail user id.
connection_idstringrequired
The Sail connection id.
Body application/json
transactionsobject[]required
Batch of transactions to ingest, up to 500 per request.
Show transactions properties
external_transaction_idstringrequired
Customer’s stable id for this transaction. Idempotency key within the connection.
datestring<date>required
Transaction date.
amountnumber<float>required
Positive decimal; purchases only.
descriptionstringrequired
Raw bank descriptor.
merchant_namestring
Merchant name, if known. Null otherwise.
mccstring
Merchant category code, if known.
currencystring
ISO 4217 currency code.
Response
Batch accepted for enrichment.
statusstring
The batch’s processing status.
job_idstring
Identifier for tracking this ingestion job.
acceptedinteger
New transactions queued for enrichment.
duplicates_updatedinteger
Rows whose external_transaction_id already existed; updated and re-adjudicated.
connection_not_external: transactions can only be pushed to external connections.
Standard error envelope covering 400, 401, 403, 404, 429, and 500.