## Customer
```rb
require "razorpay"
Razorpay.setup('key_id', 'key_secret')
```
### Create customer
```rb
Razorpay::Customer.create({
"name": "Gaurav Kumar",
"contact": 9123456780,
"email": "gaurav.kumar@example.com",
"fail_existing": 0,
"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 `0` or `1`|
| 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
```rb
customerId = "cust_6vRXClWqnLhV14"
Razorpay::Customer.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
```rb
options = {"count": 2}
Razorpay::Customer.all(options)
```
**Parameters:**
| Name | Type | Description |
|---------------|-------------|---------------------------------------------|
| count | integer | number of payments to fetch (default: 10) |
| skip | integer | number of payments 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 a customer
```rb
customerId = "cust_6vRXClWqnLhV14"
Razorpay::Customer.fetch(customerId)
```
**Parameters:**
| Name | Type | Description |
|---------------|-------------|---------------------------------------------|
| customerId* | string | The id of the customer to be fetched |
**Response:**
```json
{
"id" : "cust_1Aa00000000001",
"entity": "customer",
"name" : "Saurav Kumar",
"email" : "Saurav.kumar@example.com",
"contact" : "+919000000000",
"gstin":"29XAbbA4369J1PA",
"notes" : [],
"created_at ": 1234567890
}
```
-------------------------------------------------------------------------------------------------------
**PN: * indicates mandatory fields**
**For reference click [here](https://razorpay.com/docs/api/customers/)**