3.0.0 • Published 2 years ago

@setu/upi-deep-links v3.0.0

Weekly downloads
42
License
MIT
Repository
github
Last release
2 years ago

Setu UPI Deeplinks: NodeJS SDK

@setu/upi-deep-links is a NodeJS SDK for accessing Setu’s UPI Deeplinks APIs. The SDK is designed with ease of access in mind, with full TypeScript support.

Version Downloads Size License

Getting started

SDK documentation →
Full documentation →
Product overview →

Installation

  • npm
npm install @setu/upi-deep-links
  • yarn
yarn add @setu/upi-deep-links

Features

  • Full support for latest UPI Deeplinks APIs
  • Type definitions for all inputs & outputs
  • Allows both JWT & OAuth authentication mechanisms
  • SANDBOX mode to test integration & PRODUCTION for live data
  • Internal mechanism for OAuth authentication to automatically re-fetch token when current one expires, and retry all failed requests.

Examples

Setup

import { SetuUPIDeepLink } from "@setu/upi-deep-links";

const upidl = SetuUPIDeepLink({
    schemeID: "5bf4376b-6008-43c8-8ce0-a5ea196e3091",
    secret: "9975fd99-d5ed-416a-9963-5d113dc80582",
    productInstanceID: "861023031961584801",
    mode: "SANDBOX",
    authType: "JWT",
});

Generate UPI payment link

const paymentLinkBody = {
    amountValue: 20000, // amount in paisa
    billerBillID: "918147077472", // Unique merchant platform identifier for bill
    amountExactness: "EXACT",
    // Optional fields
    settlement: {
        parts: [
            {
                account: {
                    id: "987654321",
                    ifsc: "KKBK0000001",
                },
                remarks: "EXACT sample split",
                split: {
                    unit: "INR",
                    value: 10000,
                },
            },
        ],
        primaryAccount: {
            id: "123456789",
            ifsc: "KKBK0000001",
        },
    },
};

const data = await upiDL.createPaymentLink(paymentLinkBody);

Check status of UPI payment link

const data = await upiDL.checkPaymentStatus("891365293916423373");

Trigger mock payment for UPI payment link (Sandbox only)

const data = await upidl.triggerMockPayment({
    amountValue: 200, // amount in rupees
    platformBillID: "891365293916423373",
    vpa: "nareshlocal@kaypay", // Merchant VPA
});

Expire a UPI payment link

const data = await upiDL.expireBill("891365293916423373");

Initiate refunds

const data = await upiDL.initiateRefund({
    refunds: [
        {
            identifier: platformBillID,
            identifierType: "BILL_ID",
            refundType: "FULL",
            deductions: [
                {
                    account: {
                        id: "123456789",
                        ifsc: "KKBK0000001",
                    },
                    split: {
                        unit: "INR",
                        value: 10000,
                    },
                },
                {
                    account: {
                        id: "987654321",
                        ifsc: "KKBK0000001",
                    },
                    split: {
                        unit: "INR",
                        value: 10000,
                    },
                },
            ],
        },
    ],
});

Get refund batch status

const data = await upiDL.getRefundBatchStatus(initiateRefundResponse.batchID);

Get individual refund status

const data = await upiDL.getRefundStatus(getRefundBatchStatusResponse.refunds[0].id);

Contributing

Have a look through existing Issues and Pull Requests that you could help with. If you'd like to request a feature or report a bug, please create a GitHub Issue using the template provided.

See contribution guide →

License

MIT. Have at it.

3.0.0

2 years ago

2.1.2

2 years ago

2.1.1

2 years ago

2.1.3

2 years ago

2.1.0

2 years ago

1.3.0

2 years ago

1.2.3

3 years ago

1.2.2

3 years ago

1.2.0

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.1

4 years ago

1.0.0

4 years ago