April 2022

We work hard to ensure everyone who uses ZWITCH gets the best experience. Every day we take small steps towards developing new products, enhancing existing features, and improving the performance of our system. We also fix (the occasional) bug in the system.

Below is a list of new feature releases, product improvements, and bug fixes we made in April 2022.

πŸ“˜

Note:

  • Except for breaking changes, all other changes are backward compatible.
  • Currently, we work on a daily release cycle. We push changes to the production environment as they are developed. However, we will notify you about breaking changes, new feature releases, and major enhancements via email before they are released.

:rocket: New Features

Below is a list of new features we released in April 2022.

Accounts APIs

Below are the changes made to the Accounts API in April 2022.

Link Yes Bank Current Account

You can now link Yes Bank Current Accounts to ZWITCH.

To link a Yes Bank Current Account to ZWITCH, pass the customer_id under bank_linking_details in the Link Current Account API. The account holder also needs to sign a consent form that you need to upload as part of the Link Current Account API.

Refer to our Link Current Account documentation for more details.

KYC

Below is the change made to the KYC API in April 2022.

Schedule KYC

KYC is a mandatory legal and regulatory procedure required to open any bank account. Some banks require in-person verification of KYC documents to open an account.

We have added APIs that let you schedule in-person KYC verification for accounts. Currently, you can use these APIs to schedule in-person KYC for savings accounts.

Refer to our In-person KYC documentation for more details.

:tada: Enhancements

Below are the enhancements we made in April 2022.

General

Rate limits

To ensure system stability and protect against DoS attacks, we have implemented rate limits at a partner level. We will be using the request per minute criteria to implement rate limits.

The table below lists the rate limits for different environments and operations.

EnvironmentWrite + Read API Calls
Sandbox25
Live100

When the rate limit is breached, subsequent API calls return a 429 HTTP response code with the below error message.

{
  "error": {
    "type": "resource_limit_exhausted",
    "message": "Too many requests hit the API too quickly."
  }
}

Refer to our Rate Limits documentation for more details.

Account APIs

Below is the change made to the Accounts API in April 2022.

Savings Accounts - Device Data

The Savings Account API now allows you to pass details of the device from which create savings account request is received.

Below are the details that need to be passed in the device_data object.

"device_data": {
   "latitude": 12.9013,
   "longitude": 77.7048,
   "ip_address": "182.74.196.234"
}

This is a requirement from our partner banks. Currently, this is an optional parameter, however, it will soon be made a mandatory parameter. We will inform you ahead of time before this is made mandatory.

Refer to our Create Savings Account documentation for more details.

Transfers

Below is the change we made to the Transfers API in April 2022.

Wallet to Wallet Transfers

To ensure accuracy of accounting, wallet-to-wallet transfers will

  • Be shown as a credit transaction in the account statement for the credit account.
  • Trigger payment webhooks in addition to the transaction webhooks.
  • Be shown as a debit transaction in the account statement for the debit account.

Currently, this is available in our Sandbox environment. We will make it available in our Live environment on April 01, 2022.

Below is a sample webhook that will be sent for this scenario. Note

{
  "id": "evl_hbRTncPsx7o94ZjG2oJo5UKDq",
  "object": "event",
  "name": "payments.created",
  "is_sandbox": true,
  "data": {
    "object": {
      "id": "tx_gtk4F8Ag3SaupDk3YXL9tPWUb",
      "object": "payment",
      "account_id": "va_nrhm4CldEHkucMGJGwJZSY1dT",
      "amount": 3.69,
      "transacted_at": 1646917196,
      "currency": "inr",
      "bank_reference_number": "",
      "status": "success",
      "remitter_bank_account_number": "36363652068177603",
      "remitter_bank_ifsc_code": "YESB0CMSNOC",
      "remitter_full_name": "Anil Reddy",
      "remitter_note": "Haircut and beard styling",
      "paid_mode": "wallet",
      "paid_to": "36363652068177603",
      "metadata": {
        "key_1": "DD",
        "key_2": "XOF"
      },
      "is_sandbox": true,
      "remark": "Haircut and beard styling",
      "created_at": 1646917196,
      "merchant_reference_id": "1000014"
    }
  }
}

πŸ“˜

Note

You can differentiate wallet-to-wallet transfers from UPI payments by the value against the paid_mode parameter.

For wallet-to-wallet transfers, the paid_mode will be wallet.