This specification is a Payment Method specification for use with the PaymentRequest API [PAYMENT-REQUEST-API]. With it, merchants and payers can exchange information required for credit transfers across a variety of payment systems.
The working group maintains a list of all bug reports that the group has not yet addressed.
This specification is a Payment Method Specification used by the PaymentRequest API [[!PAYMENTREQUESTAPI]] to support payment by credit transfer.
This specification relies on several other underlying specifications.
The payment method identifier string for the Basic Credit Transfer Payment method is credit-transfer.
This section describes payment method specific data that is supplied as part of the data argument to the PaymentRequest constructor.
dictionary CreditTransferRequest {
sequence<DOMString> requiredResponseFields;
sequence<DOMString> supportedNetworks;
sequence<DOMString> supportedCountries;
required DOMString payeeIBAN;
DOMString payeeName;
DOMString payeeAddress;
required DOMString payeeBIC;
DOMString payeeIdentificationCode;
DOMString payeePaymentIdentificationHumanReadable;
required DOMString payeePaymentIdentificationMachineReadable;
DOMString sellerName;
DOMString sellerIdentificationCode;
required DOMString purposeCode;
DOMString categoryPurposeCode;
DOMString preferredProcessingDate;
DOMString notificationURL;
};
The CreditTransferRequest dictionary contains the following fields:
requiredResponseFieldssupportedNetworkssupportedCountriespayeeIBANpayeeBICpayeeNamepayeeAddresspayeeIdentificationCodepayeePaymentIdentificationHumanReadablepayeePaymentIdentificationMachineReadablesellerNamesellerIdentificationCodepurposeCodecategoryPurposeCodepreferredProcessingDatenotificationURLHow do we ensure that fields are not tampered with (e.g., malicious changes to the beneficiary)?. Similarly, it is important that the payeeName not be changed by the payer or the payment app in order to be sure that automatic controls at the payee’s bank will work.
The CreditTransferResponse dictionary
contains the response from the PaymentRequest API when a user accepts payment with a Basic Credit Transfer payment method.
The CreditTransferResponse 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.
dictionary CreditTransferResponse {
required DOMString selectedProcessingDate;
required DOMString payerPaymentIdentification;
required DOMString payerBIC;
required DOMString selectedNetwork;
DOMString payerIdentificationCode;
DOMString payerName;
DOMString buyerIdentificationCode;
DOMString buyerName;
};
The CreditTransferResponse dictionary contains the following fields:
selectedProcessingDatepayerPaymentIdentificationpayerBICselectedNetworkpayerIdentificationCodepayerNamebuyerIdentificationCodebuyerNameThis table maps field names used in this specification to relevant fields in other schemes or standards.
| SEPA | |
|---|---|
| supportedNetworks | AT-40: Identification code of the Scheme |
| payeeIBAN | AT-20: The IBAN of the account of the Beneficiary. |
| payeeBIC | AT-23: the BIC code of the beneficiary. Note: Even if the BIC could be derived from the IBAN in most of SEPA country, it may be not the case in others, so this field is important. The merchant should know the BIC of his account. This field could be also used with another format of “bank identification code” for countries not using BIC. |
| payeeName | AT-21: The name of the Beneficiary |
| payeeAddress | AT-22: The address of the Beneficiary |
| payeeIdentificationCode | AT-24: The Beneficiary identification code |
| payeePaymentIdentificationHumanReadable | AT-05: The Remittance Information sent by the Originator to the Beneficiary in the Credit Transfer Instruction only if the payeePaymentIdentificationMachineReadable is not provided. |
| payeePaymentIdentificationMachineReadable | AT-05: The Remittance Information sent by the Originator to the Beneficiary in the Credit Transfer Instruction. |
| sellerName | AT-28: The name of the Beneficiary Reference Party |
| sellerIdentificationCode | AT-29: The identification code of the Beneficiary Reference Party |
| purposeCode | AT-44: The purpose of the credit transfer |
| categoryPurposeCode | AT-45: The category purpose of the credit transfer |
| preferredProcessingDate | ... |
| notificationURL | ... |
| SEPA | |
|---|---|
| selectedProcessingDate | AT-07: The Requested Execution Date of the instruction |
| payerPaymentIdentification | AT-41: The Originator’s reference of the Credit Transfer Transaction (End to End Identification in ISO20022 definition) |
| payerBIC | AT-06: The BIC of the Originator |
| selectedNetwork | AT-40: Identification code of the Scheme |
| payerIdentificationCode | AT-10: The Originator identification code |
| payerName | AT-02: The Name of the Originator |
| buyerIdentificationCode | AT-09: The identification code of the Originator Reference Party |
| buyerName | AT-08: Name of the Originator Reference Party of the Originator Reference Party |
The following are design considerations for this specification.
This diagram illustrates the credit transfer flow, using a SEPA credit transfer as an example.
Laurent Castillo (Gemalto), Kris Ketels (Swift), Vincent Kuntz (Swift), Frédéric Meignien (Canton Consulting).