BillDesk

This documentation is provided for testing purposes and is subject to change in the future.

With the Adyen connection to BillDesk, you can support ecommerce and recurring transactions for all local credit cards in India, as well as a subset of local debit cards.

3D Secure implementation

In India, for all ecommerce transactions 3D Secure is mandated. To process credit and debit cards through BillDesk follow our Custom 3D Secure implementation guide. Recurring payments require sending some BillDesk-specific properties that are listed below.

Recurring payments

To establish a recurring contract for BillDesk, you need to provide the following data to Adyen:

  • Recurring mandate frequency.
  • Recurring mandate maximum amount.

Initially, these values can be configured on the acquirer account. However, to have full control over these values, you can provide them along with your API request to Adyen.

Request

The table below lists the BillDesk-specific properties, which you can submit in additionalData:

Field Type Description

BillDesk.recurringMaxAmount

String

Represented in minor units ("INR" for BillDesk).

BillDesk.recurringFrequency

String

Allowed values:

  • WEEKLY
  • BI_MONTHLY
  • MONTHLY
  • QUARTERLY
  • BI_ANNUALLY
  • ANNUALLY
  • AD_HOC


The following example demonstrates a request with the BillDesk data provided in additionalData:

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soap:Body>
    <sale xmlns="http://acm.services.adyen.com">
      <authRequest>
        <acquirerAccountCode>BillDeskAcquirerAccount</acquirerAccountCode>
        <additionalData>
          <entry>
            <key xsi:type="xsd:string">mpiImplementationType</key>
            <value xsi:type="xsd:string">BillDesk</value>
          </entry>
          <entry>
            <key xsi:type="xsd:string">BillDesk.txnrefno</key>
            <value xsi:type="xsd:string">U4560000742100</value>
          </entry>
          <entry>
            <key xsi:type="xsd:string">BillDesk.PaRes</key>
            <value xsi:type="xsd:string">eJydl2mv2joext/zKarel6jNSsJJC...em9vzdej5dc36L8Bp9LHtg==</value>
          </entry>
          <entry>
            <key xsi:type="xsd:string">BillDesk.Status</key>
            <value xsi:type="xsd:string">null</value>
          </entry>
          <entry>
            <key xsi:type="xsd:string">BillDesk.sessionId</key>
            <value xsi:type="xsd:string">8A9XmT8MoVHhvmbzC0P1cuVmjfo=</value>
          </entry>
          <entry>
            <key xsi:type="xsd:string">BillDesk.MD</key>
            <value xsi:type="xsd:string">U4560000742100</value>
          </entry>
          <entry>
            <key xsi:type="xsd:string">attemptnumber</key>
            <value xsi:type="xsd:string">0</value>
          </entry>
        </additionalData>
        <amount>
          <currency xmlns="http://common.services.adyen.com">INR</currency>
          <value xmlns="http://common.services.adyen.com">865044</value>
        </amount>
        <browserInfo>
          <acceptHeader xmlns="http://common.services.adyen.com">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</acceptHeader>
          <userAgent xmlns="http://common.services.adyen.com">Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1.1 Safari/605.1.15</userAgent>
        </browserInfo>
        <card>
          <cvc xmlns="http://payment.services.adyen.com">***</cvc>
          <expiryMonth xmlns="http://payment.services.adyen.com">12</expiryMonth>
          <expiryYear xmlns="http://payment.services.adyen.com">2020</expiryYear>
          <holderName xmlns="http://payment.services.adyen.com">Foo Bar</holderName>
          <number xmlns="http://payment.services.adyen.com">************8007</number>
        </card>
        <merchantAccount>TestMerchant</merchantAccount>
        <merchantReference>TMRef1234</merchantReference>
        <pspReference>9915303444752996</pspReference>
        <recurring>
          <contract xmlns="http://payment.services.adyen.com">RECURRING</contract>
        </recurring>
        <shopperEmail>shopper@example.com</shopperEmail>
        <shopperIP>0:0:0:0:0:0:0:1</shopperIP>
        <shopperInteraction>Ecommerce</shopperInteraction>
        <shopperReference>ref321</shopperReference>
        <variant>visa</variant>
      </authRequest>
    </sale>
  </soap:Body>
</soap:Envelope>

Response

Adyen returns the following additionalData in the response to indicate whether a recurring mandate was created:

Field Type Description
billdesk.recurringMandate String Contains the mandateId from BillDesk (possibly masked). If this field is not returned, this means that the card does not support recurring.

The following example demonstrates a response with the BillDesk data included into additionalData:

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soap:Body>
    <ns1:saleResponse xmlns:ns1="http://acm.services.adyen.com">
      <ns1:authResponse>
        <acmReference xmlns="http://acm.services.adyen.com">9915302784752996</acmReference>
        <acquirerResponseCode xmlns="http://acm.services.adyen.com">0300 : Success (PGS10001-Success)</acquirerResponseCode>
        <additionalData xmlns="http://acm.services.adyen.com">
          <entry xmlns="null">
            <key xsi:type="xsd:string">billdesk.recurringMandate</key>
            <value xsi:type="xsd:string">MN1C1E00000178</value>
          </entry>
        </additionalData>
        <responseCode xmlns="http://acm.services.adyen.com">1</responseCode>
        <authorisationData xmlns="http://acm.services.adyen.com">
          <entry xmlns="null">
            <key xsi:type="xsd:string">billdesk.MANDATE_ID</key>
            <value xsi:type="xsd:string">MN1C1E00000178</value>
          </entry>
          <entry xmlns="null">
            <key xsi:type="xsd:string">billdesk.VARIANT</key>
            <value xsi:type="xsd:string">visa</value>
          </entry>
          <entry xmlns="null">
            <key xsi:type="xsd:string">billdesk.MANDATE_FREQUENCY</key>
            <value xsi:type="xsd:string">bimn</value>
          </entry>
          <entry xmlns="null">
            <key xsi:type="xsd:string">billdesk.TXN_REFERENCE_NO</key>
            <value xsi:type="xsd:string">U4560000742100</value>
          </entry>
          <entry xmlns="null">
            <key xsi:type="xsd:string">billdesk.MANDATE_MAX_AMOUNT</key>
            <value xsi:type="xsd:string">1000.00</value>
          </entry>
        </authorisationData>
        <authorisationDataType xmlns="http://acm.services.adyen.com">BillDesk</authorisationDataType>
        <avsResponseCode xmlns="http://acm.services.adyen.com">0</avsResponseCode>
        <cvcResponseCode xmlns="http://acm.services.adyen.com">*</cvcResponseCode>
        <externalReferences xmlns="http://acm.services.adyen.com">
          <ExternalReference>
            <externalReferenceTypeCode>AcquirerReference</externalReferenceTypeCode>
            <value>U4560000742100</value>
          </ExternalReference>
        </externalReferences>
        <responseTimeMs xmlns="http://acm.services.adyen.com">5152</responseTimeMs>
        <transactionDate xmlns="http://acm.services.adyen.com">2018-06-29T23:17:08+10:00</transactionDate>
      </ns1:authResponse>
    </ns1:saleResponse>
  </soap:Body>
</soap:Envelope>