The Basic SEPAmail Payment specification describes the data formats used by the PaymentRequest API [[!PAYMENTREQUESTAPI]] to support payment by SEPAmail Applications such as RUBIS, GEMME or JADE.

This document is not a formal work item of the Web Payments Working Group. It is for discussion.

The Web Payments Working Group maintains a list of all bug reports that the group has not yet addressed.

Introduction

This specification is a Payment Method specification for use with the PaymentRequest API [[!PAYMENTREQUESTAPI]]. It can be used by merchants and payment apps to exchange data related to mobile money financial transactions.

Dependencies

This specification relies on several other underlying specifications.

GSMA's Mobile Money Transactions APIs
The [[!MOBILEMONEY]] Transactions APi is used for all operations involving mobile money financial transactions.
Payment Request API
The term PaymentRequest constructor is defined by the PaymentRequest API specification [[!PAYMENTREQUESTAPI]].
Payment Method Identifiers
The term Payment Method Identifier is defined by the Payment Method Identifiers specification [[!METHODIDENTIFIERS]].
Web IDL
The IDL in this specification is defined by Web IDL [[!WEBIDL]].

Payment Method Identifier

The payment method identifier string for the Mobile Money Payment method is mobilemoney.

Payment Method Specific 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.

MobileMoneyRequest

	  enum Type {
  	    "billpay",
	    "deposit",
   	    "disbursement",
	    "transfer",
	    "merchantpay",
	    "inittransfer",
	    "adjustment",
	    "reversal",
	    "withdrawal"
	    };

	  dictionary BasicSepamailRequest {
  	    required sequence supportedNetworks;
 	    required Type type;
	    required DOMString accountCategory;
	    required DOMString accountRank;
	    required DOMString iban;
	    required DOMString accountID;
	    required DOMString msisdn;
	    required DOMString swiftBIC;
	    required DOMString sortCode;
	    required DOMString organisationID;
	    required DOMString userName;
	    required DOMString walletID;
	    required DOMString linkref;
	  };
	

The MobileMoneyRequest dictionary contains the following fields:

supportedNetworks
The supportedNetworks field contains a sequence of identifiers for mobile money networks that the merchant accepts. These identifiers would refer, for example, to branded mobile money services that implement the Mobile Money API.
type
The harmonised Transaction Type
accountCategory
Can be used to identify the sources of funds category where there are multiple accounts (wallets) held against an account holder.
AND SO ON

Payment Method Response

The MobileMoneyResponse dictionary contains the response from the PaymentRequest API when a user accepts payment with this payment method.

MobileMoneyResponse

	  dictionary BasicSepamailResponse {
  	     required DOMString transactionReceipt;
	  };
	

The MobileMoneyResponse dictionary contains the following fields:

transactionReceipt
Transaction receipt number as notified to the parties.
AND SO ON

Data Provided by Payment Apps

In addition to the data from the merchant provided in the MobileMoneyRequest, payment apps will need to compute or gather the following data for use with the [[!MOBILEMONEY]] API:

requestDate
The creation date and time of the transaction as supplied by the client.
AND SO ON