This specification is a Payment Method specification for use by Payment Initiation Service Providers (PISPs) with PaymentRequest API [[payment-request]]. PISPs are defined as part of the European Payment Service Directive 2 (PSD2). With this payment method, merchants can more easily accept credit transfers in conjunction with PISPs.

The working group maintains a list of all bug reports that the group has not yet addressed.

Introduction

This specification is a Payment Method Specification used by the PaymentRequest API [[!payment-request]] to support payment by credit transfer.

Payment Initiation Service Providers (PISPs) are defined as part of the European Payment Service Directive 2 (PSD2). The goal of this payment method is to create a simple but secure exchange of data that leverages the information that is known by banks under the regulation, and the strong authentication required by PSD2.

This payment method flow works as follows:

This payment method offers several benefits:

See also the flow diagram below.

Dependencies

This specification relies on several underlying specifications.

Payment Request API
The term PaymentRequest constructor is defined defined in Payment Request API [[payment-request]].
Payment Method Identifiers
The term payment method identifier is defined by the Payment Method Identifier specification [[!payment-method-id]].
ISO 9362:2014
The term BIC (business identifier code) is defined in ISO 9362:2014.
ISO 13616-1:2007
The term IBAN (international bank account number) is defined in ISO 13616-1:2007.

Examples

SEPA

          const PISPcreditTransfer = { supportedNetworks: ["SEPA", "BACS"] };
        
          const PISPcreditResponse = { payerAccount: ["FR761751590000"],  selectedNetwork: "SEPA" };
        

PISP Credit Transfers

Payment Method Identifier

The payment method identifier string for the PISP Credit Transfer payment method is pisp-credit.

Data for the PaymentRequest constructor

This section describes payment method specific data that is supplied as part of the data argument to the PaymentRequest constructor.

PISPCreditRequest dictionary

          dictionary PISPCreditRequest {
             sequence<DOMString> supportedNetworks;
          };
          

supportedNetworks member

This member contains a sequence of identifiers for credit transfer networks that the merchant accepts. This field is optional. If a value is not provided then the merchant accepts credit transfers from any credit transfer network or the PISP will manage to find the right network depending on the payer's bank. Note: The Web Payments Working Group is still discussing whether and how to maintain a database of supported network identifiers.

Payment Method Response

This section describes the response from the PaymentRequest API when a user accepts payment with the PISP Credit Transfer payment method.

The PISPCreditResponse message means that a message has been submitted to the Payee's Bank, not that funds transfer has occurred. The merchant should wait for notification from its Bank that the payment has cleared.

PISPCreditResponse dictionary

 
            dictionary PISPCreditResponse {
            required      DOMString payerAccount;
            required      Domstring payerName;
            DOMString selectedNetwork;
            };
          

payerAccount member

This member is an IBAN that enables the PISP to identify the payer's account.

Under PSD2, services may determine the payer's bank via the IBAN. Note that recent requirements around account portability mean that, within a given country, the payer may change banks without changing IBAN.

payerName member

This member is a string that represent the Name (FisteName & LastName) of the holder of the account. I may not be the name of the buyer.

In some API from banks (ASPSP) he payerName is used for identification of the payer and give a better user experience of the authentication.

selectedNetwork member

This member identifies the network to be used by the originator for the credit transfer. If not provided, the PISP may use a credit transfer network corresponding to the country of the payer's bank (e.g., SEPA will be used for Euros).

Appendix: Flow Diagrams

PISP initiated Credit Transfer

Push credit transfer flow, SEPA example

Instant PISP initiated Credit Transfer

Push credit transfer flow, SEPA example

Acknowledgments

Kris Ketels (SWIFT), Vincent Kuntz (SWIFT), Matt Saxon (Worldpay)