Skip to main content
POST
Set instant to true for a SEPA Instant payment. Omit it or set it to false for a SEPA Credit Transfer.

Idempotency

Send a UUID v4 in the Idempotency-Key header. If you need to retry the request, reuse the same key. The API returns the original payment instead of creating a duplicate.

Remittance information

Send either purpose for unstructured remittance information or structuredReference for a structured creditor reference. Do not send both fields in the same request. The API returns 400 Bad Request when both are present.

Financial category purposes

When you set categoryPurposeCode to FCIN, FCOL, or INTE:
  • Set structuredReference.reference.
  • Set debtor.organisationIdentification.bic and creditor.organisationIdentification.bic.
  • Omit purpose, ultimateDebtor, and ultimateCreditor.
The API returns 400 Bad Request when these requirements are not met.

Address formats

You can omit an address. When you provide one, include country and town, then choose one of these formats:
  • Fully structured: Set structured and omit line.
  • Hybrid: Set one line and omit structured.
EPC SR2026 requires structured or hybrid addresses from November 15, 2026. It no longer permits fully unstructured addresses, so PGW rejects an address without country or town and rejects requests containing both line and structured.

Fully structured address

Hybrid address

The API accepts one hybrid line of up to 140 characters and preserves it as one line in the payment resource. In the outgoing clearing message, PGW splits it into at most two lines of 70 characters each.

Migrate from v0

Replace POST /gateway/createSepaPmt with POST /v3/payments/sepa and map the request as follows: Send a UUID v4 as the Idempotency-Key. The v3 endpoint returns 201 Created with the complete v3 payment representation instead of the legacy result.id and result.status response.

Response

The response body uses the same payment representation as GET /v3/payments/{id}.

Headers

Idempotency-Key
string
required

UUID v4 used to return the same transaction for an idempotent retry

Body

application/json

SEPA Credit Transfer or SEPA Instant payment creation request

amount
integer | null
required

Payment amount in minor currency units

Required range: x >= 0
Example:

12550

creditor
object | null
required
currencyCode
string | null
required

Payment currency. SEPA payments support EUR only

Pattern: EUR
Example:

"EUR"

debtor
object | null
required
categoryPurposeCode
enum<string> | null

ISO 20022 category purpose code. FCIN, FCOL, and INTE require structuredReference.reference and organisation BICs for both debtor and creditor. For these codes, omit purpose, ultimateDebtor, and ultimateCreditor.

Available options:
BONU,
CASH,
CBLK,
CCRD,
CORT,
DCRD,
DIVI,
DVPM,
EPAY,
FCIN,
FCOL,
GOVT,
HEDG,
ICCP,
IDCP,
INTC,
INTE,
LOAN,
MP2B,
MP2P,
OTHR,
PENS,
RPRE,
RRCT,
RVPM,
SALA,
SECU,
SSBE,
SUPP,
TAXS,
TRAD,
TREA,
VATX,
WHLD
categoryPurposeProprietary
string | null

Proprietary category purpose

Required string length: 1 - 35
Pattern: (\s*[^\s]\s*)+
endToEndId
string | null

End-to-end identifier; defaults to NOTPROVIDED

Required string length: 1 - 35
instant
boolean
default:false

Creates a SEPA Instant payment when true; otherwise creates a SEPA Credit Transfer

metadata
string[]
Maximum array length: 10
Maximum string length: 140
purpose
string | null

Unstructured remittance information. Mutually exclusive with structuredReference

Required string length: 1 - 140
purposeCode
enum<string> | null

ISO 20022 purpose code

Available options:
ADVA,
TAXS,
CSDB,
GDSV,
GSCB,
COMP,
FEES,
ICCP,
IDCP,
REFU,
RRCT,
RRTP,
GVEA,
GVEB,
GVEC,
GVED
settlementDate
string<date> | null

Requested settlement date. For Instant it must be omitted or today

structuredReference
object | null

Structured remittance reference. Mutually exclusive with purpose

ultimateCreditor
object | null
ultimateDebtor
object | null

Response

Payment created

createdAt
string<date-time>
required

Time and date when the payment was created (UTC)

Example:

"2025-11-21T12:46:54.321667Z"

creditor
object
required

Creditor (recipient) party information

debtor
object
required

Debtor (sender) party information

direction
enum<string>
required

Payment direction

Available options:
OUTBOUND,
INBOUND
Example:

"OUTBOUND"

endToEndId
string
required

End-to-end identifier assigned by the originator

id
integer<int64>
required

Unique payment identifier

Example:

10300007

instructedAmount
integer
required

Instructed payment amount in minor currency units (cents)

Example:

100

instructedCurrency
string
required

Instructed payment currency ISO code

Example:

"EUR"

metadata
string[]
required

Client-defined metadata values assigned when the payment was created

scheme
enum<string>
required

Payment scheme. SEPA_CT — SEPA Credit Transfer, SEPA_INST — SEPA Instant Credit Transfer, SEPA_DD — SEPA Direct Debit, SWIFT — SWIFT cross-border payment.

Available options:
SEPA_CT,
SEPA_INST,
SEPA_DD,
SWIFT,
T2
Example:

"SEPA_CT"

settlementAmount
integer
required

Settlement amount in minor currency units (cents)

Example:

100

settlementCurrency
string
required

Settlement currency ISO code

Example:

"EUR"

status
enum<string>
required

Current payment status

Available options:
CREATED,
TO_SIGN,
SIGNED,
SENT_TO_CLEAR,
COMPLETED,
CANCELLED,
REJECTED,
ACCEPTED,
SOME_PROBLEMS,
PENDING_CONFIRMATION
Example:

"COMPLETED"

type
enum<string>
required

Payment type

Available options:
PAYMENT,
PAYMENT_CANCELLATION,
PAYMENT_RETURN,
REVERSE_PAYMENT,
CSM_FEES,
ADJUSTMENT
Example:

"PAYMENT"

categoryPurposeCode
enum<string> | null

Category purpose code (e.g. SALA, TAXS, GOVT)

Available options:
BONU,
CASH,
CBLK,
CCRD,
CORT,
DCRD,
DIVI,
DVPM,
EPAY,
FCIN,
FCOL,
GOVT,
HEDG,
ICCP,
IDCP,
INTC,
INTE,
LOAN,
MP2B,
MP2P,
OTHR,
PENS,
RPRE,
RRCT,
RVPM,
SALA,
SECU,
SSBE,
SUPP,
TAXS,
TRAD,
TREA,
VATX,
WHLD
categoryPurposeProprietary
string | null

Proprietary category purpose

chargesAndAdjustments
object | null

Return-only charges and adjustments. Populated only for payment_return / payment_cancellation transactions; absent otherwise.

creditTransferType
enum<string> | null

Credit transfer type for T2 payments

Available options:
CUSTOMER,
FINANCIAL_INSTITUTION
directDebit
object | null

SEPA direct debit fields, present only for SDD payments

instructionId
string | null

Instruction identifier

messageId
string | null

Message identifier

originBic
string | null

Return / rejection originator BIC

originName
string | null

Return / rejection originator name

originReasonCode
string | null

Return / rejection reason code

Example:

"AC04"

originReasonInfo
string | null

Return / rejection reason information

parentPaymentId
integer<int64> | null

Parent payment identifier, present for returns / reversals / cancellations

parentTransactionAmount
integer | null

Original (parent) transaction amount in minor currency units (cents)

purpose
string | null

Unstructured remittance information (free text)

Example:

"Invoice #12345"

purposeCode
string | null

ISO 20022 purpose code or proprietary purpose value (e.g. SUPP, SALA, TAXS)

settlementDate
string<date> | null

Settlement date

statusReason
object | null

Reason for the current status

structuredReference
object | null

Structured remittance reference

swift
object | null

SWIFT-specific fields, present only for SWIFT payments

t2
object | null

T2-specific fields, present only for T2 payments

ultimateCreditor
object | null

Ultimate creditor party information

ultimateDebtor
object | null

Ultimate debtor party information

updatedAt
string<date-time> | null

Time and date when the payment was last updated (UTC)

Example:

"2025-11-21T12:46:54.612954Z"

Last modified on August 26, 2026