Transfers API
Initiate and manage fund transfers including bank transfers, CBDC transfers, payouts, and inter-account movements.
Base:
/v1/QuickPayTransferDto, /v1/FinancialDashboardEndpoints
GET
/v1/QuickPayTransferDtoList Transfers
Retrieve a paginated list of transfers with OData filtering. Uses the QuickPay transfer service for typed OData queries.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| $filter | string | Optional | OData filter. e.g. transferAction eq 'BankTransfer' |
| $orderby | string | Optional | Sort order |
| $top | number | Optional | Page size |
| $skip | number | Optional | Offset |
Response
{
"value": [
{
"id": 1,
"referenceNumber": "TXF-2024-001",
"transferAction": "BankTransfer",
"sourceAccountId": 1,
"destinationAccountNumber": "1234567890",
"amount": 500.00,
"fee": 5.00,
"currencyCode": "USD",
"status": "Completed",
"feePayer": "Sender",
"createdDateTime": "2024-03-15T10:00:00Z"
}
]
}GET
/v1/FinancialDashboard/transfersTransfers Dashboard
Retrieve transfer analytics including type breakdown, status breakdown, time series, and fee payer distribution.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| startDate | string | Optional | ISO date string |
| endDate | string | Optional | ISO date string |
| currencyCode | string | Optional | Currency filter |
| institutionId | number | Optional | Institution filter |
| timeUnit | string | Optional | Day | Week | Month |
Response
{
"summary": {
"totalTransfers": 1250,
"totalSourceAmount": 625000.00,
"totalPayoutAmount": 618750.00,
"totalFees": 6250.00,
"averageAmount": 500.00,
"completionRate": 98.5
},
"typeBreakdown": [
{ "requestType": "BankTransfer", "count": 800, "totalAmount": 400000, "totalFees": 4000 },
{ "requestType": "Transfer", "count": 350, "totalAmount": 175000, "totalFees": 1750 },
{ "requestType": "CBDCTransfer", "count": 100, "totalAmount": 50000, "totalFees": 500 }
],
"statusBreakdown": [
{ "status": "Completed", "count": 1231, "totalAmount": 615500 },
{ "status": "Processing", "count": 15, "totalAmount": 7500 },
{ "status": "Failed", "count": 4, "totalAmount": 2000 }
],
"timeSeries": [
{ "date": "2024-03-01", "count": 42, "totalSourceAmount": 21000, "totalPayoutAmount": 20790, "totalFees": 210 }
],
"feePayerBreakdown": [
{ "feePayer": "Sender", "count": 900, "totalFeeAmount": 4500 },
{ "feePayer": "Receiver", "count": 250, "totalFeeAmount": 1250 },
{ "feePayer": "Both", "count": 100, "totalFeeAmount": 500 }
]
}GET
/v1/FinancialDashboard/payoutsPayouts Dashboard
Retrieve payout batch analytics including batch summaries, status breakdown, and disbursement tracking.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| startDate | string | Optional | ISO date string |
| endDate | string | Optional | ISO date string |
| currencyCode | string | Optional | Currency filter |
| timeUnit | string | Optional | Day | Week | Month |
Response
{
"summary": {
"totalBatches": 50,
"totalAmount": 250000.00,
"totalDisbursed": 245000.00,
"pendingAmount": 5000.00,
"completionRate": 98.0,
"totalEntries": 1500,
"totalSucceeded": 1480,
"totalFailed": 20
},
"statusBreakdown": [...],
"timeSeries": [...],
"transferTypeSummary": [...],
"batchTypeSummary": [...]
}Enums
TransferAction
RequestQrCode
RequestPaymentLink
RequestTransfer
ExecuteTransfer
ATMCashPickUp
ATMCashOut
CashIn
CashOut
CBDCTransfer
CBDCTransferReceived
BankTransfer
BankWithdrawal
FeePayer
Sender
Receiver
Both
Types
TransfersDashboardResponse
interface TransfersDashboardResponse {
summary: {
totalTransfers: number;
totalSourceAmount: number;
totalPayoutAmount: number;
totalFees: number;
averageAmount: number;
completionRate: number; // Percentage
};
typeBreakdown: TransferTypeBreakdown[];
statusBreakdown: TransferStatusBreakdown[];
timeSeries: TransferTimeSeriesItem[];
feePayerBreakdown: FeePayerBreakdown[];
}PayoutsDashboardResponse
interface PayoutsDashboardResponse {
summary: {
totalBatches: number;
totalAmount: number;
totalDisbursed: number;
pendingAmount: number;
completionRate: number;
totalEntries: number;
totalSucceeded: number;
totalFailed: number;
};
statusBreakdown: PayoutStatusBreakdown[];
timeSeries: PayoutTimeSeriesItem[];
transferTypeSummary: PayoutTransferTypeSummary[];
batchTypeSummary: PayoutBatchTypeSummary[];
}Usage Examples
Transfer dashboard with React Query
TypeScript
import { useFinancialDashboard } from '@/hooks/use-financial-dashboard';
function TransfersDashboard() {
const { data, isLoading } = useFinancialDashboard('transfers', {
startDate: '2024-03-01',
endDate: '2024-03-31',
currencyCode: 'USD',
timeUnit: 'Day',
});
if (isLoading) return <Skeleton />;
return (
<div>
<StatsCard
title="Total Transfers"
value={data.summary.totalTransfers}
/>
<StatsCard
title="Completion Rate"
value={`${data.summary.completionRate}%`}
/>
<TransferChart data={data.timeSeries} />
</div>
);
}Query transfers with OData
TypeScript
import { QuickPayApi } from '@/lib/api/quickpay-api-client';
// Typed OData queries via generated service
const service = QuickPayApi.getService();
const transfers = await service.query((q) =>
q.filter((f) => f.transferAction.equals('BankTransfer'))
.orderBy((o) => o.createdDateTime.desc())
.top(20)
);