@dieyne/wave-sn-api
v1.1.5
Published
Cette librarie permet d'accèder à l'API de WAVE au Sénégal
Readme
WAVE API
Cette librairie a pour objectif de simplifier l'accès à l'API Wave.
Que contient cette librairie ?
Checkout API
- Création d'un checkout, pour accepter les paiements.
- Récupération d'un checkout.
- Remboursement.
Payout API
- Versement unitaire, versement par lot, récupération d'un lot.
Balance & Reconciliation API
- Récupération du solde du compte.
- Relevé des transactions d'un jour, avec pagination.
- Remboursement d'une transaction.
Wave Signature Validation : pour vérifier si les requêtes sur les webhooks proviennent du serveur Wave.
Installation
npm i @dieyne/wave-sn-apiExemple d'utilisation
import { WaveSnAPI } from '@dieyne/wave-sn-api';
import { CheckoutApi } from '@dieyne/wave-sn-api/dist/checkout';
export function ExampleCheckout(){
// Initialisation de la lib en fournissant votre API KEY
const waveSnApi = await WaveSnAPI.init("Your API KEY HERE");
// Création d'une instance CheckoutApi
const waveCheckout:CheckoutApi = waveSnApi.newCheckoutApi();
// Create d'un nouvelle checkout
const result = await waveCheckout.createCheckoutSession({
amount: '100',
currency: 'XOF',
error_url: 'https://www.toto.com?error=true',
success_url: 'https://www.toto.com?success=true',
client_reference: 'toto_reference',
});
console.log(result);
}Balance & Reconciliation
Le relevé (getTransactions) est le seul endroit où Wave révèle qui a payé :
ni la session de paiement ni le webhook ne portent l'identité du payeur.
import { WaveSnAPI } from '@dieyne/wave-sn-api';
import { BalanceApi } from '@dieyne/wave-sn-api/dist/balance';
export async function ExampleBalance() {
const waveSnApi = await WaveSnAPI.init('Your API KEY HERE');
const waveBalance: BalanceApi = waveSnApi.newBalanceApi();
// Le solde du compte
const balance = await waveBalance.getBalance();
console.log(balance); // { amount: '10245', currency: 'XOF' }
// Le relevé d'un jour, page par page
const page = await waveBalance.getTransactions({ date: '2022-11-07' });
console.log(page.page_info.has_next_page, page.items.length);
// Ou le relevé complet, curseur suivi jusqu'au bout
const items = await waveBalance.getAllTransactions({ date: '2022-11-07' });
items.forEach((t) => {
console.log(t.counterparty_name, t.counterparty_mobile, t.checkout_api_session_id);
});
// Rembourser une transaction reçue, frais compris
await waveBalance.refundTransaction('T_VZSWJF5MMQ');
}