Changelog
The changelog below reflects new product developments and updates.
2025-12-02
✅ Payin Status Updates
- Added
REFUND_INITIATEDstate to payin status flow. The payin status now transitions throughREFUND_INITIATEDbefore reachingREFUNDEDstate. - Updated Status Reference guide to reflect the new payin status flow.
✅ Refund Reason Updates
-
Introduced
refund_reasonfield to provide specific reasons when payin refunds are initiated or completed. This field is now available in:- API Responses: Added in response of Fetch payin and Payin history endpoints.
- Webhook Payloads: Payin webhook events for
REFUND_INITIATEDandREFUNDEDstates
-
Possible
refund_reasonvalues include:INCORRECT_AMOUNT- The amount transferred does not match the expected amount for the payin quotationPAYMENT_FROM_NON_WHITELISTED_ACCOUNT- Payment was made from an account that is not whitelisted for the customerTHIRD_PARTY_PAYMENT- Payment was made from a third-party account that is not associated with the customer
✅ Selfie Verification Updates
- Introduced Update Selfie Information endpoint allowing customers to update their selfie information. This endpoint supports up to 3 updates per customer.
- Added
SELFIE_VERIFICATION_FAILEDfailure reason to KYC verification process. This failure reason is returned when:- Selfie image quality is poor or face is not clearly visible
- Selfie does not match the photo on submitted KYC documents
- Updated Failure Reason Reference guide to include
SELFIE_VERIFICATION_FAILEDfailure reason.
✅ Webhooks Metadata Fields Documentation
- Enhanced Webhooks documentation with detailed explanation of metadata fields:
- Payin Events:
failure_reasonfield forFAILEDevents andrefund_reasonfield forREFUND_INITIATEDandREFUNDEDevents - Customer Events:
failure_reasonfield forFAILEDevents (includingSELFIE_VERIFICATION_FAILED) - Bank Events:
failure_reasonfield forFAILEDevents
- Payin Events:
- Added comprehensive webhook payload examples showing metadata fields with actual failure and refund reason values.
2025-11-28
✅ Failure Reasons in Bank Account APIs
- Introduced
failure_reasonfield in bank account API responses. This field is populated when bank verification status isFAILED, providing specific reasons for verification failures such as:INVALID_IFSC- Invalid IFSC codeINVALID_ACCOUNT_NUMBER- Invalid account numberACCOUNT_TYPE_NRE- NRE account type not supportedPENNY_DROP_FAILED- Penny drop verification failedNAME_MISMATCH- Account holder name mismatchBANK_RISK_CHECK__FAILED- Bank risk check failed
✅ Failure Reason Reference Guide
- Added comprehensive Failure Reason Reference guide documenting all failure reason values returned across different API endpoints, including:
- Bank verification failure reasons
- KYC verification failure reasons
- Payin failure reasons
2025-11-26
✅ Error Codes
- Introduced err_code field for all 4XX and 5XX error responses to provide clearer, machine-readable error classification.
Example:
{
"status": false,
"message": "Bad Request",
"data": null,
"err_code": "INPUT_MALFORMED",
"errors": {
"field_name": ["Error message"]
}
}
- Find all available error codes here.
✅ Customer Creation Updates
- Customer Create endpoint response updated:
failure_reason– Value returned in case of status isFAILEDindicating rejection reason.document_type– Shows the type of document used for verification.
✅ Add KYC Updates
- Add KYC endpoint response updated:
failure_reason– Value returned in case of status isFAILEDindicating rejection reason.
2025-10-09
✅ Payin Quotation
- Payin Quotation response now includes the ios_checkout_link field to support iOS UPI checkout flows.
2025-08-06
✅ Customer Creation Updates
- Customer Create endpoint now supports two new optional fields:
non_residence_status– Set totruefor non-resident customers.residence_alpha_3_country_code– Use this to specify the country of residence for non-resident customers.
✅ KYC Add API Enhancements
- Add KYC endpoint has been updated:
income_rangeandprofessionare now wrapped inside a new object:additional_info.- Example:
{ "additional_info": { "income_range": "<10L", "profession": "Software Engineer" } }
✅ New KYC Configuration Endpoint
- A new endpoint KYC Configuration is now available.
- It returns:
supported_document_types– A list of accepted document types for Add KYC.additional_info_required– Specifies required fields (income_range,profession), with validation rules.
Example response:
{
"status": true,
"message": "Success",
"data": {
"supported_document_types": [
"AADHAAR",
"PASSPORT",
"VOTER_ID",
"DRIVING_LICENSE"
],
"additional_info_required": {
"options": ["income_range", "profession"],
"rules": {
"type": "allOf",
"min_required": 2
},
"income_range": {
"type": "string",
"required": true
},
"profession": {
"type": "string",
"required": true
}
}
}
}
✅ Payout / Payin Configuration Updates
- The response format for both Payout Configuration and Payin Configuration has been restructured.
🔁 Previous Structure:
{
"data": {
"supported_fiats": ["inr"],
"supported_assets": ["usdt", "usdc"],
"coin_limits": {
"{fiat}": {
"{asset}": {
"imps": { "min": 30, "max": 5850 },
"upi": { "min": 30, "max": 5850 }
}
}
},
...
}
}
✅ New Structure:
{
"data": {
"inr": {
"supported_assets": ["usdt", "usdc"],
"supported_networks": {
"usdt": ["polygon", "eth", "bsc", "sepolia", "solana", "tron", "arbitrum"],
"usdc": ["polygon", "eth", "bsc", "sepolia", "solana", "tron", "arbitrum"]
},
"coin_limits": {
"usdt": {
"imps": { "min": 28, "max": 5563 },
"upi": { "min": 28, "max": 1113 }
},
"usdc": {
"imps": { "min": 28, "max": 5563 },
"upi": { "min": 28, "max": 1113 }
}
},
...
}
}
}
- This update introduces greater granularity with nested structures under each fiat currency (e.g.
inr) and detailedsupported_networksper asset.
2025-07-22
✅ KYC EDD Updates
/kyc/add-edd-dataendpoint is removed.- Replaced by:
- We've also published an EDD Guide to help you understand how to integrate it.
✅ Payout Configuration
- Payout Configuration now includes mandatory risk parameters required while generating a Payout Quotation.
✅ Payout Quotation
- Payout Quotation now accepts risk parameters configured for your organization.
✅ Payin Quotation Improvements
- Payin Quotation
selfie_urlis removed and no longer required.- Separate examples added for UPI and Bank Transfers to clarify expected payloads.
- New QR Generation Guide added for simplifying UPI integrations.
- Changed
payment_methodfrombank_transfertoimps
✅ New Limits APIs
- New endpoints introduced for customer limits:
These endpoints return:
daily_limit– Customer's daily FIAT limitavailable_limit– Available FIAT limit remainingfull_limit_reset_timestamp– Timestamp when full daily limit resetsis_edd_required– Does the customer need to complete EDD for the next transaction?is_limit_increase_available– Can the customer request a limit increase via EDD?
✅ Payin Order Status Updates
- Payin Orders now support two new states:
REFUNDEDON_HOLD
- These states can be tested using Mock Payin Status.
✅ Error Codes
- Error code tables have been added across all relevant Endpoints pages.
✅ UTR Guide
- Understanding UTR guide has been added.