Initiate a SEPA Instant Payment
This guide walks you through the end-to-end process of creating and, if required, approving a SEPA Instant (SCT Inst) payment in ImPAI.
It combines two core APIs:
- Payment Initiation β create the payment instruction
π Payment Initiation API - Payment Approval β approve or reject the instruction under the Four-Eyes Principle
π Payment Approval API
Prerequisitesβ
Before you start:
- β You have valid OAuth access tokens and the required roles/permissions.
- β You can construct a single-payment ISO20022 pain.001 document.
- β You know whether the Four-Eyes Principle is enabled for your client or channel.
- β You have a strategy for generating unique externalId values for reconciliation.
Step 1οΈβ£ β Initiate a Payment Instructionβ
To start the SCT Inst payment flow, you first submit a payment initiation request using the Payment Instruction API:
POST /api/sct-inst/v1/instruction/create
This call creates a new SEPA Instant payment based on an ISO20022 pain.001 message and prepares it for downstream validation, approval, and clearing.
What the call requires (conceptually)β
A payment initiation request consists of two main parts:
- Identifiers
Business-level references coming from your upstream system (such asexternalId). These let you correlate status messages, track execution, and align responses with internal processes. - Document (ISO20022 pain.001)
The actual business content of the payment. This includes: - debtor and creditor information
- amount and currency
- payment type and execution details
- group header and payment info sections
Only one credit transfer instruction may be included per request.
You can send this call from your application, an operator UI, or automated STP workflows.
Typical initiation workflowβ
- Generate a new
externalIdfor this payment. - Build the
Documentsection (ISO20022 pain.001), including debtor, creditor, amount, and references. - Submit the payment instruction using the /instruction/create endpoint with headers such as
AuthorizationandX-Request-Id. - ImPAI validates the structure and business rules (scheme rules, mandatory fields, amounts, IBAN formats, etc.).
- If validation succeeds, ImPAI creates an internal transaction record and begins the payment lifecycle.
What you get backβ
If the instruction is accepted:
- You receive the original request id, allowing to match the response against your request.
- The response includes a pain.002 status report, giving you a confirmation that the instruction is now registered in the system and ready for further processing.
- This status report contains the unique payment identifier (like Global ID), which becomes the anchor for all subsequent steps such as approval, tracking, R-transactions, and inquiries.
- The payment moves automatically to:
- Approval Pending, if the Four-Eyes Principle is enabled
- Processing, if approval is not required
For the full request schema, field-level definitions, and detailed response examples, see:
π Payment Initiation API
Step 2οΈβ£ β Check for Approval Requiredβ
Based on bank or client configuration, the created payment may:
- Skip manual approval and continue straight to execution (for low-risk / low-value flows), or
- Enter Approval Pending state, requiring a second user to approve or reject.
You can determine this by:
- Inspecting the returned pain.002 status.
- Using the UI Transactions / Approvals screens, where applicable.
If the transaction is Approval Pending, continue with Step 3.
If no approval is needed, the workflow continues automatically and you may continue with Step 4.
Step 3οΈβ£ β Approve an Instructionβ
Some SEPA Instant payments require manual approval before they can be executed. This happens whenever the transaction moves into an βApproval Pendingβ state β typically due to internal risk controls, amount thresholds, or makerβchecker policies.
To perform this decision, call the Payment Approval API:
POST /api/sct-inst/v1/instruction/approval
If you need the exact request schema or response formats, see the detailed API descriptions:
π Transaction Approval API
What the call requires (conceptually)β
At a high level, the approval request includes:
- Identifier
As a reference to the message to be approved theinternalIdthat points to the created instruction - The decision you want to apply:
- approve β release the payment for further processing and execution
- reject β stop processing and mark the transaction as rejected
- An optional rejection reason, which becomes important for audit and compliance when you reject a payment
You can send this call either from:
- a back-end integration, or
- an operator UI acting on behalf of an authorized user.
Typical approval workflowβ
- An approver selects a payment in Approval Pending state (e.g., via UI or a list API).
- The client system sends POST /instruction/approval with the chosen decision (approve or reject).
- ImPAI validates the request (permissions, current state, consistency).
What you get backβ
If the request is successfully processed:
- The paymentβs state is updated to approved (and continues into execution/clearing) or rejected (and is closed).
- The response confirms the decision and returns updated identifiers and/or status information that you can use for subsequent tracking.
- The decision, including any rejection reason, is stored for audit and compliance.
Step 4οΈβ£ β Track the Payment Lifecycleβ
After approval or rejection:
- Use your UI to confirm the final outcome.
- Typical status transitions include:
- Approved β processing / settlement started
- Rejected β transaction closed with reason
- For interbank status (e.g. settlement outcome), monitor subsequent pain.002 / pacs.002 messages.
- Initiate recalls or returns if needed.
Example Flow at a Glanceβ
Summaryβ
- Use Payment Initiation to create a new SEPA Instant instruction.
- If your configuration enforces the Four-Eyes Principle, the payment will enter an Approval Pending state.
- Use Payment Approval to approve or reject the instruction with full audit traceability.
- Use your UI screens to monitor the final outcome.
APIs Used in this Flow
| Step | API | Purpose | Details |
|---|---|---|---|
| Initiation | POST /instruction/create | Create payment instruction | π Go |
| Approval (optional) | POST /instruction/approve | Release payment | π Go |