Skip to main content

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:


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 as externalId). 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​

  1. Generate a new externalId for this payment.
  2. Build the Document section (ISO20022 pain.001), including debtor, creditor, amount, and references.
  3. Submit the payment instruction using the /instruction/create endpoint with headers such as Authorization and X-Request-Id.
  4. ImPAI validates the structure and business rules (scheme rules, mandatory fields, amounts, IBAN formats, etc.).
  5. 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

Full Details

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
Full Details

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 the internalId that 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​

  1. An approver selects a payment in Approval Pending state (e.g., via UI or a list API).
  2. The client system sends POST /instruction/approval with the chosen decision (approve or reject).
  3. 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

StepAPIPurposeDetails
InitiationPOST /instruction/createCreate payment instructionπŸ‘‰ Go
Approval (optional)POST /instruction/approveRelease paymentπŸ‘‰ Go