Recurring Profiles

Recurring profiles can be used to initate recurring payments such as a subscription. A recurring profile is based on its first transaction and all further transactions of this profile are subsequent to the initial transaction. A payment can be initialised without the interaction of the customer.

📘

The merchant's account need to be configured for recurring profile usage.

When using recurring payments only one payment detail (or profile) is saved for a specified customer ID and is accessed by the customerID directly. Therefore the element profileID is not used and can be ignored.

Possible payment types

Currently allowed payment systems (pType) for recurring payment profiles are credit cards (CC), direct debit (ELV) and PayPal (PAYPAL).

Available operations

General operations to implement recurring profiles:

  • AcceptPayment
  • ListProfiles
  • DeleteProfile

Depending on the used integration, the following additional operations are needed:

  • Redirect Integration: SelectPayment
  • Backend2Backend Integration: No additional operations

Integration steps

📘

Only the Redirect Integration is discussed further. Please contact the mPAY24 Support for more information about the profile usage with Backend2Backend Integration.

Store/update payment profiles

To store payment details in a profile or to update an existing profile, an inital payment has to be performed with the SelectPayment operation, a unique customer id as Id and UseProfile = true.

The payment details used during this transaction are stored for the specified customerID upon success and can be further used for recurring payments.

<SOAP-ENV:Envelope 
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
  xmlns:etp="https://www.mpay24.com/soap/etp/1.5/ETP.wsdl">
  <SOAP-ENV:Header/>
  <SOAP-ENV:Body>
    <etp:SelectPayment>
      <merchantID>90000</merchantID>
      <mdxi>
        <Order>
          <Tid>820743</Tid>
          <Price>1.00</Price>
          <Customer Id="customer0011" UseProfile="true"/>
        </Order>
      </mdxi>
    </etp:SelectPayment>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

List profiles of a customer

With the ListProfiles operation all customers and stored information of a merchant can be listed.

The following request returns the payment details stored for the customer with ID customer0011.

<SOAP-ENV:Envelope 
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
  xmlns:etp="https://www.mpay24.com/soap/etp/1.5/ETP.wsdl">
  <SOAP-ENV:Header/>
  <SOAP-ENV:Body>
    <etp:ListProfiles>
      <merchantID>90000</merchantID>
      <customerID>customer0011</customerID>
    </etp:ListProfiles>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Use profile

With the AcceptPayment operation the stored information of a customer can be used to initiate a follow up transaction. This is only possible if the payment data was previously created (see chapter Store/update payment profiles).

The following request initiates a follow up transaction for the customer customer0011:

<SOAP-ENV:Envelope 
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
  xmlns:etp="https://www.mpay24.com/soap/etp/1.5/ETP.wsdl"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <SOAP-ENV:Header/>
  <SOAP-ENV:Body>
    <etp:AcceptPayment>
      <merchantID>90000</merchantID>
      <tid>23990</tid>
      <pType>PROFILE</pType>
      <payment>
        <amount>100</amount>
        <currency>EUR</currency>
        <useProfile>true</useProfile>
      </payment>
      <customerID>customer0011</customerID>
    </etp:AcceptPayment>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Delete profiles

With the DeleteProfile operation all details stored for a specific customer ID can be deleted.

In the following example the customer with ID customer0011 is deleted.

<SOAP-ENV:Envelope 
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
  xmlns:etp="https://www.mpay24.com/soap/etp/1.5/ETP.wsdl">
  <SOAP-ENV:Header/>
  <SOAP-ENV:Body>
    <etp:DeleteProfile>
      <merchantID>90000</merchantID>
      <customerID>customer0011</customerID>
    </etp:DeleteProfile>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>