0% found this document useful (0 votes)
32 views31 pages

Indusspay Python Payouts API Specification - V1 - 241106 - 175905

Uploaded by

akash1231
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views31 pages

Indusspay Python Payouts API Specification - V1 - 241106 - 175905

Uploaded by

akash1231
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

Payouts API Specifications (Python)

for Merchants
Security Considerations

All the APIs shared in this document will have a common security as
mentioned below.
1. All requests are on HTTPS.
2. Only the POST Method is allowed.
3. API header should have below information:
I. Basic authentication
II. Content-Type application/json
4. IP whitelisting
We allow only select IP addresses to access our application over the
internet. Hence as a consumer it. may be required to whitelist all the ip
addresses that the consumer would be consuming the application from. This
step is a prerequisite to setup successful connectivity.

2
1. Add Beneficiary

1.1. Path: /payouts/api/v1/ind/p1/beneficiary/add

1.2. Request

Key Description Possible Value/Example

beneList List of Beneficiary Data

name Bene Customer name Jackson

email Bene Customer email [email protected]

mobileNumber Bene mobile number 989899898

beneName No Special characters Jackson


allowed in case of E-
Payment (RTGS & NEFT)

beneAccountNumber Mandatory for RTGS, NEFT 1007354544741


and FT. Can be blank for
rest of the payment modes

beneIfsc Mandatory for SBIN0115491


RTGS, NEFT
Beneficiary IFSC
Code

bankName Beneficiary Bank INDUSS BANK


Name

signature Concatenated encrypted Checksum key will be


string in shared separately along
with logic and Algorithm

1.2.1. Request Body: -


{
"beneList": [
{
"name": "Jackson",

3
"email": "[email protected]",
"mobileNumber": "989899898",
"beneName": "Jackson",
"beneAccountNumber": "1002301044741",
"beneIfsc": "CNRB0001007",
"bankName": "INDUSS BANK"
},
{
"name": "Alis",
"email": "[email protected]",
"mobileNumber": "9872343210",
"beneName": "Alis Tony",
"beneAccountNumber": "20348938148",
"beneIfsc": "SBIN0016491",
"bankName": "SBI"
}
],
"signature":"9aecqq0koOes4S0J1V77cfgqHZ+jVf8KIe9uZ0iqG9nlztXC0DbKO8m0jCKTAH2
9zGbGS0/15cToopJhmqOfl+IM9uJDsNCjnzYnv2KRlwr6D5m+zdalrwi4AtVREXfjTGfVU0Dg1
EWKt+7A9Ru6meV08ZXEIw7LBZllvOf2BGJK0kH+8dcnhqZWqq71mstVnKy5mqSUVSs3usR
QPKw3s6RocUfZRjCKd9YG6h75FPdUgffiihq0gBdy9/vIY7rOvADqA5CHEDWthb8Dvjt/xmI7v
vePzLLDj33bJLKPQcmGTgQVwlju3ctcQuhBK7/yJAcjuOPf7qGOgi/MFPEWCrZwFpBwx4TY
Vg9NN1hohOkwfQZ1kUTSZDf+S6f1NgT4FHLiqexzr85yBOubLGNNug=="
}

1.2.2. Signature String Format: -


nameJacksonemailjacksonindusspaycommobileNumber989899898beneNameJacksonben
eAccountNumber1002301044741beneIfscCNRB0001007bankNameINDUSSBANKnameAlis
emailtonygmailcommobileNumber9872343210beneNameAlisTonybeneAccountNumber20
348938148beneIfscSBIN0016491bankNameSBI
nameJacksonemailjacksonindusspaycommobileNumber989899898beneNameJacksonben
eAccountNumber1002301044741beneIfscCNRB0001007bankNameINDUSSBANKnameAlis
emailtonygmailcommobileNumber9872343210beneNameAlisTonybeneAccountNumber20
348938148beneIfscSBIN0016491bankNameSBI|YOUR KEY

1.2.3. Sample Code Checksum Format: -


class ApiAddBeneficiaryRequest(object):
""" generated source for class ApiAddBeneficiaryRequest """
beneList = List()
signature = str()

4
def checksumValidation(self):
""" generated source for method checksumValidation """
sb = StringBuilder()
thisClass = None
try:
sb.append(toJSON(self.beneList).replaceAll("[^a-zA-Z0-9]", ""))
except Exception as e:
e.printStackTrace()
return sb.__str__()

1.3. Sample Code


import requests
import base64

url = "{{baseURL}}/payouts/api/v1/ind/p1/beneficiary/add"
apiKey = 'qfwOd3e48bfa9c4042b987796d7d67303f2c8GUH'
apiSecret = 'b2eYnm6NUl5c0HU9NxFVLVdIwxxzD9QukWh3bz8t'
payload = {
"beneList": [
{
"name": "Jackson",
"email": "[email protected]",
"mobileNumber": "989899898",
"beneName": "Jackson",
"beneAccountNumber": "1002301044741",
"beneIfsc": "CNRB0001007",
"bankName": "INDUSS BANK"
},
{
"name": "Alis",
"email": "[email protected]",
"mobileNumber": "9872343210",
"beneName": "Alis Tony",
"beneAccountNumber": "20348938148",
"beneIfsc": "SBIN0016491",
"bankName": "SBI"
}
]

5
}
auth_string = f"{apiKey}:{apiSecret}"
encoded_auth_string = base64.b64encode(auth_string.encode()).decode()

headers = {
"Authorization": f"Basic {encoded_auth_string}",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers, verify=False)

if response.status_code == 200:
print("Request was successful.")
else:
print("Request failed with status code: " + str(response.status_code))

1.4. Response

Key Description Possible Value/Example

status SUCCESS/FAILED

message Response Message

timestamp Response Date Time

data Beneficiary related details

beneficiaryId Bene Hash id

name Bene Customer name Prabha

email Bene Customer email [email protected]

mobileNumber Bene mobile number 989899898

beneficiaryName No Special characters Prabhakaran


allowed in case of E-
Payment (RTGS & NEFT)

6
accountNumber Mandatory for RTGS, NEFT 1007104544741
and FT. Can be blank for
rest of the payment modes

ifscCode Mandatory for RTGS, NEFT SBIN0115491


Beneficiary IFSC Code

bankName Beneficiary Bank CANARA BANK


Name

status Whether Account Verified Verified/Not Verified


or Not

paymentStatus Account Verification pending/paid


Payment Status

signature Concatenated encrypted Checksum key will be


string in shared separately along
with logic and Algorithm

1.4.1. Response Body: -


{
"status": "SUCCESS",
"message": "beneficiary submitted:SUCCESS",
"timestamp": "25-Jan-2023 21:34:20 Wednesday",
"data": [
{
"beneId": "822cfa64-7783-4bc4-bc2c-fcb607ba2a96",
"beneficiaryName": "Jackson",
"accountNumber": "1002301044741",
"ifscCode": "CNRB0001007",
"bankName": "CANARA BANK",
"paymentStatus": "pending",
"status": "Not Verified",
"name": "Jackson",
"email": "[email protected]",
"mobileNumber": "989899898"
},
{
"beneId": "81f616be-8237-4d00-8096-cbec29e89cb1",
"beneficiaryName": "Alis",
"accountNumber": "20348938148",
"ifscCode": "SBIN0016491",

7
"bankName": "SBI",
"paymentStatus": "pending",
"status": "Not Verified",
"name": "Alis Tony",
"email": "[email protected]",
"mobileNumber": "9872343210"
}
]
}

8
2. Beneficiary List

2.1. Path: /payouts/api/v1/ind/p1/beneficiary/list

2.2. Request

Key Description Possible Value/Example

page Each page contains 10 0


records,
Page range start 0 … N,

startDate yyyy-MM-dd HH:mm:ss 2023-01-24 23:59:59

endDate yyyy-MM-dd HH:mm:ss 2023-01-25 00:00:00

beneficiaryId Beneficiary Identifier filter


which help to extract specific
beneficiary details

signature Concatenated encrypted Checksum key will be


string in shared separately along
with logic and Algorithm

2.2.1. Request Body: -

{
"page": 0,
"startDate":"2023-01-24 23:59:59",
"endDate":"2023-01-25 00:00:00",
"beneficiaryId":"",
"signature":"2Va+StGhFzlweiUb/7obNKwQvVLTF41XrQI4gxv11YdKO6DQqQffyWUlwUGn4p
haaEtib7+xCyOhcQQRBbmIB/D9uJ+4EYyV5gGwkz67HDw="
}

2.2.2. Above Request Before Signature String: -


02023-01-24 23:59:592023-01-25 00:00:00

9
2.3. Response

Key Description Possible Value/Example

status SUCCESS/FAILED status

message Response Message message

timestamp Response Date Time timestamp

data Beneficiary related details

beneficiaryDetails List of Added Beneficiary


Data

beneficiaryId Bene Hash id

beneficiaryName No Special characters


allowed in case of E-
Payment (RTGS & NEFT)

accountNumber Mandatory for RTGS, NEFT


and FT. Can be blank for
rest of the payment modes

ifscCode Mandatory for RTGS, NEFT


Beneficiary IFSC Code

bankName Beneficiary Bank

status Whether Account Verified


or Not

paymentStatus Account Verification


Payment Status

name Bene Customer name

email Bene Customer email

mobileNumber Bene mobile number

10
totalPages

totalSize

currentPage

2.3.1. Response Body: -


{
"status": "SUCCESS",
"message": "Beneficiary Details Fetched : success",
"timestamp": "25-Jan-2023 21:51:52 Wednesday",
"data": {
"beneficiaryDetails": [
{
"beneId": "822cfa64-7783-4bc4-bc2c-fcb607ba2a96",
"beneficiaryName": "Jackson",
"accountNumber": "1002301044741",
"ifscCode": "CNRB0001007",
"bankName": "CANARA BANK",
"paymentStatus": "pending",
"status": "Not Verified",
"name": "Jackson",
"email": "[email protected]",
"mobileNumber": "989899898"
},
{
"beneId": "81f616be-8237-4d00-8096-cbec29e89cb1",
"beneficiaryName": "Alis",
"accountNumber": "20348938148",
"ifscCode": "SBIN0016491",
"bankName": "SBI",
"paymentStatus": "pending",
"status": "Not Verified",
"name": "Alis Tony",
"email": "[email protected]",
"mobileNumber": "9872343210"
} ],
"totalPages": 1,
"totalSize": 2,
"currentPage": 0

11
}
}

12
3. Single Payouts Request

3.1. Path: /payouts/api/v1/ind/p1/payouts/single

3.2. Request

Key Description Possible Value/Example

description Transaction description / Jan 2022 Salary settlement


notes

amount Transaction amount 50.00

beneficiaryId Registered beneficiary e1d4a589-c61e-41b9-afa3-


Identifier bab55bdae0c9

txnMode Payment mode NE


identification RT –
RTGS NE – NEFT
PA - IMPS

clientTxnId Transaction unique id for PRIME13456


your reference

signature Concatenated encrypted Signature key will be shared


string separately along with logic
and algorithm

3.2.1. Request Body: -


{
"description": "fund-transfer",
"amount": "50000.00",
"beneficiaryId": "e1d4a589-c61e-41b9-afa3-bab55bdae0c9",
"txnMode": "NE",
"clientTxnId": "PRIME13456",
"signature":"MGiCfjLO3K89OVMyJUTB73ZHMQkEGq16/M5cklgmBx0GBwdSCdufcSrn/qo5j
9252LTpjCigyT3owa6DC3VMfZyqu6e/N8CQ0gorzgPMNwJCGR7qgl7QyZ1UeUF+SFvUhQ
Gv1Sl8FONKtEB5dxA376wxC3gOzAnINQb2OGXpU1g="
}

13
3.3. Response

Key Description Possible Value/Example

status SUCCESS/FAILED

message Response Message

timestamp Response Date Time

3.3.1. Response Body: -


{
"status": "SUCCESS",
"message": "Payout Requests : success",
"timestamp": "25-Jan-2023 18:23:36 Wednesday"
}

14
4. Single Payouts Request via Account & IFSC (No Beneficiary ID)

4.1 Path: /payouts/api/v1/ind/p1/payouts/single

4.2 Request

Key Description Possible Value/Example

description Transaction description


Payment for services
/ notes

amount Transaction amount 100.00

Payment mode
txnMode identification RT – RTGS, NE NE
– NEFT, PA - IMPS

clientTxnId Transaction unique id PRIME13456


for your reference

beneName Beneficiary Bank name John Doe

beneAccNum Beneficiary Account number 1234567890

beneIfscCode Beneficiary IFSC code IFSC0001

beneEmail Beneficiary email ID [email protected]

beneMobile Beneficiary mobile number 9876543210

bankName Bank name Some Bank

Signature key will be


signature Concatenated encrypted
shared separately along
string
with logic and algorithm

4.2.1 Request Body: -


{
"description": "Payment for services",
"amount": "100.00",

15
"txnMode": "NE",
"clientTxnId": "txn12345",
"beneName": "John Doe",
"beneAccNum": "1234567890",
"beneIfscCode": "IFSC0001",
"beneEmail": "[email protected]",
"beneMobile": "9876543210",
"bankName": "Some Bank",
"signature": "signature-value"
}

4.3 Response

Key Description Possible Value/Example

status SUCCESS/FAILED

message Response Message

timestamp Response Date Time

4.3.1 Response Body: -


{

"status": "SUCCESS",
"message": "Payout Requests: success",
"timestamp": "25-Jan-2023 18:23:36 Wednesday"

16
5. Bulk Payouts Request

5.1. Path: /payouts/api/v1/ind/p1/payouts

5.2. Request

Key Description Possible Value/Example

type Transaction Batch type SALARY_SETTELEMENT

description Transaction description / Jan 2022 Salary settlement


notes

paymentRequests Payment Request List

amount Transaction amount 50.00

beneficiaryId Registered beneficiary e1d4a589-c61e-41b9-afa3-


Identifier bab55bdae0c9

txnMode Payment mode identification NE


RT – RTGS
NE – NEFT
PA - IMPS

clientTxnId Transaction unique id for PRIME13456


your reference

signature Concatenated encrypted Signature key will be shared


string separately along with logic
and algorithm

5.2.1. Request Body: -


{
"type": "SALARY_SETTELEMENT",
"description": "Jan 2022 Salary settlement",
"paymentRequests": [
{
"amount": "50000.00",
"beneficiaryId": "e1d4a589-c61e-41b9-afa3-bab55bdae0c9",
"txnMode": "NE",

17
"clientTxnId":"PRIME13456"
}
],
"signature":"MGiCfjLO3K89OVMyJUTB73ZHMQkEGq16/M5cklgmBx0GBwdSCdufcSrn/qo5j
9252LTpjCigyT3owa6DC3VMfZyqu6e/N8CQ0gorzgPMNwJCGR7qgl7QyZ1UeUF+SFvUhQ
Gv1Sl8FONKtEB5dxA376wxC3gOzAnINQb2OGXpU1g="
}

5.2.2. Signature String Format: -


amount5000000beneficiaryIde1d4a589c61e41b9afa3bab55bdae0c9txnModeNEclientTxnI
dPRIME13456Jan 2022 Salary settelementSALARY_SETTELEMENT

5.2.3. Sample Code Checksum Format: -


class ApiPayoutsRequest:
def __init__(self):
self.paymentRequests = []
self.description = None
self.type = None
self.signature = None

def checkSumValidation(self):
sb = ''
try:
for f in self.__dict__:
if f != 'signature':
value = self.__dict__[f]
if f == 'paymentRequests':
sb += str(value).replace("[^a-zA-Z0-9]", "")
else:
if value is not None:
sb += str(value)
except Exception as e:
print(e)
return sb

5.3. Response

18
Key Description Possible Value/Example

status SUCCESS/FAILED

message Response Message

timestamp Response Date Time

5.3.1. Response Body: -


{
"status": "SUCCESS",
"message": "Payout Requests : success",
"timestamp": "25-Jan-2023 18:23:36 Wednesday"
}

19
6. Bulk Payouts Request via Account & IFSC (No Beneficiary ID)

6.1 Path: /payouts/api/v1/ind/p1/payouts

6.2 Request

Key Description Possible Value/Example

type Transaction Batch type SALARY_SETTELEMENT

description Transaction description / Payment for services


notes

paymentRequests Payment Request List

amount Transaction amount 100.00

txnMode Payment mode identification PA


RT – RTGS, NE – NEFT,
PA - IMPS
clientTxnId Transaction unique id for PRIME13456
your reference

beneName Beneficiary Bank name John Doe

beneAccNum Beneficiary Account number 1234567890

beneIfscCode Beneficiary IFSC code IFSC0001

beneEmail Beneficiary email ID [email protected]

beneMobile Beneficiary mobile number 9876543210

bankName Bank name Some Bank

Signature key will be


Concatenated encrypted
signature shared separately along
string
with logic and algorithm

20
6.2.1 Request Body: -

{
"type": "SALARY_SETTELEMENT",

"description": "Payment for services",


"paymentRequests": [
{
"amount": "100.00",
"txnMode": "NE",
"clientTxnId": "txn12345",
"beneName": "John Doe",
"beneAccNum": "1234567890",
"beneIfscCode": "IFSC0001",
"beneEmail": "[email protected]",
"beneMobile": "9876543210",
"bankName": "Some Bank"
}
],
"signature": "signature-value"
}

6.3 Response

Key Description Possible Value/Example

status SUCCESS/FAILED

message Response Message

timestamp Response Date Time

6.3.1. Response Body: -

{
"status": "SUCCESS",

21
"message": "Payout Requests: success",
"timestamp": "25-Jan-2023 18:23:36 Wednesday"
}

22
7. Payouts Status

7.1. Path: /payouts/api/v1/ind/p1/payouts/status

7.2. Request

Key Description Possible Value/Example

clientTxnId Transaction unique id for PRIME13456


your reference

signature Concatenated encrypted Signature key will be shared


string separately along with logic
and algorithm

7.2.1. Request Body: -


{
"clientTxnId":"PRIME13456",
"signature":"noaEakd2Om0sv9aUGAMC7BRy4qnsc6/OcgTrmyxjTbo="
}

7.3. Response

Key Description Possible Value/Example

status SUCCESS/FAILED

message Response Message

timestamp Response Date Time

data Payment related details

transactionStatus Transaction Status Pending/Processing/Sucess


/Failed

utr Transaction utr Settlement reference


number(RRN for IMPS/ UTR

23
for NEFT/RTGS)

clientTxnId Transaction unique id for


your reference

statusDescription Transaction status


description

7.3.1. Response Body: -


{
"status": "SUCCESS",
"message": "Payment status Fetched : Success",
"timestamp": "25-Jan-2023 19:03:17 Monday",
"data": [
{
"transactionStatus": "Pending",
"utr": null,
"clientTxnId": "PRIME13456",
"statusDescription": "To Be Authorized"
}
]
}

24
8. Payouts Callback

If the merchant shares a URL, then Indusspay will hit the merchant’s URL with the transaction
details. This will be called only for the “Payouts Callback” request.

8.1. Path: To be shared by merchants. REST API should be supported in JSON format.

8.2. Request

Key Description Possible Value/Example

transactionStatus Transaction status


1.SUCCESS
2.FAILED

utr Settlement reference


number(RRN for IMPS/ UTR for
NEFT/RTGS)

clientTxnId Client reference number

statusDescription Status of transaction enquiry

batchId batch Identifier for transaction

signature A signature is a value used to


verify the integrity of a file or a
data transfer. This is calculated
only on attributes within the
body.

8.2.1. Request Body: -

{
"data": [
{
"transactionStatus": "SUCCESS",
"utr": "AXISCN0006204263",
"clientTxnId": "PRIME123",
"statusDescription": "Credited to beneficiary on 07-05-2020 18:40:22",
"batchId": "BLKAPIFT1674827497691MbNoT"

25
}
],
"signature":
"43jTLz/6TbdOS2dopxvOSij7mAFK87pEWShHr77/uHQyKdJ1gHROdw9/5Y0Vc7kbDlFycrf9
Q8cJ7g30ehj9r12dUUNYygoOKwGCTtikhfq8yfO+3jAVLLkZlA/SfiWrGngz5GFJyOQbBPm+f
eeX6ZOTSFznAxlBWXWS46Xphkyq4gRp7DrwG3QEM6azCmwMr96L0nEYfpG0pel/ZXy90g
\u003d\u003d"
}

26
Sample Code
from Crypto.Cipher import AES
from base64 import b64encode, b64decode
import random

def generateSignature(concatenatedString, checksumkey):


BLOCK_SIZE = 16
pad = lambda s: s + (BLOCK_SIZE - len(s) % BLOCK_SIZE) * chr(BLOCK_SIZE - len(s) %
BLOCK_SIZE)
key = b64decode(checksumkey)
inputString= concatenatedString+"|"+checksumkey
inputString = pad(inputString)
encryptor = AES.new(key, AES.MODE_ECB)
encoded = encryptor.encrypt(inputString)
return b64encode(encoded).decode('utf-8')

//function call
concatenatedString=" YOUR STRING "
checksumkey=" YOUR KEY "

signature=generateSignature(concatenatedString,checksumkey);
print(signature)

Signature Generation

Please follow the steps below to concatenate the strings and generate the
signature:

1. Check if the input is an array of objects or a plain object.


2. If it's an array of objects, concatenate both the key and value of each
object, removing special characters from the resulting string.
3. If it's a plain object, concatenate only the values of the object, without
removing the special character between each value.
4. Return the concatenated string.
5. Write the Signature code in the respective language (refer sample code).
6. Use the checksum key shared with you to generate the Signature.
7. Generated Signature shall be added into the JSON request of API.

27
Example for Array of objects:

"beneList": [

"name": "asdfgh",

"email": "[email protected]",

"mobileNumber": "989899899",

"beneName": "asdfg",

"beneAccountNumber": "1007101044741",

"beneIfsc": "CNRD0001807",

"bankName": "CANARA BANK"

},

"name": "asdfgh",

"email": "[email protected]",

"mobileNumber": "9876548978",

"beneName": "asdfgh",

"beneAccountNumber": "203389387658",

"beneIfsc": "SBIN0016889",

"bankName": "SBI"

],

"signature":

28
"/CaCygKRQCk4xTvnKnErOM4wG9mcClN3Epcd52BbOMQ9TZRBewTuEt4ItOjB6oD5MA
bFNadPzOXB4yJlgko8ma49vJ8mnT6HdUFAV8CJi91U8/UHparsvpBpEXY75C+3VtGrm4
+KnGknnuLZahKW1+LAIgqcQbUjnTWX/96xTUsZtNvQt4/1w7JQQaszNvfrO1DTXEfScIRv
aLkl7xS00ovGDwry4nPkuhWcQ4t3KH9knPyP4Y4DAauTB6enzkCy7S8n/NPXX7SdU5S/
8t6DKWLr0tvERNh9KYhqTlHpCrWS3RNy+t2vWBboBd08jhnbgvfcAgC21/6Mh9yrmR89
HoUl9vdj58bm01JBkYUfgSoS5QuleGfLkjVgOB6cixUPTIkETMwtsrFt40Z9Wme3Izxmaujr
ztd+3GleIoBqQAwE="

Concatenated string:
nameasdfghemailprabhaindusspaycommobileNumber989899899beneNameasdfgbene
AccountNumber1007101044741beneIfscCNRD0001807bankNameCANARABANKnamea
sdfghemailabcdgmailcommobileNumber9876548978beneNameasdfghbeneAccountNu
mber203389387658beneIfscSBIN0016889bankNameSBI

Example for Plain object:

"description": "Jan 2022 Salary settelement",

"amount": "1.00",

"beneficiaryId": "2cfd2052-f788-4a3d-b737-11771b66efe6",

"txnMode": "NE",

"clientTxnId":"PRIME4553",

"signature":"YmxgcidGTohZshnbxgfvdcrestl/KHxQbHlDt8Tf+/2VW5Yr3gdoUGt+qOPzay
Bnw4W5NpziTi4S4vWklTkNLvVsjLc8q/JKew2uNihiRcqLW6ba57tmsIOX3vWsFfRH5Qu
W2DCVz+6+0RUWJJ5VqJqYKPQ=="

Concatenated string: Jan 2022 Salary settelement1.002cfd2052-f788-4a3d-b737-


11771b66efe6NEPRIME4553

29
Common Error Messages Encountered During API Integration
1. Error: Invalid checksum

Root cause:

when there is an incorrect concatenation of strings and signatures.

2. Something went wrong please try again/Something went wrong!

Root cause:

1. Invalid Input: The API request may contain invalid or missing parameters,
causing the server to fail in processing the request.
2. Authentication Failed: The API request may lack proper authentication
credentials (e.g., API key, OAuth token), leading to an authentication error.
3. Server Issues: The server handling the API request may be experiencing
technical issues, such as high load, maintenance, or downtime.
4. Data Format Issues: Problems with data formats (e.g., JSON, XML) or encoding
can cause errors when parsing API responses.

3. Insufficient Funds: No Balance in payout wallet.

4. Your IP address is not allowed

Root cause:

IP Whitelisting Configuration: The server has IP whitelisting configured to restrict


access only to specific IP addresses. If your IP address is not included in the whitelist,
access will be denied.

5. You cannot consume this service

Root cause:

Service Unavailability: When UPI/Payout services are inactive.

6. Bad Request

Root cause:

1. Invalid or Missing Parameters: The API request may contain invalid or missing
parameters required for the operation to be processed successfully. This could
include missing required fields, incorrect data formats, or parameters that do
not adhere to the API specifications.

30
2. Authentication Issues: The API request may fail due to authentication issues,
such as missing or incorrect authentication credentials (e.g., API keys, tokens,
or certificates), expired authentication tokens, or insufficient permissions to
access the requested resource.

7. no Route matched with those values

Root cause:

When the API URL is incorrect.

8. Transaction amounts outside the range of ₹10.00 to ₹50,000.00 are not permitted.

Root cause:

The standard transaction limits range from a minimum of Rs.10 to a maximum of


Rs.50,000, and these limits apply to both pay-in and payout transactions.

31

You might also like