## Customer ### Create customer ```js instance.customers.create({ "name": "Gaurav Kumar", "contact": 9123456780, "email": "gaurav.kumar@example.com", "fail_existing": "1", "gstin": "29XAbbA4369J1PA", "notes": { "notes_key_1": "Tea, Earl Grey, Hot", "notes_key_2": "Tea, Earl Grey… decaf." } }) ``` **Parameters:** | Name | Type | Description | |---------------|-------------|---------------------------------------------| | name* | string | Name of the customer | | email | string | Email of the customer | | contact | string | Contact number of the customer | | fail_existing | string | If a customer with the same details already exists, the request throws an exception by default. Possible value is `1` or `0`| | gstin | string | Customer's GST number, if available. For example, 29XAbbA4369J1PA | | notes | object | A key-value pair | **Response:** ```json { "id" : "cust_1Aa00000000004", "entity": "customer", "name" : "Gaurav Kumar", "email" : "gaurav.kumar@example.com", "contact" : "9123456780", "gstin": "29XAbbA4369J1PA", "notes":{ "notes_key_1":"Tea, Earl Grey, Hot", "notes_key_2":"Tea, Earl Grey… decaf." }, "created_at ": 1234567890 } ``` ------------------------------------------------------------------------------------------------------- ### Edit customer ```js instance.customers.edit(customerId,{ "name": "Gaurav Kumar", "email": "Gaurav.Kumar@example.com", "contact": 9000000000 }) ``` **Parameters:** | Name | Type | Description | |---------------|-------------|---------------------------------------------| | customerId* | string | The id of the customer to be updated | | email | string | Email of the customer | | name | string | Name of the customer | | contact | string | Contact number of the customer | **Response:** ```json { "id": "cust_1Aa00000000003", "entity": "customer", "name": "Gaurav Kumar", "email": "Gaurav.Kumar@example.com", "contact": "9000000000", "gstin": null, "notes": { "notes_key_1": "Tea, Earl Grey, Hot", "notes_key_2": "Tea, Earl Grey… decaf." }, "created_at": 1582033731 } ``` ------------------------------------------------------------------------------------------------------- ### Fetch all customer ```js instance.customers.all(options) ``` **Parameters:** | Name | Type | Description | |---------------|-------------|---------------------------------------------| | count | integer | number of customers to fetch (default: 10) | | skip | integer | number of customers to be skipped (default: 0) | **Response:** ```json { "entity":"collection", "count":1, "items":[ { "id":"cust_1Aa00000000001", "entity":"customer", "name":"Gaurav Kumar", "email":"gaurav.kumar@example.com", "contact":"9876543210", "gstin":"29XAbbA4369J1PA", "notes":{ "note_key_1":"September", "note_key_2":"Make it so." }, "created_at ":1234567890 } ] } ``` ------------------------------------------------------------------------------------------------------- ### Fetch Customer by ID ```js instance.customers.fetch(customerId) ``` **Parameters:** | Name | Type | Description | |---------------|-------------|---------------------------------------------| | customerId* | string | The id of the customer to be fetched | **Response:** ```json { "id": "cust_JcXKNTu2YDcbVh", "entity": "customer", "name": "Razorpay User", "email": "customer@razorpay.com", "contact" : "9999999999", "gstin": null, "notes": { "notes_key_1": "Tea, Earl Grey, Hot", "notes_key_2": "Tea, Earl Grey… decaf" }, "created_at": 1654153339 } ``` ------------------------------------------------------------------------------------------------------- ### Add Bank Account of Customer ```js var customerId = "cust_N5mywh91sXB69O" instance.customers.addBankAccount(customerId, { "ifsc_code" : "UTIB0000194", "account_number" :"916010082985661", "beneficiary_name" : "Pratheek", "beneficiary_address1" : "address 1", "beneficiary_address2" : "address 2", "beneficiary_address3" : "address 3", "beneficiary_address4" : "address 4", "beneficiary_email" : "random@email.com", "beneficiary_mobile" : "8762489310", "beneficiary_city" :"Bangalore", "beneficiary_state" : "KA", "beneficiary_country" : "IN" }); ``` **Parameters:** | Name | Type | Description | |---------------|-------------|---------------------------------------------| | customerId* | string | Customer's bank account number | | account_number | integer | The id of the customer to be fetched | | account_number | string | The name of the beneficiary associated with the bank account. | | beneficiary_name | string | The virtual payment address. | | beneficiary_address1 | string | The id of the customer to be fetched | | beneficiary_email | string | Email address of the beneficiary. | | beneficiary_mobile | integer | Mobile number of the beneficiary. | | beneficiary_city | string | The name of the city of the beneficiary. | | beneficiary_state | string | The state of the beneficiary. | | beneficiary_pin | interger | The pin code of the beneficiary's address. | | ifsc_code | string | The IFSC code of the bank branch associated with the account. | **Response:** ```json { "id" : "cust_1Aa00000000001", "entity": "customer", "name" : "Saurav Kumar", "email" : "Saurav.kumar@example.com", "contact" : "+919000000000", "gstin":"29XAbbA4369J1PA", "notes" : [], "created_at ": 1234567890 } ``` ------------------------------------------------------------------------------------------------------- ### Delete Bank Account of Customer ```js var customerId = "cust_N5mywh91sXB69O" var bankAccountId = "ba_N6aM8uo64IzxHu" instance.customers.deleteBankAccount(customerId, bankAccountId); ``` **Parameters:** | Name | Type | Description | |---------------|-------------|---------------------------------------------| | customerId* | string | Customer's bank account number | | bank_id | string | The bank_id that needs to be deleted. | **Response:** ```json { "id": "ba_Evg09Ll05SIPSD", "ifsc": "ICIC0001207", "bank_name": "ICICI Bank", "name": "Test R4zorpay", "account_number": "XXXXXXXXXXXXXXX0434", "status": "deleted" } ``` ------------------------------------------------------------------------------------------------------- ### Eligibility Check API ```js instance.customers.requestEligibilityCheck({ "inquiry": "affordability", "amount": 500000, "currency": "INR", "customer": { "id": "cust_KhP5dO1dKmc0Rm", "contact": "+918220276214", "ip": "105.106.107.108", "referrer": "https://merchansite.com/example/paybill", "user_agent": "Mozilla/5.0" } }) ``` **Parameters:** | Name | Type | Description | |---------------|-------------|---------------------------------------------| | inquiry | string | List of methods or instruments on which eligibility check is required. Possible value is `affordability`. | | amount* | string | The amount for which the order was created, in currency subunits. For example, for an amount of ₹295, enter `29500`. | | currency* | string | Possible value is `INR`. | | customer | object | All keys listed [here](https://razorpay.com/docs/payments/payment-gateway/affordability/eligibility-check/#request-parameters) are supported | | instruments | object | All keys listed [here](https://razorpay.com/docs/payments/payment-gateway/affordability/eligibility-check/#request-parameters) are supported | **Response:** ```json { "amount": "500000", "customer": { "id": "KkBhM9EC1Y0HTm", "contact": "+918220722114" }, "instruments": [ { "method": "emi", "issuer": "HDFC", "type": "debit", "eligibility_req_id": "elig_KkCNLzlNeMYQyZ", "eligibility": { "status": "eligible" } }, { "method": "paylater", "provider": "getsimpl", "eligibility_req_id": "elig_KkCNLzlNeMYQyZ", "eligibility": { "status": "eligible" } }, { "method": "paylater", "provider": "icic", "eligibility_req_id": "elig_KkCNLzlNeMYQyZ", "eligibility": { "status": "eligible" } }, { "method": "cardless_emi", "provider": "walnut369", "eligibility_req_id": "elig_KkCNLzlNeMYQyZ", "eligibility": { "status": "ineligible", "error": { "code": "GATEWAY_ERROR", "description": "The customer has not been approved by the partner.", "source": "business", "step": "inquiry", "reason": "user_not_approved" } } }, { "method": "cardless_emi", "provider": "zestmoney", "eligibility_req_id": "elig_KkCNLzlNeMYQyZ", "eligibility": { "status": "ineligible", "error": { "code": "GATEWAY_ERROR", "description": "The customer has exhausted their credit limit.", "source": "business", "step": "inquiry", "reason": "credit_limit_exhausted" } } }, { "method": "paylater", "provider": "lazypay", "eligibility_req_id": "elig_KkCNLzlNeMYQyZ", "eligibility": { "status": "ineligible", "error": { "code": "GATEWAY_ERROR", "description": "The order amount is less than the minimum transaction amount.", "source": "business", "step": "inquiry", "reason": "min_amt_required" } } } ] } ``` ------------------------------------------------------------------------------------------------------- ### Fetch Eligibility by id ```js var eligibilityId = 'elig_F1cxDoHWD4fkQt' instance.customers.fetchEligibility(eligibilityId); ``` **Parameters:** | Name | Type | Description | |---------------|-------------|---------------------------------------------| | customerId* | string | Customer's bank account number | | bank_id | string | The bank_id that needs to be deleted. | **Response:** ```json { "instruments": [ { "method": "paylater", "provider": "lazypay", "eligibility_req_id": "elig_LBwGKVvS2X48Lq", "eligibility": { "status": "eligible" } }, { "method": "paylater", "provider": "getsimpl", "eligibility_req_id": "elig_LBwGKVvS2X48Lq", "eligibility": { "status": "ineligible", "error": { "code": "GATEWAY_ERROR", "description": "The customer has exhausted their credit limit", "source": "gateway", "step": "inquiry", "reason": "credit_limit_exhausted" } } } ] } ``` ------------------------------------------------------------------------------------------------------- **PN: * indicates mandatory fields**

**For reference click [here](https://razorpay.com/docs/api/customers/)**