Integration

Covers queries regarding integration and related topics.

Q. How do I integrate BillDesk with my website or mobile app?

A. BillDesk offers multiple options to integrate. Merchant can integrate via. BillDesk Neo – Full Redirect, Ace – SDK, CX+ – Deep API for website integration, mobile SDK integration, and predefined plugins for some major e-commerce platforms like Shopify, Magento, Woo-Commerce, OpenCart, WordPress and PrestaShop. You can make use of these APIs to set up BillDesk with your website or mobile app and start accepting payments.

Q. How many payment methods does BillDesk support?

A. BillDesk supports 150+ payment methods to accept payments. Major supported payment methods are Credit Card/ Debit Card, UPI, NetBanking, Wallet & Cashcards etc.

Q. What are the pre-requisites for setting-up sandbox environment?

A. To setup sandbox environment, merchant needs to share the following details:

  1. Public Static IPs: These are Merchant's IPs from where merchant will initiate a call to BillDesk APIs. BillDesk can whitelist only public static IPs and not domains.
  2. Secured S2S (Server-to-Server) URL: Merchant's S2S URL on which merchant wants BillDesk to post transaction response. Transaction response will be shared in the encrypted format, merchant needs to decrypt and update their system accordingly.
  3. Merchant's public certificates for encryption and signature verification.

Note: Details related to point number 3 are to be shared for Merchant Hosted Payment Page.

Q. What all information will be received from BillDesk once production/ sandbox environment is setup?

A. Merchant will receive Merchant ID, Client ID and Key from BillDesk Team for production/sandbox environment. These details will be shared on merchant's specific email address only.

Q. What are the types of Ace – SDK?

A. Following are the Ace – SDK that are available for the multiple use cases:

  • Payment SDK
  • Payment + Mandate Setup SDK
  • Only Mandate Setup SDK
  • Modify/ Delete Mandate SDK

Q. What do you mean by Payment SDK?

A. Payment SDK is used for standalone payments. Merchant is expected to call Create Order API with mandatory parameters required for standalone payments as specified in WebSDK specification document.

Q. What do you mean by Payment + Mandate Setup SDK?

A. Payment + Mandate Setup SDK is used for standalone payments along with setting-up mandates using same payment options (i.e., cards or UPI). Merchant is expected to call Create Order API with mandatory parameters required for such use case as specified in Ace – SDK specification document. Mandate object is an additional value compared to standalone payments which is required in the create order API request. Using this workflow, merchant can setup mandates on Cards or UPI.

Q. What do you mean by only Mandate Setup SDK?

A. Mandate Setup SDK is used for setting up only mandates. Using this workflow, merchant can setup mandates on Cards or UPI or bank account (i.e., eNACH).

Q. What do you mean by Modify/ Delete Mandate SDK?

A. Modify/ Delete Mandate SDK is used when merchant wants to make changes (modify) in existing mandate or delete it. Mandate Modification can be done for mandate end date, mandate amount, frequency and amount type.

Q. I am getting a message: Invalid subscription "start_date". What should I do?

A. In this case, the subscription start date should be in 'yyyy-mm-dd' format (if Merchant is capturing mandate details) and it has to be either current date or future date.

Q. I am getting a message: "orderid" already exists with given "mercid". What should I do?

A. Merchant needs to pass unique orderid (for every new request, merchant needs to generate an unique id which has been not used already for that mercid) for every new API call. In case same order id is passed against the merchant id then 'OrderId already exists with given mercid' is returned as a response.

Q. I am getting a message: Invalid "order_date". What should I do?

A. Merchant needs to pass Order Date. It should be Merchant order generation date and time in YYYY-MM-DDThh:mm:ss TZD format

Q. I am getting a message: Invalid "user_agent". What should I do?

A. User Agent is customer's device browser related information. Below is the sample value for reference.
"Mozilla/5.0 (WindowsNT10.0;WOW64;rv:51.0) Gecko/20100101 Firefox/51.0"

Q. I am getting a message: Request from unauthorized IP. What should I do?

A. In case, merchant tries to make an API call from an IP which is not whitelisted at BillDesk's end, then 'Request from unauthorized ip' is returned as a response.

Merchant is expected to make an API call using only those IPs which are whitelisted with BillDesk. In case, merchant wants to whitelist any additional IPs, then the merchant needs to reach out to BillDesk Relationship Manager (BillDesk RM).

Q. I am getting a message: Invalid "clientid". What should I do?

A. Merchant needs to pass client ID for every API call. Please check and pass correct client ID received from BillDesk Team against the merchant ID. Client ID is passed in the JWS header section with algorithm as HS256.

Example:
{
"alg":"HS256",
"clientid":"abcd1234"
}

Q. What is traceid and how is it generated?

A. Traceid is used for idempotency and the request with the same Traceid within the day will be rejected. Traceid can be alphanumeric without any spaces or special characters and should be a maximum size of 35-character length.

Please use the below code to generate unique trace ID:
Math.floor((Math.random() * 10000000000) + 1);

Q. How to generate SHA256 value of request body for Penny Drop (Account Validation) API?

A. SHA256 value of request body is created by using compressed JSON without any blank spaces.

{"mercid":"Test","orderid":"ORDER7372891","currency":"356","bankid":"123","itemcode":"DIRECT","payment_method":"bank_account","bank_account":{"number":"123456","ifsc":"BKID123456"},"customer":{"name":"Rahul Sharma"},"additional_info":{"additional_info1":"Raj","additional_info2":"100450001"},"device":{"init_channel":"internet","ip":"124.124.1.1","mac":"11-AC-58-21-1B-AA","user_agent":"Mozilla/5.0 (WindowsNT10.0;WOW64;rv:51.0)Gecko/20100101Firefox/51.0","accept_header":"text/html","fingerprintid":"61b12c18b5d0cf901be34a23ca64bb19"}}

SHA256 Value:
D71B6FDF04D1FF8D4946CE6BF1F0882850EC1D903A5B5061EDB3988E35D82317

Q. Is Sandbox setup provided in case of a Shopify based Merchant?

A. No, there is no separate sandbox setup provided in this case. After the Merchant is made live on Production, they can make use of the 'test mode' provided by Shopify and perform a test transaction.

Values needed to complete your Shopify integration with BillDesk:

  • Shopify Shop Domain (eg: abcmerchant.myshopify.com)
  • Shopify Complete URL and its corresponding port number (eg: https://abcmerchant.com and port number: 443)
  • Shopify Partner ID (about 5 - 12-digit numeric value)

Q. How is customer's account debited for subscription-based model? Is merchant expected to do any API calls for debiting customer's account for upcoming subscription cycles?

A. For debiting customer's account for subscription-based model, merchant needs to call following APIs from their end.

  1. Create Invoice API: Through this end-customer will receive notification regarding upcoming debit to her/ his bank account.
  2. Create Transaction (SI) API: This will ensure actual debit which will happen to customer's bank account.