@bebapps/rapyd-sdk
Version:
An un-official [Rapyd](https://rapyd.net) SDK for Node.js.
72 lines (64 loc) • 3.3 kB
text/typescript
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>();
}