UNPKG

@bebapps/rapyd-sdk

Version:

An un-official [Rapyd](https://rapyd.net) SDK for Node.js.

72 lines (64 loc) 3.3 kB
import { RapydClient } from '../../../core/RapydClient'; import { Payout } from '../types/Payout'; import { PayoutError } from '../enums/PayoutError'; import { CreatePayoutRequest } from '../requests/CreatePayoutRequest'; import { ConfirmPayoutWithFXRequest } from '../requests/ConfirmPayoutWithFXRequest'; import { CompletePayoutRequest } from '../requests/CompletePayoutRequest'; import { RetrievePayoutRequest } from '../requests/RetrievePayoutRequest'; import { CancelPayoutRequest } from '../requests/CancelPayoutRequest'; import { ListPayoutsRequest } from '../requests/ListPayoutsRequest'; export async function createPayout<R = Payout>(client: RapydClient, request: CreatePayoutRequest): Promise<R> { const response = await client.post('/v1/payouts', { beneficiary: request.beneficiary, beneficiary_country: request.beneficiary_country, beneficiary_entity_type: request.beneficiary_entity_type, confirm_automatically: request.confirm_automatically, description: request.description, expiration: request.expiration, ewallet: request.ewallet, merchant_reference_id: request.merchant_reference_id, metadata: request.metadata, payout_amount: request.payout_amount, payout_currency: request.payout_currency, payout_method_type: request.payout_method_type, sender: request.sender, sender_amount: request.sender_amount, sender_country: request.sender_country, sender_currency: request.sender_currency, sender_entity_type: request.sender_entity_type, statement_descriptor: request.statement_descriptor, }); return await response.data<R, PayoutError>(); } export async function confirmPayoutWithFX<R = Payout>(client: RapydClient, request: ConfirmPayoutWithFXRequest): Promise<R> { const response = await client.post('/v1/payouts/confirm/{}', request.payout); return await response.data<R, PayoutError>(); } export async function completePayout<R = Payout>(client: RapydClient, request: CompletePayoutRequest): Promise<R> { const response = await client.post('/v1/payouts/complete/{}/{}', request.payout, request.amount); return await response.data<R, PayoutError>(); } export async function retrievePayout<R = Payout>(client: RapydClient, request: RetrievePayoutRequest): Promise<R> { const response = await client.get('/v1/payouts/{}', request.payout); return await response.data<R, PayoutError>(); } export async function cancelPayout<R = Payout>(client: RapydClient, request: CancelPayoutRequest): Promise<R> { const response = await client.delete('/v1/payouts/{}', request.payout); return await response.data<R, PayoutError>(); } export async function listPayouts<R = Payout>(client: RapydClient, request: ListPayoutsRequest): Promise<R> { const queryParams = client.queryParams({ beneficiary: request.beneficiary, ending_before: request.ending_before, ewallet: request.ewallet, invoice: request.invoice, limit: request.limit, merchant_reference_id: request.merchant_reference_id, payout_method_type: request.payout_method_type, sender: request.sender, starting_after: request.starting_after, subscription: request.subscription, }); const response = await client.get('/v1/payouts' + queryParams); return await response.data<R, PayoutError>(); }