@plutosone/ibmb-pa-sdk
v1.0.0
Published
SDK for Payment Aggregators to interact with IBMB-PA-Nest APIs
Readme
IBMB-PA-SDK
SDK for Payment Aggregators to interact with IBMB-PA-Nest APIs.
Installation
Install the SDK using npm:
npm install ibmb-pa-sdkUsage
Initializing the Client
First, you need to initialize the IBMPAClient with your API key and secret.
import { IBMPAClient } from 'ibmb-pa-sdk';
const client = new IBMPAClient({
apiKey: 'YOUR_API_KEY',
apiSecret: 'YOUR_API_SECRET',
baseUrl: 'https://api.ibmb.com', // Optional: Defaults to the production URL
});Authentication
You can generate and verify authentication tokens using the auth module.
import { ApiError } from 'ibmb-pa-sdk/errors';
async function main() {
try {
// Generate a token
const generateTokenResponse = await client.auth.generateToken({
organization: 'test-org',
secretKey: 'test-secret',
scopes: ['scope1', 'scope2'],
});
console.log('Generated Token:', generateTokenResponse);
// Verify a token
const verifyTokenResponse = await client.auth.verifyToken({
token: generateTokenResponse.token,
});
console.log('Verified Token:', verifyTokenResponse);
} catch (error) {
if (error instanceof ApiError) {
console.error(`API Error: ${error.message}`);
console.error(`Status Code: ${error.statusCode}`);
console.error(`Error Code: ${error.errorCode}`);
} else {
console.error('An unknown error occurred');
}
}
}
main();Transactions
You can initiate and check the status of transactions using the transaction module.
import { ApiError } from 'ibmb-pa-sdk/errors';
async function main() {
try {
const initResponse = await client.transaction.init({
orgID: 'ABC12',
transactionRefID: 'ABC122024ABCDE12345',
transactionTime: new Date().toISOString(),
initiationMode: 'INTENT',
paID: 'ABC12',
paName: 'Test PA',
merchantCode: '1234',
merchantID: 'ABC12ABCDE12345',
merchantName: 'Test Merchant',
amount: 100,
currency: 'INR',
mobile: '919876543210',
});
console.log('Initiate Transaction Response:', initResponse);
} catch (error) {
if (error instanceof ApiError) {
console.error(`API Error: ${error.message}`);
console.error(`Status Code: ${error.statusCode}`);
console.error(`Error Code: ${error.errorCode}`);
} else {
console.error('An unknown error occurred');
}
}
}
main();Error Handling
The SDK throws an ApiError when an API request fails. You can catch this error to get more details about the failure.
import { ApiError } from 'ibmb-pa-sdk/errors';
try {
// Make an API call
} catch (error) {
if (error instanceof ApiError) {
console.error(`API Error: ${error.message}`);
console.error(`Status Code: ${error.statusCode}`);
console.error(`Error Code: ${error.errorCode}`);
} else {
console.error('An unknown error occurred');
}
}The ApiError class has the following properties:
message: A human-readable error message.statusCode: The HTTP status code of the response.errorCode: A specific error code from the API response body (e.g., 'ORG_NOT_FOUND').
API Reference
IBMPAClient
The main client for interacting with the API.
auth: An instance of theAuthmodule.transaction: An instance of theTransactionmodule.
Auth Module
generateToken(request: GenerateTokenRequest): Promise<GenerateTokenResponse>: Generates an authentication token.verifyToken(request: VerifyTokenRequest): Promise<VerifyTokenResponse>: Verifies an authentication token.
Transaction Module
init(dto: BankInitRequestDto): Promise<Acknowledgement>: Initiates a new transaction.check(dto: BankCheckRequestDto): Promise<Acknowledgement>: Checks the status of a transaction.
Development
Building the SDK
To build the SDK, run the following command:
npm run buildThis will compile the TypeScript code to JavaScript in the dist directory.
Running Tests
To run the tests, use the following command:
npm testLinting and Formatting
To lint the code, run:
npm run lintTo format the code, run:
npm run formatLicense
This SDK is licensed under the MIT License.
