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
Create a Payment
Request Fields
string
required
Debtor IBAN (sender account)
string
required
Debtor name
integer
required
Amount in cents
string
required
Currency code (EUR)
string
required
Creditor IBAN (recipient account)
string
required
Creditor name
integer
required
Amount in cents
string
required
Currency code (EUR)
boolean
true for SEPA Instant, false for SCTstring
Payment 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:string
required
Transaction identifier
string
End-to-end reference
string
required
OUTBOUND for sent paymentsstring
required
Current transaction status
integer
required
Amount in cents
string
required
Currency code
datetime
required
Status change timestamp
Signature Verification
Verify webhook authenticity using these headers:
See Signature Verification for implementation details.
Reconciliation
Use API polling as a fallback when webhooks may have gaps.Get Transaction
Retrieve current transaction details
Status History
View complete status timeline
Data Model
Store these fields for complete tracking:string
required
Platform transaction ID (primary key)
string
Customer reference for reconciliation
string
required
Your generated key for retry safety
string
required
Latest transaction status
array
required
Append-only list of status transitions
Integration Checklist
1
Implement idempotency
Generate and persist an
Idempotency-Key for each payment intent before calling the API2
Store transaction ID
Persist
trx_id from the response immediately after creation3
Implement webhook receiver
Create an idempotent endpoint that responds
2xx quickly and processes asynchronously4
Verify webhook signatures
Validate authenticity using the provided signature headers
5
Handle signing flow
If approval is required, implement signing/approval actions for
To sign transactions6
Build reconciliation
Implement status polling as a fallback for missed webhooks
What’s Next?
You can now send payments. Next, set up your system to receive payments and handle the full payment lifecycle:Receive Payments
Handle incoming SEPA payments via webhooks
Track and Reconcile
Monitor transactions and reconcile with Nostro statements
Cancel Payments
Request cancellation when needed
SWIFT Payments
Send international transfers outside SEPA