This document has been created by the Wirecard Technologies GmbH. Its contents may be changed without prior notice. External web links are provided for information only. Wirecard does not claim liability for access to and correctness of the referenced content.

Copyright © 2008-2019 Wirecard Issuing Technologies GmbH

All rights reserved.

Printed in Germany / European Union

1.2. Trademarks

The Wirecard logo is a registered trademark of Wirecard Technologies GmbH. Other trademarks and service marks in this document are the sole property of Wirecard Technologies GmbH or their respective owners.

The information contained in this document is intended only for the person or entity to which it is addressed and contains confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact Wirecard Technologies GmbH and delete the material from any computer.

1.3. Contact Information

For questions relating to this document please contact:

Wirecard Technologies GmbH

Einsteinring 35

D-85609 Aschheim

Germany

Phone: +49 89 4424 1235

Note: This document may describe features and/or functionality that are not present in your software or your service agreement. Contact your account representative to learn more about available Wirecard Technologies GmbH products.

2. Introduction

2.1. Purpose

This document introduces and explains the REST interface of the Consumer Cards Platform (CCP) for Third Party Providers Open API Access (XS2A) in scope of PSD2.

Each service is described in detail including example requests and responses where appropriate.

According to the role of the Third Party Provider (TPP), the following services can be used:

TPP Role Service

AISP

Get balance for user bank account

PIISP

Check funds for user bank account

AISP

Get transactions for user bank account

PISP

Initiate a payment (SEPA wire transfer)

2.2. Audience

This document is intended for Third Party Providers Open API Access (XS2A) in scope of Payment Service Directive 2 (PSD2).

2.3. Document Conventions

This document uses the following conventions:

A name put in curly brackets in an URL identifies a variable; its value should be provided by the client.

A URL part closed in square brackets identifies an optional parameter. Client requests to CCP are not obliged to specify it.

3. Authentication

3.1. Token Authentication

The TPP OpenAPI REST Services are secured by token authentication.

Token authentication is considered to be a superior authentication scheme, because it allows fine-grained access control for critical services.

  • for example, a token for a PISP is only valid for one service invocation within the next 10 minutes

  • a token for an AISP is valid for 90 days, unless it has been revoked by the end user

In order to access secured REST services with a token, TPP client applications have to change the HTTP Authorization header’s value to: Bearer <access_token>.

Example

Authorization: Bearer 88ed9c88214a24ac1be75860ffa6c2b7d1fe035b842b6df778a315e955f6c77c

3.1.1. Token Authentication and General Errors

This section provides a list with all token authentication and general errors common to all four services.

HTTP Response Codes

Status Error-Key Description

400

UNMARSHALLING_EXCEPTION

Bad Request, possible reasons: Wrong syntax, the request does not conform to the specification.

401

TOKEN_REQUIRED

Token authentication required for this service.

401

INVALID_TOKEN

Token provided is either invalid, or expired, or not complete.

403

invalid_scope

When the token’s scope did not match the requested resource.

403

LOGIN_LOCKED

Forbidden - user is locked

500

UNKNOWN_ERROR

Error unknown, internal error.

500

500

Internal server error – please contact support.

504

504

GATEWAY_TIMEOUT - Communication to backend failed. The client may retry.

Sample Error Response

{
	"error-code": 403,
	"error-key": "invalid_scope",
	"error-message": "invalid token scope",
	"required-token-scope": "aisp"
}

4. TPP Flow

4.1. OAuth 2.0 Authorization Code Flow

Describes the authorization process

The Regulatory Technical Standard mandates the use of Strong Customer Authentication for the authorisation of online payments and account access by account holders.

Our APIs use the Authorization Code Flow to implement OAuth SCA approach.

OAuth - The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service. The authorization code grant type is used to obtain both access tokens and refresh tokens and is optimized for confidential clients.

Authorization Flow model

4.1.1. Get an authorization code

TPP should redirect the PSU’s user agent (e.g. web browser) to WD authorization page, where the PSU is requested to give consent via SCA.

WD authorization page address will be provided to TPP during registration process.

Other details which should be provided by TPP while forwarding PSU to WD authorization page:

Elements Description

brand-name

name of the brand (product) where PSU has account

scope

AISP, PISP, PIISP

client-id

TPP identifier provided by WD as result of TPP registration

redirect-url

one of the pre-registered urls in WD system

state

An additional value to add to initial request, in order to prevent CSRF attacks. It will be included when redirecting back to application

Redirect the account holder to the SCA authorization UI.

Redirect url example for AISP case

https://wd.com/auth?brand-name=<nameofPSUbrand>&scope=AISP&redirect-url=<TPP_redirect_url>&client-id=<TPP_client_id>&state=<stateValue>

Redirect url example for PISP case

https://wd.com/auth?brand-name=<nameofPSUbrand>&scope=PISP&redirect-url=<TPP_redirect_url>&client-id=<TPP_client_id>&state=<stateValue>&scope-context[amount]=<amount>&scope-context[currency]=<currency>&scope-context[iban]=<iban>

The PSU’s consent results in the generation of an authorization code which is returned by means of HTTP redirection to your tppRedirectUrl.

The authorization code has limited validity. To avoid expiry it should be directly exchanged for an access token.

The authorization code is returned to TPP redirect url

https://tpp-callback-url/?state=1423rfh23&code=1a87f856-a11b-4977-b220-b7ab6f833900.656d87dd-83ae-4fbc-8e66-84fab3e35135.22425f30-7d96-41c3-a1d1-922d0bbe44fd

Exchange the authorization code for an access token

The authorization code now can be exchanged for an access token.

The authorization header contains client_secret that was issued in the registration process.

Sample Request

curl "https://wd.com/oauth/token"
-H "Content-Type: application/x-www-form-urlencoded"
-H "Accept: application/json"
-H "Authorization: Basic hwekfhwurEWCRHJfjoiwWULIUwiefiwePTRUOLTMASccewocewojtnwlwEWQDWEFWEFocjiewcoiwehWERWEOCWLK="
--data "grant_type=authorization_code&code=0866923484&client-id=<TPP_client_id>&redirect_uri=<CLIENT REDIRECT URL>"

A successful response contains an access token that can be subsequently used to authorise access to account / payment.

Sample Response

{
    "token_type": "bearer",
    "expires_in": 43199,
    "scope": "PIISP",
    "jti": "e7b41be4-65f9-4566-a4f5-4477e371d86d"
}

4.2. Exchange the auth code for an access token

The authorization code now can be exchanged for an access token.

The authorization header contains client_secret that was issued in the registration process.

Sample Request

curl "https://wd.com/oauth/token"
-H "Content-Type: application/x-www-form-urlencoded"
-H "Accept: application/json"
-H "Authorization: Basic hwekfhwurEWCRHJfjoiwWULIUwiefiwePTRUOLTMASccewocewojtnwlwEWQDWEFWEFocjiewcoiwehWERWEOCWLK="
--data "grant_type=authorization_code&code=0866923484&client-id=<TPP_client_id>&redirect_uri=<CLIENT REDIRECT URL>"

A successful response contains an access token that can be subsequently used to authorize access to account / payment.

Sample Response

{
    "token_type": "bearer",
    "expires_in": 43199,
    "scope": "PIISP",
    "jti": "e7b41be4-65f9-4566-a4f5-4477e371d86d"
}

5. Open API (XS2A) Services

5.1. User Account Balance Service

This service is used to retrieve information about a user’s available balance.

In order to access account information it is required to first obtain the consent of the PSU. Refer to Authorisation for more details.

5.1.1. User Account Balance Request

HTTP Method: GET

URL: <base-URL>/user/balance

5.1.2. User Account Balance Response

Sample Response (JSON)

{
    "availableAmount": {
        "currency":"EUR",
        "value":145.00
    }
}

HTTP Response Codes

Status Error-Key Description

200

N/A

OK

409

CONFLICT

Could not retrieve balance, please try again later

5.2. User Funds Confirmation Service

This service is used to check whether a user has sufficient funds for a transaction with a given amount.

In order to access confirmation of funds it is required to first obtain the consent of the PSU. Refer to Authorisation for more details.

5.2.1. User Funds Confirmation Request

HTTP Method: POST

URL: <base-URL>/funds-confirmation

Element: user-funds-confirmation-request

Elements Occurrence Description

txnAmount

Mandatory

The amount for a future transaction in EUR currency, which must be the user’s account currency.

{
    "txnAmount": {
        "value": 24.50,
        "currency": "EUR"
    }
}

5.2.2. User Funds Confirmation Response

Sample Response (JSON)

{
    "fundAvailable": true
}

HTTP Response Codes

Status Error-Key Description

200

N/A

OK

403

INVALID_AMOUNT

Amount must be positive, and match the requested amount.

403

INVALID_CURRENCY

Currency must be valid, and match the requested currency.

409

CONFLICT

Could not retrieve balance, please try again later

5.3. User Transactions List Service

This service can be used to retrieve the complete list of transactions for a user in the last 90 days in a lightweight service.

In order to access account transactions information it is required to first obtain the consent of the PSU. Refer to Authorisation for more details.

5.3.1. User Transactions List Request

HTTP Method: GET

URL: <base-URL>/user/transactions-list[?page-size=2&page=0]

URL Parameters

Parameter Required Description

page

No

Number of page, starting from zero.

page-size

No

Only required, if page is specified. Page size must be between 1 and 1000.

5.3.2. User Transactions List Response

Sample Response (JSON)

{
    "pagination": {
        "start": 2,
        "end": 4,
        "total": 5
    },
    "transactions": [
        {
            "amount": {
                "currency": "EUR",
                "value": 4.00
            },
            "details": "{\"basicDetails\":{\"referenceId\":\"16DC6F4FA58111E9B7D800059A3C7A00\",\"referenceType\":\"CARD_ISSUING_FEE\",\"creditType\":\"DEBIT\",\"amount\":4.00,\"currency\":\"EUR\",\"bookingDate\":\"2019-07-13 17:17:46.442\",\"transactionDate\":\"2019-07-13 17:17:46.442\"},\"transactionDetails\":{\"totalFee\":{\"value\":4.00,\"currency\":\"EUR\"},\"undisplayable\":false,\"transactionStatus\":\"PROCESSED\",\"amountDetails\":{\"originalAmount\":{\"value\":0.00,\"currency\":\"EUR\"},\"amountWithoutFees\":{\"value\":0.00,\"currency\":\"EUR\"},\"amountWithFees\":{\"value\":4.00,\"currency\":\"EUR\"},\"totalFees\":{\"value\":4.00,\"currency\":\"EUR\"}}}}",
            "referenceType": "CARD_ISSUING_FEE",
            "isCredit": false,
            "bookinDate": "2019-07-13T15:17:46Z",
            "transactionDate":"2019-07-13T17:17:46+02:00",
            "bookingStatus":"PROCESSED"
        },
        {
            "amount": {
                "currency": "EUR",
                "value": 142.98
            },
            "details": "{\"basicDetails\":{\"referenceId\":\"283EF75BA58111E9B7D800059A3C7A00\",\"referenceType\":\"MANUAL_LOAD\",\"creditType\":\"CREDIT\",\"amount\":142.98,\"currency\":\"EUR\",\"bookingDate\":\"2019-07-13 17:16:15.562\",\"transactionDate\":\"2019-07-13 17:16:15.562\"},\"transactionDetails\":{\"usage\":\"Loaded from Catfish (manual_load)\",\"originalAmount\":{\"value\":144.23,\"currency\":\"EUR\"},\"totalFee\":{\"value\":1.25,\"currency\":\"EUR\"},\"undisplayable\":false,\"transactionStatus\":\"PROCESSED\",\"alias\":\"webuitest\",\"amountDetails\":{\"originalAmount\":{\"value\":144.23,\"currency\":\"EUR\"},\"amountWithoutFees\":{\"value\":142.98,\"currency\":\"EUR\"},\"amountWithFees\":{\"value\":144.23,\"currency\":\"EUR\"},\"totalFees\":{\"value\":1.25,\"currency\":\"EUR\"}}}}",
            "referenceType":"MANUAL_LOAD",
            "isCredit":true,
            "bookingDate":"2019-07-13T15:16:15Z",
            "transactionDate":"2019-07-13T17:16:15+02:00",
            "bookingStatus":"PROCESSED"
        }
    ]
}

Element: user-transactions-list-response

Elements Occurrence Description

pagination

Required

Pagination information for this request.

transactions

Required

The list of transactions.

Element: pagination

Elements Occurrence Description

start

Required

The start of the subset

end

Required

The end of the subset

total

Required

The total number of transactions for the given period (from-date/to-date)

Element: transaction

Elements Occurrence Description

referenceType

Required

The type of this transaction.

isCredit

Required

Returns true if credit, false if debit

amount

Required

The amount, in account currency.

bookingDate

Optional

The booking date in UTC (YYYY-MM-ddThh:mm:ssZ).

transactionDate

Optional

The transaction date in UTC (YYYY-MM-ddThh:mm:ssZ).

details

Optional

Transaction details in JSON format

bookingStatus

Optional

WIP synchronization status. (PROCESSED, PENDING)

Reference Type Values

Below you can find a list of currently possible reference-types. Please note that the reference-type field definition is String256. It is not an enumeration, thus new values added in the reference-type list will not result into a new version of the service. Consumer layer should be able to handle this in a graceful manner.

Value

POS

CREDIT_CARD

VOUCHER

WIRETRANSFER_TOPUP

SEND_WIRETRANSFER

SOFORTUEBERWEISUNG

DIREKTUEBERWEISUNG

IDEAL

DIRECT_DEBIT

DIRECT_DEBIT_PASSTHROUGH

MANUAL_LOAD_CHILD_ACCOUNT_SEND

MANUAL_LOAD_CHILD_ACCOUNT_RECEIVE

MANUAL_UNLOAD_CHILD_ACCOUNT_SEND

MANUAL_UNLOAD_CHILD_ACCOUNT_RECEIVE

AUTO_LOAD_CHILD_ACCOUNT_SEND

AUTO_LOAD_CHILD_ACCOUNT_RECEIVE

SEND_MONEY_TO_ACCOUNT

RECEIVE_MONEY_FROM_ACCOUNT

P2P_SEND

P2P_RECEIVE

DIRECT_DEBIT_SEPA

MICRO_DEPOSIT

WIRE_TRANSFER_TOPUP

CREDIT_CARD_TOPUP

CASH_TOPUP

DIRECT_DEBIT_TOPUP

DIRECT_DEBIT_AUTOMATIC_TOPUP

DIRECT_DEBIT_MANUAL_TOPUP

VOUCHER_TOPUP

DIRECT_TRANSFER

SOFORT_TRANSFER

IDEAL_TRANSFER

DIRECT_DEBIT_RETURN

DIRECT_DEBIT_REVERSAL

SEPA_CREDIT_RETURN

COUPON

CANCEL_COUPON

ROLLBACK_COUPON

ROLLBACK_CANCEL_COUPON

CARD_USAGE

ATM

ADJUSTMENT_POSTING

ADJUSTMENT_BOOKBACK

EXTERNAL_CARD_CREDIT

ADJUSTMENT_PURCHASE

EXTERNAL_CARD_CHARGE

TRANSFER_TO_BANK_ACCOUNT

BALANCE_TRANSFER

REQUEST_MONEY

CANCEL_REQUEST_MONEY

ROLLBACK_REQUEST_MONEY

ROLLBACK_CANCEL_REQUEST_MONEY

MANUAL_LOAD

CANCEL_MANUAL_LOAD

ROLLBACK_MANUAL_LOAD

ROLLBACK_CANCEL_MANUAL_LOAD

CONTRACT_SUBSCRIPTION_FEE

CONTRACT_RENEWAL_FEE

CARD_ISSUING_FEE

CARD_REPLACEMENT_FEE

CARD_PURCHASE_FEE

BALANCE_NOTIFICATION_FEE

DORMANCY_FEE

TOPUP_NOTIFICATION_FEE

ACCOUNT_STATEMENT_NOTIFICATION_FEE

TRANSFER_TO_BANK_ACCOUNT_REVERSAL

INACTIVITY_FEE

DISPUTE_CLEARING

MICRO_CREDIT_LOAD

MICRO_CREDIT_UNLOAD

SEPA_DIRECT_DEBIT_ORDER

SEPA_DIRECT_DEBIT_RETURN

SEPA_WIRETRANSFER_CANCEL

AUTH_FORWARDING_DEBIT

AUTH_FORWARDING_CREDIT

LOAD_MONEY_COMMON

REVERSE_LOAD_MONEY_COMMON

SEND_MONEY_COMMON

CANCEL_SEND_MONEY_COMMON

REVERSE_SEND_MONEY_COMMON

LOAD_MONEY_FUND_TRANSFER

REVERSE_LOAD_MONEY_FUND_TRANSFER

SEND_MONEY_FUND_TRANSFER

CANCEL_SEND_MONEY_FUND_TRANSFER

REVERSE_SEND_MONEY_FUND_TRANSFER

SEND_MONEY_CHECK

CANCEL_SEND_MONEY_CHECK

REVERSE_SEND_MONEY_CHECK

SEND_MONEY_EXPRESS_CHECK

CANCEL_SEND_MONEY_EXPRESS_CHECK

REVERSE_SEND_MONEY_EXPRESS_CHECK

LOAD_MONEY_WESTERN_UNION

REVERSE_LOAD_MONEY_WESTERN_UNION

SEND_MONEY_WESTERN_UNION

CANCEL_SEND_MONEY_WESTERN_UNION

REVERSE_SEND_MONEY_WESTERN_UNION

LOAD_MONEY_BARZAHLEN

REVERSE_LOAD_MONEY_BARZAHLEN

SEND_MONEY_BARZAHLEN

CANCEL_SEND_MONEY_BARZAHLEN

REVERSE_SEND_MONEY_BARZAHLEN

LOAD_MONEY_PBBA

REVERSE_LOAD_MONEY_PBBA

SEND_MONEY_PBBA

CANCEL_SEND_MONEY_PBBA

REVERSE_SEND_MONEY_PBBA

ACQUIRE_CREDIT

ACQUIRE_DEBIT

CANCEL_ACQUIRE_DEBIT

ACQUIRE_RESERVE_DEBIT

CANCEL_ACQUIRE_RESERVE_DEBIT

OCT_CREDIT

REVERSE_OCT_CREDIT

MSP_CREDIT

REVERSE_MSP_CREDIT

MSF_DEBIT

REVERSE_MSF_DEBIT

ABIT_CLOSING_ACCOUNT_LOAD

BALANCE_EXPIRY

SWEEP_REVENUE

OTHER

ACCEPTED_AUTHORIZATION

REJECTED_AUTHORIZATION

REVERSED_AUTHORIZATION

EXPIRED_AUTHORIZATION

LOAD_MONEY_INTERBANK

REVERSE_LOAD_MONEY_INTERBANK

SEND_MONEY_INTERBANK

CANCEL_SEND_MONEY_INTERBANK

REVERSE_SEND_MONEY_INTERBANK

LOAD_MONEY_CASH_POS

REVERSE_LOAD_MONEY_CASH_POS

SEND_MONEY_CASH_POS

CANCEL_SEND_MONEY_CASH_POS

REVERSE_SEND_MONEY_CASH_POS

REVERSE_FEE

Basic details

Element Name Element Type

referenceId

String

referenceType

String

creditType

String (CREDIT, DEBIT)

amount

BigDecimal

currency

String

bookingDate

Formatted into String (e.g. 2017-12-04 16:28:38.852)

transactionDate

Formatted into String (e.g. 2017-12-04 16:28:38.852)

Transaction details

Whenever a transaction is a Transaction Event (not an Authorization Event), the following elements could appear on the details section. Most of them are optional, so they are not guaranteed to be on the response.

Element Name Element Type

sender

String

receiver

String

sender-mobile-number

String

transfer-identifier

String

usage

String

merchant

String

merchant-city

String

merchant-country

String

original-amount

AmountType

total-fee

AmountType

third-party-aggregated-fee

AmountType

voucher-code

String

merge-id

String

iban

String

swift

String

bank-code

String

bank-name

String

bank-account

String

bank-account-type

String

authorization-id

String

card-detail-ref

TransactionDetailsType.CardDetailRef

mandate-info

TransactionDetailsType.MandateInfo

creditor-id

String

original-transaction-date

DateTime

credit-card

TransactionDetailsType.CreditCard

amount-details

TransactionDetailsType.AmountDetails

px-correlation-id

String

mobile-number

String

transaction-date-time-stamp

String

creditCardUsage

String

guwid

String

activation-code

String

clearing-id

String

exchange-rate-used

String

original-operation-reference

String

cancelled-transaction-ref

String

terminal-id

String

due-date

String

ticket-id

String

barcode

String

transaction-status

String

px-correlation-id

String

business-purpose

String

business-status

String

reason-code

String

approval-code

String

acquirer-fee

String

wepLogin

String

wepName

String

alias

String

billingDate

Date or DateTime

Whenever a transaction is an Authorization Event, the following elements could be on the details section. Most of them are optional, so they are not guaranteed to be on the response.

Element Name Element Type

unique-authorization-id

String

authorization-event-type

AuthorizationEventType

transaction-source

TransactionSourceType

authorization-date-time

DateTime

amount-in-trans-currency

AmountType

amount-in-acc-currency

AmountType

secure-3d-check

Boolean

acquirer-id

String

acquirer-name

String

acquirer-ref

String

merchant-id

String

merchant-name

String

merchant-country

String

merchant-city

String

merchant-category-code

String

terminal-id

String

terminal-time-stamp

DateTime

approval-code

String

response-code

String

cvx-check

Boolean

recurring

Boolean

entry-mode

String

trace-number

String

insert-date-time

DateTime

issuer-fee

AmountType

acquirer-fee

AmountType

card-account-ref-id

String

available-balance

AmountType

available-balance-before

AmountType

rev-request-id

String

client-ref-id

String

card-ref-id

String

token-requestor-id

String

The elements above can contain some complex types besides strings and dates. In that case, the content of the elements (and sub-elements) are specified below.

AmountType

Element Name Element Type

value

BigDecimal

currency

String

DateTime

Something in this format: 2016-08-11T08:49:30Z

TransactionDetailsType.CardDetailRef

Element Name Element Type

ref-id

String

transaction-source

String

TransactionDetailsType.MandateInfo

Element Name Element Type

mandate-id

String

mandate-timestamp

String

TransactionDetailsType.CreditCard

Element Name Element Type

masked-pan

String

alias

String

category

CardCategoryType

CardCategoryType

Card Category Type values

CREDIT

DEBIT

PREPAID

UNKNOWN

TransactionDetailsType.AmountDetails

Element Name Element Type

original-amount

AmountType

amount-without-fees

AmountType

amount-with-fees

AmountType

total-fees

AmountType

AuthorizationEventType

Authorization Event Type values

ACCEPTED

REJECTED

EXPIRED

REVERSED

TransactionSourceType

Transaction Source Type values

ECOMMERCE

ATM

POS

CASH

MOTO

IMPRINT

HTTP Response Codes

Status Error-Key Description

200

N/A

OK

400

INVALID_PAGINATION_PARAMETERS

Page size must be provided when page is provided

400

INVALID_PAGINATION_PARAMETERS

Page must be positive or zero

400

INVALID_PAGINATION_PARAMETERS

Page size must be in interval [1, 1000]

5.4. Initiate Payment SEPA Credit Service

This service transfers money from user’s account to a specified receiver IBAN.

In order to perform payment transaction it is required to first obtain the consent of the PSU. Refer to Authorisation for more details.

5.4.1. Initiate Payment SEPA Credit Request

HTTP Method: POST

URL: <base-URL>/payments/sepa-credit-transfers/{sepa-credit-transfers-ref-id}

URL Parameters

Client implementations must generate a sepa-credit-transfers-ref-id to identify a transaction.

Parameter Required Description

sepa-credit-transfers-ref-id

Yes

A unique value for the user transaction. Contains up to 32 alphanumeric characters.

Sending two identical requests with the same sepa-credit-transfers-ref-id and equal transaction details will result in a single transaction on the back end (idempotent request). This can be used to reliably implement retries, e.g. when a network outage occurs.

{
    "receiver": {
        "first-name": "Jack",
        "last-name": "Sparrow",
        "iban": "DE40715927019372376313",
        "bic": "BUZXLG91"
    },
    "amount": {
        "value": 1.03,
        "currency":"EUR"
    },
    "reasonForTransfer": "Bounty"
}

Element: initiate-payment-sepa-credit-request

Elements Occurrence Description

receiver

Required

Receiver of the SEPA credit, specifies first/last name and IBAN/BIC.

amount

Required

The amount in EUR currency, which must be the user’s account currency.

reasonForTransfer

Optional

Field (128 characters) to add a reason for the money transfer.

Element: receiver

Elements Occurrence Description

first-name

Optional

First name of the SEPA credit receiver. (32 characters)

last-name

Mandatory

Last name of the SEPA credit receiver. (32 characters)

iban

Mandatory

IBAN of the SEPA credit receiver.

bic

Optional

BIC of the SEPA credit receiver.

5.4.2. Initiate Payment SEPA Credit Response

{
    "amount": {
        "currency": "EUR",
        "value": 1.77
    },
    "fee": {
        "currency": "EUR",
        "value": 1.50
    },
    "totalAmount": {
            "currency": "EUR",
            "value": 3.02
    }
}

Element: initiate-payment-sepa-credit-response

Elements Occurrence Description

amount

Mandatory

The amount in EUR currency, which must be the user’s account currency.

fee

Mandatory

The fee in EUR currency.

totalAmount

Mandatory

The total amount (including fee) in EUR currency.

HTTP Response Codes

Status Error-Key Description

200

N/A

OK

403

BLOCKED_CUSTOMER

Customer is not allowed to send money to bank account.

403

INVALID_AMOUNT

Amount must be positive, and match the requested amount.

403

INVALID_CURRENCY

Currency must be valid, and match the requested currency.

403

INVALID_RECEIVER

SEPA receiver must be valid, and match the requested SEPA receiver.

403

INVALID_IBAN_OR_BIC

IBAN or BIC is invalid.

403

SENDER_INSUFFICIENT_FUNDS

Sender funds insufficient for completing the operation.

403

LIMIT_VIOLATED

The sending limit of the user was exceeded.

403

SEND_MONEY_FAILED_ERROR

Send money failed, internal error.

403

GENERAL_ERROR_KEY

Unable to authorize money.

403

TRANSACTION_ALREADY_USED

Transaction id already used.

Sample Error Response

{
    "error-code": "403",
    "error-key": "SENDER_INSUFFICIENT_FUNDS",
    "error-message" : "Sender funds insufficient for completing the operation"
}