BillDesk

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

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

Follow the instructions in this documentation to connect to BillDesk using the Adyen integration.

Request

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.

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>petert@test.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>
        <accountUpdaterResult xmlns="http://acm.services.adyen.com" xsi:nil="true"/>
        <acquirerAvsResponseCode xmlns="http://acm.services.adyen.com" xsi:nil="true"/>
        <acquirerCvcResponseCode xmlns="http://acm.services.adyen.com" xsi:nil="true"/>
        <authCode xmlns="http://acm.services.adyen.com" xsi:nil="true"/>
        <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>
        <bankAccount xmlns="http://acm.services.adyen.com" xsi:nil="true"/>
        <currentBalance xmlns="http://acm.services.adyen.com" xsi:nil="true"/>
        <cvcResponseCode xmlns="http://acm.services.adyen.com">*</cvcResponseCode>
        <externalReferences xmlns="http://acm.services.adyen.com">
          <ExternalReference>
            <externalReferenceTypeCode>AcquirerReference</externalReferenceTypeCode>
            <value>U4560000742100</value>
          </ExternalReference>
        </externalReferences>
        <mpiData xmlns="http://acm.services.adyen.com" xsi:nil="true"/>
        <paymentFlaggingResults xmlns="http://acm.services.adyen.com" xsi:nil="true"/>
        <posAcquirerResponse xmlns="http://acm.services.adyen.com" xsi:nil="true"/>
        <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>