OP PSD2 Payment Initiation Service API (v1.1)
Download OpenAPI specification:Download
NOTE: Calling PSD2 APIs with Postman is not supported at this time.
OP PSD2 Payment Initiation Service API (PIS) allows Third-Party Providers (TPP) to create and submit SEPA payments. Check our PSD2 page for more information about the APIs and the regulation.
This is version 1 of our PSD2 PIS API. We recommend using version 2, as version 1 will be deprecated in the near future.
Using this API requires authenticating the client application, and end user authentication and authorization.
See the full workflow for PSD2 PIS API >
PSD2 APIs are available in sandbox free of charge for both licensed and unlicensed developers. Full details for sandbox access.
Following the regulation, using PSD2 APIs is free of charge also in production. However, a Third-Party Provider has to apply for an AISP/PISP license from a financial authority (e.g. FIN-FSA in Finland) and obtain valid QWAC and QSEAL certificates. Full details for production access.
Only the account holder, i.e. the company, can grant TPPs the right to access the company's business accounts.
However, technically the company representative, i.e. the business user, is the actor who in practice confirms with their banking codes
the access to business accounts for the TPP.
As the business user is not the holder of the account, the user needs an additional access right from the account holder
in order to be able to confirm the requests sent by authorized TPPs.
Instructions for the additional access right registration are available at op.fi in Finnish, Swedish, and English.
After this registration, the business user is able to confirm (or reject) the requests sent by TPPs.
OP PSD2 PIS API supports the initiation of SEPA payments. Payments are considered SEPA payments when:
- the currency of the payment is Euro,
- payee’s account number is in IBAN format, and
- the payee’s account holding bank is located inside the EU/ETA area.
SEPA payment processing in OP PSD2 API:
- SEPA payment initiation starts with Create SEPA payment request.
- Payment is then submitted using Submit SEPA payment request.
- SEPA payments can be initiated as single, bundle or recurring payments.
Single, bundle and recurring SEPA payments:
- Single payment can contain only one submission in the request indicated by one (1) in the Count field. If Count field is not present, a default value of 1 will be used.
- Bundle payment contains several SEPA payment elements in the request. Payments in the bundle may be single or recurring payments.
- Recurring payment is a single payment where the value of the Count field is greater than one (1). For example, if the value in the Count field is five (5), the payment can be submitted five times to the same payee with the same amount.
- Regardless of the type of the SEPA payments (single, recurring, bundle), the Payment Services User (PSU) can confirm the payments in one go.
SEPA payment schedule:
- SEPA payments can be initiated and submitted at any point of time on any calendar day, even on non-banking days except for possible maintenance breaks in the OP PSD2 PIS API.
- After the payment has been submitted to the OP PSD2 PIS API, the payment is processed instantly and debited from the payer’s account. Payment may be rejected later when sent to the receiving bank.
- If the payee holds an account in OP, the payment will be credited to the payee’s account almost immediately.
- Payment status can be requested at any point of time on any calendar day.
PISP can revoke the payment in two ways:
- By "Delete SEPA payment before it’s submitted" for single payment transaction (including also recurring payment).
- By "Revoke authorization (bundle)" for payment bundle.
SEPA payment with future due date:
- OP PSD2 PIS API does not schedule SEPA payments to wait for the execution on a desired future due date. That is the responsibility of the PISP. Any payment submitted to OP PSD2 PIS API will be processed and debited immediately.
- If the PSU wants to initiate a payment with future due date, the PSU can confirm the payment or payments at one go on a certain day, but it is on the responsibility of the PISP to submit the payment(s) on due date as per instructed by the PSU.
- This applies also to recurring payments as they are certain kind of due date payments which are paid on steady intervals.
- Please make sure that the access and refresh tokens are still valid at the time of the submission of the payments on due date, especially when the due date is far in the future. If need be, use the refresh token to get new access_token.
Create SEPA payment
header Parameters
Authorization required | string An Authorisation Token as per https://tools.ietf.org/html/rfc6750. Represents the Client Application, obtained via Client Credentials Grant. |
x-idempotency-key required | string <= 40 characters ^(?!\s)(.*)(\S)$ Every payment will be created only once per x-idempotency-key. |
x-api-key | string API Key |
x-jws-signature | string A detached JWS signature of the body of the payload. This is required for exemption flow and will be always checked when given. Signature is created using your QSealC. |
x-fapi-customer-last-logged-time | string^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Fe... The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string Indicates the user-agent that the PSU is using. |
Request Body schema: application/json; charset=utf-8
required | FinnishReference (string) or CrossBorderReference (string) |
required | MonetaryEuroAmount (string) Amount of the payment, value 0,01 - 999 999 999,99 eur |
required | object (SepaPayee) Payee details. For non-domestic payments (i.e. IBAN not starting with |
authorizationId | string Authorization bundle id. Used to bundle several payments to one authorization. Foreign payments can't be bundled with SEPA payments. |
count | number <int32> >= 1 Defines the recurrence of the payment. Default value is 1, i.e. single payment. If the value is higher than 1, then the payment is considered as recurring payment to the same payee with the same amount. Payment can be repeatedly submitted according to the number in count element. |
object Payer element is used to define the debit account. If the debit account is not given in the request, then the PSU must choose the debit account from an account list presented by the ASPSP on the authentication and authorization. PSU can select the debit account during the authorization flow only when it is not given by the TPP. | |
message | string <= 140 characters Message for the payee and payer's account statement |
ultimatePayee | string <= 70 characters Name of the ultimate payee aka ultimate creditor |
originalPayer | string <= 70 characters Name of the original payer aka ultimate debtor |
Responses
Request samples
- Payload
- CURL
{- "authorizationId": "string",
- "amountEUR": "string",
- "count": 1,
- "payee": {
- "iban": "FI4950009420028730",
- "name": "string",
- "address": [
- "string"
], - "country": "st"
}, - "payer": {
- "iban": "FI4950009420028730"
}, - "message": "string",
- "reference": "string",
- "ultimatePayee": "string",
- "originalPayer": "string"
}
Response samples
- 201
- default
{- "authorizationId": "string",
- "amountEUR": "string",
- "count": 1,
- "payee": {
- "iban": "FI4950009420028730",
- "name": "string",
- "address": [
- "string"
], - "country": "st"
}, - "payer": {
- "iban": "FI4950009420028730",
- "name": "string"
}, - "message": "string",
- "reference": "string",
- "ultimatePayee": "string",
- "originalPayer": "string",
- "paymentId": "string",
- "paymentType": "SepaPayment",
- "detailsOfCharges": "SHA",
- "paymentOrder": "SEPA",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "submissions": [
- {
- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
]
}
Get SEPA payment details
path Parameters
paymentId required | string Payment ID |
header Parameters
x-api-key | string API Key |
Authorization | string An Authorisation Token as per https://tools.ietf.org/html/rfc6750 |
x-fapi-customer-last-logged-time | string^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Fe... The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string Indicates the user-agent that the PSU is using. |
Responses
Request samples
- CURL
curl -X GET https://psd2.mtls.sandbox.apis.op.fi/payments-psd2/v1/sepa-payments/{paymentId} \ -H 'x-api-key: string' \ -H 'Authorization: string' \ -H 'x-fapi-customer-last-logged-time: string' \ -H 'x-fapi-customer-ip-address: string' \ -H 'x-fapi-interaction-id: string' \ -H 'x-customer-user-agent: string' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json'
Response samples
- 200
- default
{- "authorizationId": "string",
- "amountEUR": "string",
- "count": 1,
- "payee": {
- "iban": "FI4950009420028730",
- "name": "string",
- "address": [
- "string"
], - "country": "st"
}, - "payer": {
- "iban": "FI4950009420028730",
- "name": "string"
}, - "message": "string",
- "reference": "string",
- "ultimatePayee": "string",
- "originalPayer": "string",
- "paymentId": "string",
- "paymentType": "SepaPayment",
- "detailsOfCharges": "SHA",
- "paymentOrder": "SEPA",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "submissions": [
- {
- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
]
}
Delete SEPA payment before it's submitted
path Parameters
paymentId required | string Payment ID |
header Parameters
x-api-key | string API Key |
Authorization | string An Authorisation Token as per https://tools.ietf.org/html/rfc6750 |
x-fapi-customer-last-logged-time | string^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Fe... The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string Indicates the user-agent that the PSU is using. |
Responses
Request samples
- CURL
curl -X DELETE https://psd2.mtls.sandbox.apis.op.fi/payments-psd2/v1/sepa-payments/{paymentId} \ -H 'x-api-key: string' \ -H 'Authorization: string' \ -H 'x-fapi-customer-last-logged-time: string' \ -H 'x-fapi-customer-ip-address: string' \ -H 'x-fapi-interaction-id: string' \ -H 'x-customer-user-agent: string' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json'
Response samples
- 200
- default
{- "authorizationId": "string",
- "amountEUR": "string",
- "count": 1,
- "payee": {
- "iban": "FI4950009420028730",
- "name": "string",
- "address": [
- "string"
], - "country": "st"
}, - "payer": {
- "iban": "FI4950009420028730",
- "name": "string"
}, - "message": "string",
- "reference": "string",
- "ultimatePayee": "string",
- "originalPayer": "string",
- "paymentId": "string",
- "paymentType": "SepaPayment",
- "detailsOfCharges": "SHA",
- "paymentOrder": "SEPA",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "submissions": [
- {
- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
]
}
List SEPA payment submissions
path Parameters
paymentId required | string Payment ID |
header Parameters
x-api-key | string API Key |
Authorization | string An Authorisation Token as per https://tools.ietf.org/html/rfc6750 |
x-fapi-customer-last-logged-time | string^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Fe... The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string Indicates the user-agent that the PSU is using. |
Responses
Request samples
- CURL
curl -X GET https://psd2.mtls.sandbox.apis.op.fi/payments-psd2/v1/sepa-payments/{paymentId}/submissions \ -H 'x-api-key: string' \ -H 'Authorization: string' \ -H 'x-fapi-customer-last-logged-time: string' \ -H 'x-fapi-customer-ip-address: string' \ -H 'x-fapi-interaction-id: string' \ -H 'x-customer-user-agent: string' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json'
Response samples
- 200
{- "submissions": [
- {
- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
]
}
Submit SEPA payment
path Parameters
submissionId required | string^[a-zA-Z0-9.,_\-]{1,40}$ Submission ID generated by TPP. Must be unique per payment. |
paymentId required | string Payment ID |
header Parameters
x-api-key | string API Key |
Authorization | string An Authorisation Token as per https://tools.ietf.org/html/rfc6750 |
x-fapi-customer-last-logged-time | string^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Fe... The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string Indicates the user-agent that the PSU is using. |
x-sandbox-scenario | string Sandbox only parameter for simulating error conditions. Supported values are:
|
Request Body schema: application/json; charset=utf-8
Submission identifier: submission can be retried using same submissionId. API guarantees that submission is only processed once per submissionId. Allows retry also in case of backend failure of e.g. insufficient funds.
Responses
Request samples
- Payload
- CURL
{ }
Response samples
- 200
- default
{- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
Get SEPA submission
path Parameters
submissionId required | string^[a-zA-Z0-9.,_\-]{1,40}$ Submission ID generated by TPP. Must be unique per payment. |
paymentId required | string Payment ID |
header Parameters
x-api-key | string API Key |
Authorization | string An Authorisation Token as per https://tools.ietf.org/html/rfc6750 |
x-fapi-customer-last-logged-time | string^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Fe... The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string Indicates the user-agent that the PSU is using. |
x-sandbox-scenario | string Sandbox only parameter for simulating error conditions. Supported values are:
|
Responses
Request samples
- CURL
curl -X GET https://psd2.mtls.sandbox.apis.op.fi/payments-psd2/v1/sepa-payments/{paymentId}/submissions/{submissionId} \ -H 'x-api-key: string' \ -H 'Authorization: string' \ -H 'x-fapi-customer-last-logged-time: string' \ -H 'x-fapi-customer-ip-address: string' \ -H 'x-fapi-interaction-id: string' \ -H 'x-customer-user-agent: string' \ -H 'x-sandbox-scenario: string' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json'
Response samples
- 200
- default
{- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
Get payment authorization (bundle)
path Parameters
authorizationId required | string Authorization ID |
header Parameters
Authorization required | string An Authorisation Token as per https://tools.ietf.org/html/rfc6750. Represents the Client Application, obtained via Client Credentials Grant. |
x-api-key | string API Key |
x-fapi-customer-last-logged-time | string^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Fe... The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string Indicates the user-agent that the PSU is using. |
Responses
Request samples
- CURL
curl -X GET https://psd2.mtls.sandbox.apis.op.fi/payments-psd2/v1/authorizations/{authorizationId} \ -H 'x-api-key: string' \ -H 'Authorization: string' \ -H 'x-fapi-customer-last-logged-time: string' \ -H 'x-fapi-customer-ip-address: string' \ -H 'x-fapi-interaction-id: string' \ -H 'x-customer-user-agent: string' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json'
Response samples
- 200
- default
{- "authorizationId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "authorized": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "sepaPayments": [
- {
- "authorizationId": "string",
- "amountEUR": "string",
- "count": 1,
- "payee": {
- "iban": "FI4950009420028730",
- "name": "string",
- "address": [
- "string"
], - "country": "st"
}, - "payer": {
- "iban": "FI4950009420028730",
- "name": "string"
}, - "message": "string",
- "reference": "string",
- "ultimatePayee": "string",
- "originalPayer": "string",
- "paymentId": "string",
- "paymentType": "SepaPayment",
- "detailsOfCharges": "SHA",
- "paymentOrder": "SEPA",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "submissions": [
- {
- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
]
}
], - "foreignPayments": [
- {
- "detailsOfCharges": "SHA",
- "paymentOrder": "NORM",
- "amount": "string",
- "currency": "string",
- "payee": {
- "bankAccount": {
- "id": "string",
- "schemeName": "IBAN",
- "issuer": "string"
}, - "name": "string",
- "financialInstitution": {
- "bic": "string",
- "clearingSystemId": "string",
- "name": "string",
- "foreignBankAddress": {
- "address": "string",
- "city": "string",
- "country": "st"
}
}, - "foreignAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "country": "st"
}
}, - "payer": {
- "iban": "FI4950009420028730",
- "name": "string"
}, - "message": "string",
- "exchangeRateReference": "string",
- "authorizationId": "string",
- "paymentId": "string",
- "paymentType": "ForeignPayment",
- "count": 0,
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "submissions": [
- {
- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
]
}
]
}
Revoke authorization (bundle)
All the unsubmitted payment transactions included in the bundle will be revoked. If some of the bundle/recurring payments have already submitted, then the revocation applies only to the remaining payments.
path Parameters
authorizationId required | string Authorization ID |
header Parameters
Authorization required | string An Authorisation Token as per https://tools.ietf.org/html/rfc6750. Represents the Client Application, obtained via Client Credentials Grant. |
x-api-key | string API Key |
x-fapi-customer-last-logged-time | string^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Fe... The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string Indicates the user-agent that the PSU is using. |
Responses
Request samples
- CURL
curl -X DELETE https://psd2.mtls.sandbox.apis.op.fi/payments-psd2/v1/authorizations/{authorizationId} \ -H 'x-api-key: string' \ -H 'Authorization: string' \ -H 'x-fapi-customer-last-logged-time: string' \ -H 'x-fapi-customer-ip-address: string' \ -H 'x-fapi-interaction-id: string' \ -H 'x-customer-user-agent: string' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json'
Response samples
- 200
- default
{- "authorizationId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "authorized": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "sepaPayments": [
- {
- "authorizationId": "string",
- "amountEUR": "string",
- "count": 1,
- "payee": {
- "iban": "FI4950009420028730",
- "name": "string",
- "address": [
- "string"
], - "country": "st"
}, - "payer": {
- "iban": "FI4950009420028730",
- "name": "string"
}, - "message": "string",
- "reference": "string",
- "ultimatePayee": "string",
- "originalPayer": "string",
- "paymentId": "string",
- "paymentType": "SepaPayment",
- "detailsOfCharges": "SHA",
- "paymentOrder": "SEPA",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "submissions": [
- {
- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
]
}
], - "foreignPayments": [
- {
- "detailsOfCharges": "SHA",
- "paymentOrder": "NORM",
- "amount": "string",
- "currency": "string",
- "payee": {
- "bankAccount": {
- "id": "string",
- "schemeName": "IBAN",
- "issuer": "string"
}, - "name": "string",
- "financialInstitution": {
- "bic": "string",
- "clearingSystemId": "string",
- "name": "string",
- "foreignBankAddress": {
- "address": "string",
- "city": "string",
- "country": "st"
}
}, - "foreignAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "country": "st"
}
}, - "payer": {
- "iban": "FI4950009420028730",
- "name": "string"
}, - "message": "string",
- "exchangeRateReference": "string",
- "authorizationId": "string",
- "paymentId": "string",
- "paymentType": "ForeignPayment",
- "count": 0,
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "submissions": [
- {
- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
]
}
]
}
Find payments by authorizationId
path Parameters
authorizationId required | string Authorization ID |
header Parameters
x-api-key | string API Key |
Authorization | string An Authorisation Token as per https://tools.ietf.org/html/rfc6750 |
x-fapi-customer-last-logged-time | string^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Fe... The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string Indicates the user-agent that the PSU is using. |
Responses
Request samples
- CURL
curl -X GET https://psd2.mtls.sandbox.apis.op.fi/payments-psd2/v1/authorizations/{authorizationId}/payments \ -H 'x-api-key: string' \ -H 'Authorization: string' \ -H 'x-fapi-customer-last-logged-time: string' \ -H 'x-fapi-customer-ip-address: string' \ -H 'x-fapi-interaction-id: string' \ -H 'x-customer-user-agent: string' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json'
Response samples
- 200
- default
{- "payments": [
- {
- "authorizationId": "string",
- "amountEUR": "string",
- "count": 1,
- "payee": {
- "iban": "FI4950009420028730",
- "name": "string",
- "address": [
- "string"
], - "country": "st"
}, - "payer": {
- "iban": "FI4950009420028730",
- "name": "string"
}, - "message": "string",
- "reference": "string",
- "ultimatePayee": "string",
- "originalPayer": "string",
- "paymentId": "string",
- "paymentType": "SepaPayment",
- "detailsOfCharges": "SHA",
- "paymentOrder": "SEPA",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "submissions": [
- {
- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
]
}
]
}
OP PSD2 PIS API supports the initiation of foreign payments. Payments are considered foreign payments when any of the following criteria applies:
- The currency of the payment is not Euro.
- Payee’s account number is not in IBAN format.
- The payee’s account holding bank is located outside the EU/ETA area.
OP PSD2 PIS API foreign payment processing:
- Foreign payment initiation starts with Create Foreign payment request.
- Foreign payment is then submitted immediately by PISP using Submit foreign payment request.
Foreign payment processing schedule:
- Foreign payment can be submitted at any time of the day, but it will be debited according to scheduled processing cycles.
- Cut-off time for the same day processing of foreign payments is at 16.00 EET with a few exceptions on shorter banking days when the cut-off time is at 12.00 EET.
- Foreign payments received after the cut-off time will be processed and debited on the next banking day.
- Final status of the foreign payment is created after the last processing cycle at end of the banking day the payment is debited, approximately at 24.00 EET.
- TPPs can check the status with the Get foreign payment submission request.
Revocation of the foreign payment:
- Revocation of the confirmed foreign payment is possible only prior to the submission of the payment to OP. Already submitted payments cannot be revoked. Revocation must be done through the PISP.
Create Foreign payment
See the full workflow for PSD2 PIS API >
Foreign payment initiation rules:
- Foreign payments must always be initiated as single payment, i.e. one at a time, and the PISP must submit the payment immediately after the PSU has confirmed the payment request.
- Foreign payments cannot be recurring payments, i.e. paid repeatedly with the same amount and to the same payee.
- Foreign payments cannot be part of a bundle either, i.e. several foreign payments included in the request. If the PSU wants to initiate several foreign payments, then each payment must be initiated, confirmed and submitted separately.
header Parameters
Authorization required | string An Authorisation Token as per https://tools.ietf.org/html/rfc6750. Represents the Client Application, obtained via Client Credentials Grant. |
x-idempotency-key required | string <= 40 characters ^(?!\s)(.*)(\S)$ Every payment will be created only once per x-idempotency-key. |
x-api-key | string API Key |
x-jws-signature | string A detached JWS signature of the body of the payload. This is required for exemption flow and will be always checked when given. Signature is created using your QSealC. |
x-fapi-customer-last-logged-time | string^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Fe... The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string Indicates the user-agent that the PSU is using. |
Request Body schema: application/json; charset=utf-8
amount required | string <number> (MonetaryAmount) ^\d{1,13}(?:\.\d\d)?$ Positive (greater-than zero) monetary amount. |
currency required | string (Currency) ^[A-Z]{3}$ ISO 4127 currency code |
required | object (ForeignPayee) Payee details for foreign payments. |
message required | string <= 140 characters Message for the payee and payer's account statement |
detailsOfCharges | string Enum: "SHA" "OUR" Charge bearer. If not given, then default value of SHA will be used. SHA (default/recommended) = both parties pay their own banking fees OUR = payer pays all the banking fees |
paymentOrder | string Enum: "NORM" "HIGH" Foreign payment type code. NORM (default) = regular foreign payment HIGH = urgent foreign payment |
object | |
exchangeRateReference | string <= 15 characters Reference number related to the FX deal for the payment amount. If given, then exchange rate according to the FX deal is used (FX deal = Foreign currency exchange deal). If not given then bank will use the daily exchange rates. |
Responses
Request samples
- Payload
- CURL
{- "detailsOfCharges": "SHA",
- "paymentOrder": "NORM",
- "amount": "string",
- "currency": "string",
- "payee": {
- "bankAccount": {
- "id": "string",
- "schemeName": "IBAN",
- "issuer": "string"
}, - "name": "string",
- "financialInstitution": {
- "bic": "string",
- "clearingSystemId": "string",
- "name": "string",
- "foreignBankAddress": {
- "address": "string",
- "city": "string",
- "country": "st"
}
}, - "foreignAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "country": "st"
}
}, - "payer": {
- "iban": "FI4950009420028730"
}, - "message": "string",
- "exchangeRateReference": "string"
}
Response samples
- 201
- default
{- "detailsOfCharges": "SHA",
- "paymentOrder": "NORM",
- "amount": "string",
- "currency": "string",
- "payee": {
- "bankAccount": {
- "id": "string",
- "schemeName": "IBAN",
- "issuer": "string"
}, - "name": "string",
- "financialInstitution": {
- "bic": "string",
- "clearingSystemId": "string",
- "name": "string",
- "foreignBankAddress": {
- "address": "string",
- "city": "string",
- "country": "st"
}
}, - "foreignAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "country": "st"
}
}, - "payer": {
- "iban": "FI4950009420028730",
- "name": "string"
}, - "message": "string",
- "exchangeRateReference": "string",
- "authorizationId": "string",
- "paymentId": "string",
- "paymentType": "ForeignPayment",
- "count": 0,
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "submissions": [
- {
- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
]
}
Get foreign payment details
path Parameters
paymentId required | string Payment ID |
header Parameters
x-api-key | string API Key |
Authorization | string An Authorisation Token as per https://tools.ietf.org/html/rfc6750 |
x-fapi-customer-last-logged-time | string^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Fe... The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string Indicates the user-agent that the PSU is using. |
Responses
Request samples
- CURL
curl -X GET https://psd2.mtls.sandbox.apis.op.fi/payments-psd2/v1/foreign-payments/{paymentId} \ -H 'x-api-key: string' \ -H 'Authorization: string' \ -H 'x-fapi-customer-last-logged-time: string' \ -H 'x-fapi-customer-ip-address: string' \ -H 'x-fapi-interaction-id: string' \ -H 'x-customer-user-agent: string' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json'
Response samples
- 200
- default
{- "detailsOfCharges": "SHA",
- "paymentOrder": "NORM",
- "amount": "string",
- "currency": "string",
- "payee": {
- "bankAccount": {
- "id": "string",
- "schemeName": "IBAN",
- "issuer": "string"
}, - "name": "string",
- "financialInstitution": {
- "bic": "string",
- "clearingSystemId": "string",
- "name": "string",
- "foreignBankAddress": {
- "address": "string",
- "city": "string",
- "country": "st"
}
}, - "foreignAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "country": "st"
}
}, - "payer": {
- "iban": "FI4950009420028730",
- "name": "string"
}, - "message": "string",
- "exchangeRateReference": "string",
- "authorizationId": "string",
- "paymentId": "string",
- "paymentType": "ForeignPayment",
- "count": 0,
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "submissions": [
- {
- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
]
}
Delete foreign payment before it's submitted
path Parameters
paymentId required | string Payment ID |
header Parameters
x-api-key | string API Key |
Authorization | string An Authorisation Token as per https://tools.ietf.org/html/rfc6750 |
x-fapi-customer-last-logged-time | string^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Fe... The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string Indicates the user-agent that the PSU is using. |
Responses
Request samples
- CURL
curl -X DELETE https://psd2.mtls.sandbox.apis.op.fi/payments-psd2/v1/foreign-payments/{paymentId} \ -H 'x-api-key: string' \ -H 'Authorization: string' \ -H 'x-fapi-customer-last-logged-time: string' \ -H 'x-fapi-customer-ip-address: string' \ -H 'x-fapi-interaction-id: string' \ -H 'x-customer-user-agent: string' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json'
Response samples
- 200
- default
{- "detailsOfCharges": "SHA",
- "paymentOrder": "NORM",
- "amount": "string",
- "currency": "string",
- "payee": {
- "bankAccount": {
- "id": "string",
- "schemeName": "IBAN",
- "issuer": "string"
}, - "name": "string",
- "financialInstitution": {
- "bic": "string",
- "clearingSystemId": "string",
- "name": "string",
- "foreignBankAddress": {
- "address": "string",
- "city": "string",
- "country": "st"
}
}, - "foreignAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "country": "st"
}
}, - "payer": {
- "iban": "FI4950009420028730",
- "name": "string"
}, - "message": "string",
- "exchangeRateReference": "string",
- "authorizationId": "string",
- "paymentId": "string",
- "paymentType": "ForeignPayment",
- "count": 0,
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "submissions": [
- {
- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
]
}
List foreign payment submissions
path Parameters
paymentId required | string Payment ID |
header Parameters
x-api-key | string API Key |
Authorization | string An Authorisation Token as per https://tools.ietf.org/html/rfc6750 |
x-fapi-customer-last-logged-time | string^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Fe... The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string Indicates the user-agent that the PSU is using. |
Responses
Request samples
- CURL
curl -X GET https://psd2.mtls.sandbox.apis.op.fi/payments-psd2/v1/foreign-payments/{paymentId}/submissions \ -H 'x-api-key: string' \ -H 'Authorization: string' \ -H 'x-fapi-customer-last-logged-time: string' \ -H 'x-fapi-customer-ip-address: string' \ -H 'x-fapi-interaction-id: string' \ -H 'x-customer-user-agent: string' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json'
Response samples
- 200
{- "submissions": [
- {
- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
]
}
Submit foreign payment
path Parameters
submissionId required | string^[a-zA-Z0-9.,_\-]{1,40}$ Submission ID generated by TPP. Must be unique per payment. |
paymentId required | string Payment ID |
header Parameters
x-api-key | string API Key |
Authorization | string An Authorisation Token as per https://tools.ietf.org/html/rfc6750 |
x-fapi-customer-last-logged-time | string^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Fe... The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string Indicates the user-agent that the PSU is using. |
x-sandbox-scenario | string Sandbox only parameter for simulating error conditions. Supported values are:
|
Request Body schema: application/json; charset=utf-8
Submission identifier: submission can be retried using same submissionId. API guarantees that submission is only processed once per submissionId. Allows retry also in case of backend failure of e.g. insufficient funds.
Responses
Request samples
- Payload
- CURL
{ }
Response samples
- 200
- default
{- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
Get foreign payment submission
path Parameters
submissionId required | string^[a-zA-Z0-9.,_\-]{1,40}$ Submission ID generated by TPP. Must be unique per payment. |
paymentId required | string Payment ID |
header Parameters
x-api-key | string API Key |
Authorization | string An Authorisation Token as per https://tools.ietf.org/html/rfc6750 |
x-fapi-customer-last-logged-time | string^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Fe... The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string Indicates the user-agent that the PSU is using. |
x-sandbox-scenario | string Sandbox only parameter for simulating error conditions. Supported values are:
|
Responses
Request samples
- CURL
curl -X GET https://psd2.mtls.sandbox.apis.op.fi/payments-psd2/v1/foreign-payments/{paymentId}/submissions/{submissionId} \ -H 'x-api-key: string' \ -H 'Authorization: string' \ -H 'x-fapi-customer-last-logged-time: string' \ -H 'x-fapi-customer-ip-address: string' \ -H 'x-fapi-interaction-id: string' \ -H 'x-customer-user-agent: string' \ -H 'x-sandbox-scenario: string' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json'
Response samples
- 200
- default
{- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
Get payment authorization (bundle)
path Parameters
authorizationId required | string Authorization ID |
header Parameters
Authorization required | string An Authorisation Token as per https://tools.ietf.org/html/rfc6750. Represents the Client Application, obtained via Client Credentials Grant. |
x-api-key | string API Key |
x-fapi-customer-last-logged-time | string^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Fe... The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string Indicates the user-agent that the PSU is using. |
Responses
Request samples
- CURL
curl -X GET https://psd2.mtls.sandbox.apis.op.fi/payments-psd2/v1/authorizations/{authorizationId} \ -H 'x-api-key: string' \ -H 'Authorization: string' \ -H 'x-fapi-customer-last-logged-time: string' \ -H 'x-fapi-customer-ip-address: string' \ -H 'x-fapi-interaction-id: string' \ -H 'x-customer-user-agent: string' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json'
Response samples
- 200
- default
{- "authorizationId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "authorized": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "sepaPayments": [
- {
- "authorizationId": "string",
- "amountEUR": "string",
- "count": 1,
- "payee": {
- "iban": "FI4950009420028730",
- "name": "string",
- "address": [
- "string"
], - "country": "st"
}, - "payer": {
- "iban": "FI4950009420028730",
- "name": "string"
}, - "message": "string",
- "reference": "string",
- "ultimatePayee": "string",
- "originalPayer": "string",
- "paymentId": "string",
- "paymentType": "SepaPayment",
- "detailsOfCharges": "SHA",
- "paymentOrder": "SEPA",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "submissions": [
- {
- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
]
}
], - "foreignPayments": [
- {
- "detailsOfCharges": "SHA",
- "paymentOrder": "NORM",
- "amount": "string",
- "currency": "string",
- "payee": {
- "bankAccount": {
- "id": "string",
- "schemeName": "IBAN",
- "issuer": "string"
}, - "name": "string",
- "financialInstitution": {
- "bic": "string",
- "clearingSystemId": "string",
- "name": "string",
- "foreignBankAddress": {
- "address": "string",
- "city": "string",
- "country": "st"
}
}, - "foreignAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "country": "st"
}
}, - "payer": {
- "iban": "FI4950009420028730",
- "name": "string"
}, - "message": "string",
- "exchangeRateReference": "string",
- "authorizationId": "string",
- "paymentId": "string",
- "paymentType": "ForeignPayment",
- "count": 0,
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "submissions": [
- {
- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
]
}
]
}
Revoke authorization (bundle)
All the unsubmitted payment transactions included in the bundle will be revoked. If some of the bundle/recurring payments have already submitted, then the revocation applies only to the remaining payments.
path Parameters
authorizationId required | string Authorization ID |
header Parameters
Authorization required | string An Authorisation Token as per https://tools.ietf.org/html/rfc6750. Represents the Client Application, obtained via Client Credentials Grant. |
x-api-key | string API Key |
x-fapi-customer-last-logged-time | string^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Fe... The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string Indicates the user-agent that the PSU is using. |
Responses
Request samples
- CURL
curl -X DELETE https://psd2.mtls.sandbox.apis.op.fi/payments-psd2/v1/authorizations/{authorizationId} \ -H 'x-api-key: string' \ -H 'Authorization: string' \ -H 'x-fapi-customer-last-logged-time: string' \ -H 'x-fapi-customer-ip-address: string' \ -H 'x-fapi-interaction-id: string' \ -H 'x-customer-user-agent: string' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json'
Response samples
- 200
- default
{- "authorizationId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "authorized": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "sepaPayments": [
- {
- "authorizationId": "string",
- "amountEUR": "string",
- "count": 1,
- "payee": {
- "iban": "FI4950009420028730",
- "name": "string",
- "address": [
- "string"
], - "country": "st"
}, - "payer": {
- "iban": "FI4950009420028730",
- "name": "string"
}, - "message": "string",
- "reference": "string",
- "ultimatePayee": "string",
- "originalPayer": "string",
- "paymentId": "string",
- "paymentType": "SepaPayment",
- "detailsOfCharges": "SHA",
- "paymentOrder": "SEPA",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "submissions": [
- {
- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
]
}
], - "foreignPayments": [
- {
- "detailsOfCharges": "SHA",
- "paymentOrder": "NORM",
- "amount": "string",
- "currency": "string",
- "payee": {
- "bankAccount": {
- "id": "string",
- "schemeName": "IBAN",
- "issuer": "string"
}, - "name": "string",
- "financialInstitution": {
- "bic": "string",
- "clearingSystemId": "string",
- "name": "string",
- "foreignBankAddress": {
- "address": "string",
- "city": "string",
- "country": "st"
}
}, - "foreignAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "country": "st"
}
}, - "payer": {
- "iban": "FI4950009420028730",
- "name": "string"
}, - "message": "string",
- "exchangeRateReference": "string",
- "authorizationId": "string",
- "paymentId": "string",
- "paymentType": "ForeignPayment",
- "count": 0,
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "submissions": [
- {
- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
]
}
]
}
Find payments by authorizationId
path Parameters
authorizationId required | string Authorization ID |
header Parameters
x-api-key | string API Key |
Authorization | string An Authorisation Token as per https://tools.ietf.org/html/rfc6750 |
x-fapi-customer-last-logged-time | string^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Fe... The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string Indicates the user-agent that the PSU is using. |
Responses
Request samples
- CURL
curl -X GET https://psd2.mtls.sandbox.apis.op.fi/payments-psd2/v1/authorizations/{authorizationId}/payments \ -H 'x-api-key: string' \ -H 'Authorization: string' \ -H 'x-fapi-customer-last-logged-time: string' \ -H 'x-fapi-customer-ip-address: string' \ -H 'x-fapi-interaction-id: string' \ -H 'x-customer-user-agent: string' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json'
Response samples
- 200
- default
{- "payments": [
- {
- "authorizationId": "string",
- "amountEUR": "string",
- "count": 1,
- "payee": {
- "iban": "FI4950009420028730",
- "name": "string",
- "address": [
- "string"
], - "country": "st"
}, - "payer": {
- "iban": "FI4950009420028730",
- "name": "string"
}, - "message": "string",
- "reference": "string",
- "ultimatePayee": "string",
- "originalPayer": "string",
- "paymentId": "string",
- "paymentType": "SepaPayment",
- "detailsOfCharges": "SHA",
- "paymentOrder": "SEPA",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "submissions": [
- {
- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
]
}
]
}
This endpoint can be used in sandbox to authorize payment directly, skipping OAuth.
path Parameters
authorizationId required | string Authorization ID |
Responses
Request samples
- CURL
curl -X POST https://psd2.mtls.sandbox.apis.op.fi/payments-psd2/v1/authorizations/{authorizationId}/sandbox-authorize \ -H 'Accept: application/json' \ -H 'Content-Type: application/json'
Response samples
- 200
- default
{- "authorizationId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "authorized": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "sepaPayments": [
- {
- "authorizationId": "string",
- "amountEUR": "string",
- "count": 1,
- "payee": {
- "iban": "FI4950009420028730",
- "name": "string",
- "address": [
- "string"
], - "country": "st"
}, - "payer": {
- "iban": "FI4950009420028730",
- "name": "string"
}, - "message": "string",
- "reference": "string",
- "ultimatePayee": "string",
- "originalPayer": "string",
- "paymentId": "string",
- "paymentType": "SepaPayment",
- "detailsOfCharges": "SHA",
- "paymentOrder": "SEPA",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "submissions": [
- {
- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
]
}
], - "foreignPayments": [
- {
- "detailsOfCharges": "SHA",
- "paymentOrder": "NORM",
- "amount": "string",
- "currency": "string",
- "payee": {
- "bankAccount": {
- "id": "string",
- "schemeName": "IBAN",
- "issuer": "string"
}, - "name": "string",
- "financialInstitution": {
- "bic": "string",
- "clearingSystemId": "string",
- "name": "string",
- "foreignBankAddress": {
- "address": "string",
- "city": "string",
- "country": "st"
}
}, - "foreignAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "country": "st"
}
}, - "payer": {
- "iban": "FI4950009420028730",
- "name": "string"
}, - "message": "string",
- "exchangeRateReference": "string",
- "authorizationId": "string",
- "paymentId": "string",
- "paymentType": "ForeignPayment",
- "count": 0,
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "submissions": [
- {
- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
]
}
]
}
This endpoint can be used in sandbox to reject payment directly, skipping OAuth.
path Parameters
authorizationId required | string Authorization ID |
Responses
Request samples
- CURL
curl -X POST https://psd2.mtls.sandbox.apis.op.fi/payments-psd2/v1/authorizations/{authorizationId}/sandbox-reject \ -H 'Accept: application/json' \ -H 'Content-Type: application/json'
Response samples
- 200
- default
{- "authorizationId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "authorized": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "sepaPayments": [
- {
- "authorizationId": "string",
- "amountEUR": "string",
- "count": 1,
- "payee": {
- "iban": "FI4950009420028730",
- "name": "string",
- "address": [
- "string"
], - "country": "st"
}, - "payer": {
- "iban": "FI4950009420028730",
- "name": "string"
}, - "message": "string",
- "reference": "string",
- "ultimatePayee": "string",
- "originalPayer": "string",
- "paymentId": "string",
- "paymentType": "SepaPayment",
- "detailsOfCharges": "SHA",
- "paymentOrder": "SEPA",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "submissions": [
- {
- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
]
}
], - "foreignPayments": [
- {
- "detailsOfCharges": "SHA",
- "paymentOrder": "NORM",
- "amount": "string",
- "currency": "string",
- "payee": {
- "bankAccount": {
- "id": "string",
- "schemeName": "IBAN",
- "issuer": "string"
}, - "name": "string",
- "financialInstitution": {
- "bic": "string",
- "clearingSystemId": "string",
- "name": "string",
- "foreignBankAddress": {
- "address": "string",
- "city": "string",
- "country": "st"
}
}, - "foreignAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "country": "st"
}
}, - "payer": {
- "iban": "FI4950009420028730",
- "name": "string"
}, - "message": "string",
- "exchangeRateReference": "string",
- "authorizationId": "string",
- "paymentId": "string",
- "paymentType": "ForeignPayment",
- "count": 0,
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Unauthorized",
- "submissions": [
- {
- "submissionId": "string",
- "archiveId": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "status": "Accepted"
}
]
}
]
}