nasspay
Version:
TypeScript/JavaScript SDK for integrating with the Nass Merchant Payment Gateway. Supports both Portal and Direct API integration methods with comprehensive type definitions.
147 lines (146 loc) • 3.39 kB
TypeScript
export type Environment = "UAT" | "PRODUCTION";
export interface AuthCredentials {
username: string;
password: string;
}
export interface AuthResponse {
access_token: string;
}
export interface PortalTransactionRequest {
orderId: string;
orderDesc: string;
amount: number;
currency: string;
transactionType: string;
backRef: string;
notifyUrl?: string;
}
export interface PortalTransactionResponse {
success: boolean;
code: number;
status_code: number;
data: {
url: string;
pSign: string;
transactionParams: {
TERMINAL: string;
TRTYPE: string;
AMOUNT: string;
TIMESTAMP: string;
NONCE: string;
CURRENCY: string;
ORDER: string;
DESC: string;
MERCH_NAME: string;
MERCH_URL: string;
EMAIL: string;
COUNTRY: string;
MERCH_GMT: string;
BACKREF: string;
};
};
}
export interface CallbackResponse {
terminal: string;
actionCode: string;
responseCode: string;
statusMsg: string;
card: string;
amount: string;
currency: string;
tranDate: string;
rrn: string;
intRef: string;
nonce: string;
signature: string;
orderId: string;
timestamp: string;
}
export interface StatusCheckResponse {
success: boolean;
code: number;
status_code: number;
data: {
terminal: string;
actionCode: string;
responseCode: string;
statusMsg: string;
card: string;
amount: string;
currency: string;
tranDate: string;
rrn: string;
intRef: string;
nonce: string;
signature: string;
timestamp: string;
};
}
export interface DirectApiTransactionInitRequest {
orderId: string;
orderDesc: string;
amount: number;
currency: string;
transactionType: string;
}
export interface DirectApiTransactionInitResponseData {
url: string;
pSign: string;
transactionParams: {
TERMINAL: string;
TRTYPE: string;
AMOUNT: string;
TIMESTAMP: string;
NONCE: string;
CURRENCY: string;
ORDER: string;
DESC: string;
MERCH_NAME: string;
MERCH_URL: string;
EMAIL: string;
COUNTRY: string;
MERCH_GMT: string;
BACKREF: string;
};
}
export interface DirectApiTransactionInitResponse {
success: boolean;
code: number;
status_code: number;
data: DirectApiTransactionInitResponseData;
}
export interface CardDetails {
pan: string;
expMonth: string;
expYear: string;
cvc2: string;
cardholderName?: string;
cvc2ReasonCode?: "0" | "1" | "2" | "9";
}
export interface DirectApiCardholderDataRequest {
card: string;
expMonth: string;
expYear: string;
currency: string;
name?: string;
trtype: string;
terminal: string;
desc: string;
cvc2_rc?: "0" | "1" | "2" | "9";
orderId: string;
timestamp: string;
nonce: string;
p_sign: string;
amount: string;
cvc2: string;
backRefUrl: string;
}
export interface TransactionError {
responseCode: string;
description: string;
}
export interface NassErrorResponse {
message: string;
code?: number;
status?: number;
}