Send Your First Payment
Inventi routes your SEPA payments through CSM, giving you direct access to European clearing networks.What happens when you send a payment:
- You submit the payment via API
- Inventi validates and forwards to CSM
- The clearing system routes to the beneficiary bank
- You receive status updates via webhooks
Supported Payment Types
SEPA Credit Transfer
Standard transfers with next business day settlement
SEPA Instant
Real-time payments settled in under 10 seconds
API Reference
Create SEPA Payment
Initiate SCT or Instant payment
Sign Transactions
Approve payments requiring signature
Approve Transaction
Single transaction approval
Decline Transaction
Reject a pending transaction
Transaction Status Webhook
Track payment lifecycle
Get Transaction
Retrieve payment details
Business Requirements
Use idempotency for payment creation
Use idempotency for payment creation
Always send an
Idempotency-Key header when creating payments. If your request times out, retry with the same key to prevent duplicate payments.Treat trx_id as the primary key
Treat trx_id as the primary key
The create response returns
result.id (transaction ID). Persist it immediately and use it for all subsequent operations.Store both
trx_id and end_to_end_id for complete tracking and reconciliation.Webhooks are the source of truth
Webhooks are the source of truth
Use the Payment Status Change webhook to update transaction state in real-time. Implement API polling only as a fallback for reconciliation.
TO_SIGN requires approval
TO_SIGN requires approval
Depending on your tenant configuration, transactions may require approval before processing. When status is
To sign, use one of these methods:- Single approval:
PATCH /v1/transactions/{id}:approve - Bulk signing:
POST /v1/transactions/signatures
Transaction Lifecycle
Transaction Statuses
- SEPA Credit Transfer
- SEPA Instant
- Error States
| Status | Description | Timing |
|---|---|---|
Created | Payment initiated | Immediate |
To sign | Awaiting approval (if configured) | Until signed |
Signed | Approved, queued for clearing | Until cut-off |
Sent to clear | Delivered to CSM for processing | After cut-off |
Accepted | Accepted by CSM | Next business day |
Completed | Settled at beneficiary bank | D+1 |
Create a Payment
Request Fields
Debtor IBAN (sender account)
Debtor name
Amount in cents
Currency code (EUR)
Creditor IBAN (recipient account)
Creditor name
Amount in cents
Currency code (EUR)
true for SEPA Instant, false for SCTPayment reference / remittance info
Payment Flows
- Without Signing
- With Signing
- Decline Flow
Standard flow when approval is not required.
Sign Transactions
Webhook Integration
Payment Status Change
Each status transition triggers a webhook notification with these fields:Transaction identifier
End-to-end reference
OUTBOUND for sent paymentsCurrent transaction status
Amount in cents
Currency code
Status change timestamp
Signature Verification
Verify webhook authenticity using these headers:| Header | Purpose |
|---|---|
finventi-signature-1 | RSASSA-PKCS1-v1_5 signature |
finventi-signature-timestamp | Request timestamp |
finventi-receiver-tenant-id | Your tenant ID |
Reconciliation
Use API polling as a fallback when webhooks may have gaps.Data Model
Store these fields for complete tracking:Platform transaction ID (primary key)
Customer reference for reconciliation
Your generated key for retry safety
Latest transaction status
Append-only list of status transitions
Integration Checklist
Implement idempotency
Generate and persist an
Idempotency-Key for each payment intent before calling the APIImplement webhook receiver
Create an idempotent endpoint that responds
2xx quickly and processes asynchronouslyHandle signing flow
If approval is required, implement signing/approval actions for
To sign transactions