Skip to content

Commit

Permalink
Added expanded type (#394)
Browse files Browse the repository at this point in the history
  • Loading branch information
ankitdas13 authored May 7, 2024
1 parent 651f175 commit c225f94
Show file tree
Hide file tree
Showing 2 changed files with 260 additions and 45 deletions.
192 changes: 191 additions & 1 deletion documents/payment.md
Original file line number Diff line number Diff line change
Expand Up @@ -877,7 +877,197 @@ instance.iins.fetch(tokenIin);
}
```
-------------------------------------------------------------------------------------------------------

### Fetch a Payment (With Expanded Card Details)

```js
var paymentId = "pay_MLzFlOC98cJmHQ";

instance.payments.fetch(paymentId, {"expand[]": "card"});
```

| Name | Type | Description |
|-------------|---------|--------------------------------------|
| paymentId* | integer | Unique identifier of the payment |
| expand[] | string | Use to expand the card details when the payment method is `card`. |

**Response:**
```json
{
"id": "pay_H9oR0gLCaVlV6m",
"entity": "payment",
"amount": 100,
"currency": "INR",
"status": "failed",
"order_id": "order_H9o58N6qmLYQKC",
"invoice_id": null,
"terminal_id": "term_G5kJnYM9GhhLYT",
"method": "card",
"amount_refunded": 0,
"refund_status": null,
"captured": false,
"description": null,
"card_id": "card_H9oR0ocen1cmZq",
"card": {
"id": "card_H9oR0ocen1cmZq",
"entity": "card",
"name": "Gaurav",
"last4": "1213",
"network": "RuPay",
"type": "credit",
"issuer": "UTIB",
"international": false,
"emi": false,
"sub_type": "business"
},
"bank": null,
"wallet": null,
"vpa": null,
"email": "gaurav.kumar@example.com",
"contact": "+919000090000",
"notes": {
"email": "gaurav.kumar@example.com",
"phone": "09000090000"
},
"fee": null,
"tax": null,
"error_code": "BAD_REQUEST_ERROR",
"error_description": "Card issuer is invalid",
"error_source": "customer",
"error_step": "payment_authentication",
"error_reason": "incorrect_card_details",
"acquirer_data": {
"auth_code": null,
"authentication_reference_number": "100222021120200000000742753928"
},
"created_at": 1620807547
}
```
-------------------------------------------------------------------------------------------------------

### Fetch a Payment (With Expanded Offers Details)

```js
var paymentId = "pay_MLzFlOC98cJmHQ";

instance.payments.fetch(paymentId, {"expand[]": "emi"});
```

**Parameters:**

| Name | Type | Description |
|-------------|---------|--------------------------------------|
| paymentId* | integer | Unique identifier of the payment |
| expand[] | string | Use to expand the emi details when the payment method is emi. |

**Response:** <br>

```json
{
"id": "pay_DG4ZdRK8ZnXC3k",
"entity": "payment",
"amount": 200000,
"currency": "INR",
"status": "authorized",
"order_id": null,
"invoice_id": null,
"international": false,
"method": "emi",
"amount_refunded": 0,
"refund_status": null,
"captured": false,
"description": null,
"card_id": "card_DG4ZdUO3xABb20",
"bank": "ICIC",
"wallet": null,
"vpa": null,
"email": "gaurav@example.com",
"contact": "+919972000005",
"notes": [],
"fee": null,
"tax": null,
"error_code": null,
"error_description": null,
"error_source": null,
"error_step": null,
"error_reason": null,
"emi": {
"issuer": "ICIC",
"rate": 1300,
"duration": 6
},
"acquirer_data": {
"auth_code": "828553"
},
"created_at": 1568026077
}
```

-------------------------------------------------------------------------------------------------------
### Fetch a Payment (With Expanded UPI Details)

```js
var paymentId = "pay_MLzFlOC98cJmHQ";

instance.payments.fetch(paymentId, {"expand[]": "upi"});
```

**Parameters:**

| Name | Type | Description |
|-------------|---------|--------------------------------------|
| paymentId* | integer | Unique identifier of the payment |
| expand[] | string | Use to expand the UPI details when the payment method is upi. |

**Response:** <br>

```json

{
"id": "pay_DG4ZdRK8ZnXC3k",
"entity": "payment",
"amount": 100,
"currency": "INR",
"status": "captured",
"order_id": "order_GjCr5oKh4AVC51",
"invoice_id": null,
"international": false,
"method": "upi",
"amount_refunded": 0,
"refund_status": null,
"captured": true,
"description": "Payment for Adidas shoes",
"card_id": null,
"bank": null,
"wallet": null,
"vpa": "gaurav.kumar@upi",
"email": "gaurav.kumar@example.com",
"contact": "9000090000",
"customer_id": "cust_K6fNE0WJZWGqtN",
"token_id": "token_KOdY$DBYQOv08n",
"notes": [],
"fee": 1,
"tax": 0,
"error_code": null,
"error_description": null,
"error_source": null,
"error_step": null,
"error_reason": null,
"acquirer_data": {
"rrn": "303107535132"
},
"created_at": 1605871409,
"upi": {
"payer_account_type": "credit_card",
"vpa": "gaurav.kumar@upi",
"flow": "in_app"
}
}
```

-------------------------------------------------------------------------------------------------------

**PN: * indicates mandatory fields**
<br>
<br>
**For reference click [here](https://razorpay.com/docs/api/payments/)**
**For reference click [here](https://razorpay.com/docs/api/payments/)**
113 changes: 69 additions & 44 deletions lib/types/payments.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,16 @@ export declare namespace Payments {
* The unique identifier of the customer you want to charge.
*/
customer_id: string;
/**
* The unique identifier of the subscription.
*/
subscription_id?: string;
/**
* The authentication channel for the payment. Possible value is `browser` or `app`
*/
authentication?: {
authentication_channel: string;
};
}

interface RazorpayPaymentCreateRequestBody extends RazorpayPaymentBaseRequestBody { }
Expand Down Expand Up @@ -230,6 +240,10 @@ export declare namespace Payments {
* The last 4 digits of the tokenised card.
*/
last4?: string;
/**
* The name of the aggregator that provided the token. Possible values are `Visa`, `Mastercard`, `Amex` or `HDFC for Diners`
*/
provider_type?: string;
}

interface RazorpayCardCreateRequest extends RazorpayCardBaseRequestBody { }
Expand Down Expand Up @@ -422,7 +436,7 @@ export declare namespace Payments {
/**
* Details of the expiry of the UPI link
*/
upi: {
upi?: {
/**
* Specify the type of the UPI payment flow.
* Possible values: `collect` (default), `intent`
Expand All @@ -435,6 +449,10 @@ export declare namespace Payments {
*/
expiry_time?: number;
}
/**
* Token of the saved VPA.
*/
token?: string;
}

interface RazorpayPaymentQuery extends RazorpayPaginationOptions {
Expand All @@ -451,54 +469,51 @@ export declare namespace Payments {
*/
authentication_channel: 'browser' | 'app'
}
}

interface BrowserInfo {
/**
* Information regarding the customer's browser.
* This parameter need not be passed when `authentication_channel=app`.
* Indicates whether the customer's browser supports Java.
* Obtained from the `navigator` HTML DOM object.
*/
browser?: {
/**
* Indicates whether the customer's browser supports Java.
* Obtained from the `navigator` HTML DOM object.
*/
java_enabled: boolean;
/**
* ndicates whether the customer's browser is able to execute JavaScript.
* Obtained from the `navigator` HTML DOM object.
*/
javascript_enabled: boolean;
/**
* Time difference between UTC time and the cardholder browser local time.
* Obtained from the `getTimezoneOffset()` method applied to Date object.
*/
timezone_offset: number;
/**
* Total width of the payer's screen in pixels.
* Obtained from the `screen.width` HTML DOM property.
*/
screen_width: number;
/**
* Obtained from the `navigator` HTML DOM object.
*/
screen_height: number;
/**
* Obtained from payer's browser using
* the `screen.colorDepth` HTML DOM property.
*/
color_depth: string;
/**
* Obtained from payer's browser using the navigator.
* language HTML DOM property. Maximum limit of 8 characters.
*/
language: string;
}
java_enabled: boolean;
/**
* Indicates whether the customer's browser is able to execute JavaScript.
* Obtained from the `navigator` HTML DOM object.
*/
javascript_enabled: boolean;
/**
* Time difference between UTC time and the cardholder browser local time.
* Obtained from the `getTimezoneOffset()` method applied to Date object.
*/
timezone_offset: number | string;
/**
* Total width of the payer's screen in pixels.
* Obtained from the `screen.width` HTML DOM property.
*/
screen_width: number | string;
/**
* Obtained from the `navigator` HTML DOM object.
*/
screen_height: number | string;
/**
* Obtained from payer's browser using
* the `screen.colorDepth` HTML DOM property.
*/
color_depth: number | string;
/**
* Obtained from payer's browser using the navigator.
* language HTML DOM property. Maximum limit of 8 characters.
*/
language: string;
}

interface RazorpayPaymentS2SCreateRequestBody extends RazorpayPaymentBaseRequestBody {
save:boolean | number;
save: boolean | number;
/**
* Pass the unique token id created when the customer made the first payment.
*/
token?:string;
token?: string;
/**
* Pass the sub-merchant's unique identifier.
*/
Expand All @@ -517,6 +532,12 @@ export declare namespace Payments {
* Default value will be passed by Razorpay if not provided by merchant.
*/
user_agent: string | null;
provider_name?: string;
/**
* Information regarding the customer's browser.
* This parameter need not be passed when `authentication_channel=app`.
*/
browser?: Partial<BrowserInfo>
}

interface RazorpayPaymentS2SJson {
Expand Down Expand Up @@ -555,6 +576,10 @@ export declare namespace Payments {
entity: string;
}

interface ExpandDetails {
'expand[]': 'card' | 'emi' | 'offers' | 'upi'
}

}

declare function payments(api: any): {
Expand All @@ -581,8 +606,8 @@ declare function payments(api: any): {
* @param params - Check [doc](https://razorpay.com/docs/api/payments/#fetch-a-payment) for required params
*
*/
fetch(paymentId: string, params?: { 'expand[]': 'card' | 'emi' | 'offers' }): Promise<Payments.RazorpayPayment>
fetch(paymentId: string, params: { 'expand[]': 'card' | 'emi' | 'offers' }, callback: (err: INormalizeError | null, data: Payments.RazorpayPayment) => void): void
fetch(paymentId: string, params?: Payments.ExpandDetails): Promise<Payments.RazorpayPayment>
fetch(paymentId: string, params: Payments.ExpandDetails, callback: (err: INormalizeError | null, data: Payments.RazorpayPayment) => void): void
/**
* Capture payment
*
Expand Down Expand Up @@ -820,4 +845,4 @@ declare function payments(api: any): {
fetchPaymentDowntimeById(downtimeId: string, callback: (err: INormalizeError | null, data: Payments.RazorpayPaymentDowntime) => void): void
}

export default payments
export default payments

0 comments on commit c225f94

Please sign in to comment.