UNPKG

mtn-momo-client

Version:

A collection of utils to interact with the mtn-momo api

52 lines (51 loc) 2.39 kB
import { AxiosInstance } from 'axios'; import { Product } from '../../types'; import { TransactionParty } from './types'; type RequestToPayResult = { /** * Resource ID of the created request to pay transaction. * This ID is used, for example, validating the status of the request. * ‘Universal Unique ID’ for the transaction generated using UUID version 4. */ referenceId: string; }; type RequestToPayOptions<T extends Product> = { /** Amount that will be debited from the payer account. */ amount: string; /** ISO4217 Currency */ currency: string; /** * External id is used as a reference to the transaction. * External id is used for reconciliation. * The external id will be included in transaction history report. * External id is not required to be unique. */ externalId: string; /** Message that will be written in the payer transaction history message field. */ payerMessage: string; /** Message that will be written in the payee transaction history note field. */ payeeNote: string; /** URL to the server where the callback should be sent. */ callbackURL?: string; } & TransactionParty<T>; type CreateTransactionInitiatorOptions<T extends Product> = { /** * The client to use when initiating a payment. * Its different for different product endpoint and different for different versions of the same product endpoints */ client: AxiosInstance; /** The target product */ targetProduct: T; }; type InitiateTransaction<T extends Product> = (options: RequestToPayOptions<T>) => Promise<RequestToPayResult>; type TransactionInitiatorCreator = <T extends Product>(options: CreateTransactionInitiatorOptions<T>) => InitiateTransaction<T>; /** * Creates a function to initiate an payment. * @param options Options to use when creating a function to initiate a payment. * @returns A function that is used to initiate a payment. The payer will be asked to authorize the payment. * The transaction will be executed once the payer has authorized the payment. * The payment request will be in status PENDING until the transaction is authorized or declined by the payer or it is timed out by the system. */ declare const createTransactionInitiator: TransactionInitiatorCreator; export { createTransactionInitiator }; export type { InitiateTransaction };