-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathflutterwave-wallets-api-openapi.yml
More file actions
149 lines (149 loc) · 4.37 KB
/
flutterwave-wallets-api-openapi.yml
File metadata and controls
149 lines (149 loc) · 4.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
openapi: 3.1.0
info:
title: Flutterwave Wallets API
description: |
Flutterwave v4 wallet APIs for checking currency wallet balances, retrieving
wallet statements, and resolving wallet account details for customers.
version: '4.0.0'
contact:
name: Flutterwave
url: https://developer.flutterwave.com
email: developers@flutterwavego.com
license:
name: Flutterwave Terms of Service
url: https://flutterwave.com/us/terms
servers:
- url: https://api.flutterwave.cloud/f4b/production
description: Production
- url: https://api.flutterwave.cloud/f4b/sandbox
description: Sandbox
security:
- OAuth2: []
tags:
- name: Wallets
description: Inspect currency wallet balances and statements.
- name: AccountResolution
description: Resolve customer wallet account details.
paths:
/wallet-account/resolve:
post:
summary: Wallet Account Look Up
description: Verify wallet account information for a customer.
operationId: resolveWalletAccount
tags: [AccountResolution]
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [account_number, mobile_network]
properties:
account_number: { type: string }
mobile_network: { type: string }
country: { type: string }
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/WalletAccount'
/wallet-balances:
get:
summary: Fetch Wallet Balance For Multiple Currencies
operationId: listWalletBalances
tags: [Wallets]
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/WalletBalanceList'
/wallet-balances/{currency}:
parameters:
- in: path
name: currency
required: true
schema: { type: string, example: NGN }
get:
summary: Fetch A Currency Wallet Balance
operationId: getWalletBalance
tags: [Wallets]
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/WalletBalance'
/wallets/statement:
get:
summary: Retrieve Wallet Statement
operationId: getWalletStatement
tags: [Wallets]
parameters:
- in: query
name: currency
required: true
schema: { type: string }
- in: query
name: from
schema: { type: string, format: date }
- in: query
name: to
schema: { type: string, format: date }
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/WalletStatement'
components:
securitySchemes:
OAuth2:
type: oauth2
flows:
clientCredentials:
tokenUrl: https://idp.flutterwave.com/realms/flutterwave/protocol/openid-connect/token
scopes: {}
schemas:
WalletAccount:
type: object
properties:
account_number: { type: string }
account_name: { type: string }
mobile_network: { type: string }
country: { type: string }
WalletBalance:
type: object
properties:
currency: { type: string }
available_balance: { type: number }
ledger_balance: { type: number }
pending_balance: { type: number }
WalletBalanceList:
type: object
properties:
data:
type: array
items: { $ref: '#/components/schemas/WalletBalance' }
WalletStatement:
type: object
properties:
currency: { type: string }
opening_balance: { type: number }
closing_balance: { type: number }
entries:
type: array
items:
type: object
properties:
id: { type: string }
amount: { type: number }
type: { type: string, enum: [credit, debit] }
narration: { type: string }
balance_after: { type: number }
created_datetime: { type: string, format: date-time }