@mojaloop/api-snippets 17.0.0 → 17.0.2-snapshot.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/docs/sdk-scheme-adapter-backend-v2_0_0-openapi3-snippets.yaml +2744 -0
  3. package/docs/sdk-scheme-adapter-outbound-v2_0_0-openapi3-snippets.yaml +40 -8
  4. package/lib/example.d.ts +1 -1
  5. package/lib/sdk-scheme-adapter/v2_0_0/{inbound → backend}/index.d.ts +0 -0
  6. package/lib/sdk-scheme-adapter/v2_0_0/{inbound → backend}/index.js +0 -0
  7. package/lib/sdk-scheme-adapter/v2_0_0/{inbound → backend}/index.js.map +1 -1
  8. package/lib/sdk-scheme-adapter/v2_0_0/{inbound → backend}/json-schemas.json +9599 -9297
  9. package/lib/sdk-scheme-adapter/v2_0_0/backend/openapi.d.ts +4505 -0
  10. package/lib/sdk-scheme-adapter/v2_0_0/{inbound → backend}/openapi.js +0 -0
  11. package/lib/sdk-scheme-adapter/v2_0_0/backend/openapi.js.map +1 -0
  12. package/lib/sdk-scheme-adapter/v2_0_0/{inbound → backend}/schemas.d.ts +3224 -3277
  13. package/lib/sdk-scheme-adapter/v2_0_0/{inbound → backend}/schemas.js +52 -58
  14. package/lib/sdk-scheme-adapter/v2_0_0/backend/schemas.js.map +1 -0
  15. package/lib/sdk-scheme-adapter/v2_0_0/{inbound → backend}/types.d.ts +52 -58
  16. package/lib/sdk-scheme-adapter/v2_0_0/{inbound → backend}/types.js +0 -0
  17. package/lib/sdk-scheme-adapter/v2_0_0/backend/types.js.map +1 -0
  18. package/lib/sdk-scheme-adapter/v2_0_0/index.d.ts +2 -2
  19. package/lib/sdk-scheme-adapter/v2_0_0/index.js +3 -3
  20. package/lib/sdk-scheme-adapter/v2_0_0/outbound/json-schemas.json +63 -7
  21. package/lib/sdk-scheme-adapter/v2_0_0/outbound/openapi.d.ts +186 -6
  22. package/lib/sdk-scheme-adapter/v2_0_0/outbound/schemas.d.ts +63 -7
  23. package/lib/sdk-scheme-adapter/v2_0_0/outbound/schemas.js +1 -1
  24. package/lib/sdk-scheme-adapter/v2_0_0/outbound/schemas.js.map +1 -1
  25. package/lib/sdk-scheme-adapter/v2_0_0/outbound/types.d.ts +1 -1
  26. package/package.json +23 -23
  27. package/sdk-scheme-adapter/v2_0_0/backend/openapi.yaml +1723 -0
  28. package/sdk-scheme-adapter/v2_0_0/components/schemas/individualQuote.yaml +2 -0
  29. package/sdk-scheme-adapter/v2_0_0/components/schemas/individualTransfer.yaml +2 -0
  30. package/sdk-scheme-adapter/v2_0_0/components/schemas/transferRequest.yaml +2 -0
  31. package/sdk-scheme-adapter/v2_0_0/components/schemas/transferResponse.yaml +2 -0
  32. package/docs/sdk-scheme-adapter-inbound-v2_0_0-openapi3-snippets.yaml +0 -2889
  33. package/lib/sdk-scheme-adapter/v2_0_0/inbound/openapi.d.ts +0 -4350
  34. package/lib/sdk-scheme-adapter/v2_0_0/inbound/openapi.js.map +0 -1
  35. package/lib/sdk-scheme-adapter/v2_0_0/inbound/schemas.js.map +0 -1
  36. package/lib/sdk-scheme-adapter/v2_0_0/inbound/types.js.map +0 -1
  37. package/sdk-scheme-adapter/v2_0_0/inbound/openapi.yaml +0 -1074
@@ -0,0 +1,1723 @@
1
+ openapi: 3.0.1
2
+ info:
3
+ title: Mojaloop SDK Backend API
4
+ description: |
5
+ API specification for the SDK Backend API.
6
+
7
+ To be implemented by the Digital Financial Service Provider (DFSP) to work in tandem with the Mojaloop SDK (`mojaloop/sdk-scheme-adapter`).
8
+
9
+ This API is not to be confused with the Mojaloop SDK's Inbound or Outbound API.
10
+
11
+ TODO: More explanation and links about the SDK adapter's Inbound and Outbound API.
12
+
13
+ **Note on terminology:** The term "Switch" is equal to the term "Hub", and the term "FSP" is equal to the term "DFSP".
14
+ license:
15
+ name: Apache License Version 2.0, January 2004
16
+ url: http://www.apache.org/licenses/
17
+ version: 1.1.0
18
+
19
+ paths:
20
+ /:
21
+ get:
22
+ operationId: BackendHealthCheck
23
+ responses:
24
+ '200':
25
+ description: Returns empty body if the service is running.
26
+ summary: Health check endpoint.
27
+ /bulkQuotes:
28
+ post:
29
+ operationId: BackendBulkQuotesPost
30
+ requestBody:
31
+ content:
32
+ application/json:
33
+ schema:
34
+ $ref: '#/components/schemas/bulkQuoteRequest'
35
+ description: Incoming request for a bulk quotation.
36
+ responses:
37
+ '200':
38
+ content:
39
+ application/json:
40
+ schema:
41
+ $ref: '#/components/schemas/bulkQuoteResponse'
42
+ description: A response to the bulk quote request.
43
+ '400':
44
+ $ref: '#/components/responses/400'
45
+ '500':
46
+ $ref: '#/components/responses/500'
47
+ summary: Requests a bulk quote.
48
+ tags:
49
+ - BulkQuotes
50
+ /bulkQuotes/{idValue}:
51
+ get:
52
+ operationId: BackendBulkQuotesGet
53
+ parameters:
54
+ - $ref: '#/components/parameters/idValue'
55
+ responses:
56
+ '200':
57
+ content:
58
+ application/json:
59
+ schema:
60
+ $ref: '#/components/schemas/bulkQuoteResponse'
61
+ description: Response containing details of the requested bulk quote.
62
+ '400':
63
+ $ref: '#/components/responses/400'
64
+ '404':
65
+ $ref: '#/components/responses/404'
66
+ '500':
67
+ $ref: '#/components/responses/500'
68
+ summary: Requests information relating to a bulk quote identified by the specified identifier value.
69
+ tags:
70
+ - BulkQuotes
71
+ /bulkTransactions/{bulkTransactionId}:
72
+ put:
73
+ description: The HTTP request `PUT /bulkTransactions/{bulkTransactionId}` is used to amend information regarding a bulk transaction, i.e. when autoAcceptParty or autoAcceptQuote is false then the payer need to provide confirmation to proceed with further processing of the request. The `{bulkTransactionId}` in the URI should contain the `bulkTransactionId` that was used for the creation of the bulk transfer.
74
+ operationId: BackendBulkTransactionsPut
75
+ parameters:
76
+ - $ref: '#/components/parameters/bulkTransactionId'
77
+ requestBody:
78
+ content:
79
+ application/json:
80
+ schema:
81
+ properties:
82
+ bulkHomeTransactionID:
83
+ description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems.
84
+ type: string
85
+ individualTransferResults:
86
+ description: List of individual transfers in a bulk transfer with accept party information.
87
+ items:
88
+ description: Data model for the 'individualTransfer' while accepting party or quote.
89
+ properties:
90
+ homeTransactionId:
91
+ description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems.
92
+ type: string
93
+ transactionId:
94
+ description: Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).
95
+ example: b51ec534-ee48-4575-b6a9-ead2955b8069
96
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
97
+ title: CorrelationId
98
+ type: string
99
+ required:
100
+ - homeTransactionId
101
+ type: object
102
+ minItems: 1
103
+ type: array
104
+ required:
105
+ - bulkHomeTransactionID
106
+ - individualTransferResults
107
+ type: object
108
+ description: Bulk transaction request body.
109
+ required: true
110
+ responses:
111
+ '202':
112
+ description: Bulk transaction information successfully amended.
113
+ '400':
114
+ $ref: '#/components/responses/400'
115
+ '500':
116
+ $ref: '#/components/responses/500'
117
+ summary: Callbacks for the bulk transaction request.
118
+ tags:
119
+ - BulkTransactionsPut
120
+ /bulkTransfers:
121
+ post:
122
+ operationId: BackendBulkTransfersPost
123
+ requestBody:
124
+ content:
125
+ application/json:
126
+ schema:
127
+ $ref: '#/components/schemas/bulkTransferRequest'
128
+ description: An incoming bulk transfer request.
129
+ responses:
130
+ '200':
131
+ content:
132
+ application/json:
133
+ schema:
134
+ $ref: '#/components/schemas/bulkTransferResponse'
135
+ description: The bulk transfer was accepted.
136
+ '400':
137
+ $ref: '#/components/responses/400'
138
+ '500':
139
+ $ref: '#/components/responses/500'
140
+ summary: Execute bulk transfer of funds from an external account to internal accounts.
141
+ tags:
142
+ - BulkTransfers
143
+ /bulkTransfers/{idValue}:
144
+ get:
145
+ operationId: BackendBulkTransfersGet
146
+ parameters:
147
+ - $ref: '#/components/parameters/idValue'
148
+ responses:
149
+ '200':
150
+ content:
151
+ application/json:
152
+ schema:
153
+ $ref: '#/components/schemas/bulkTransferResponse'
154
+ description: Response containing details of the requested bulk transfer.
155
+ '400':
156
+ $ref: '#/components/responses/400'
157
+ '404':
158
+ $ref: '#/components/responses/404'
159
+ '500':
160
+ $ref: '#/components/responses/500'
161
+ summary: Requests information relating to a bulk transfer identified by the specified identifier value.
162
+ tags:
163
+ - BulkTransfers
164
+ /otp/{requestToPayId}:
165
+ get:
166
+ operationId: BackendOtpGet
167
+ parameters:
168
+ - $ref: '#/components/parameters/requestToPayId'
169
+ responses:
170
+ '200':
171
+ content:
172
+ application/json:
173
+ schema:
174
+ $ref: '#/components/schemas/otpDetails'
175
+ description: Response containing details of the OTP.
176
+ '400':
177
+ $ref: '#/components/responses/400'
178
+ '404':
179
+ $ref: '#/components/responses/404'
180
+ '500':
181
+ $ref: '#/components/responses/500'
182
+ summary: Requests OTP.
183
+ tags:
184
+ - OTP
185
+ /participants/{idType}/{idValue}:
186
+ get:
187
+ description: The HTTP request `GET /participants/{idType}/{idValue}` is used to find out in which FSP the requested party, defined by `{idType}` and `{idValue}`, is located.
188
+ operationId: BackendParticipantsGetByTypeAndID
189
+ parameters:
190
+ - $ref: '#/components/parameters/idType'
191
+ - $ref: '#/components/parameters/idValue'
192
+ responses:
193
+ '200':
194
+ content:
195
+ application/json:
196
+ schema:
197
+ $ref: '#/components/schemas/participantsResponse'
198
+ description: Response containing details of the requested party.
199
+ '400':
200
+ $ref: '#/components/responses/400'
201
+ '404':
202
+ $ref: '#/components/responses/404'
203
+ '500':
204
+ $ref: '#/components/responses/500'
205
+ summary: Asks for the identifier (fspId) of the scheme participant (FSP) that can handle transfers for the specified identifier type and value.
206
+ tags:
207
+ - Participants
208
+ /participants/{idType}/{idValue}/{idSubValue}:
209
+ get:
210
+ description: The HTTP request `GET /participants/{idType}/{idValue}/{idSubValue}` is used to find out in which FSP the requested party, defined by `{idType}`, `{idValue}` and `{idSubValue}` is located.
211
+ operationId: BackendParticipantsGetByTypeIDAndSubId
212
+ parameters:
213
+ - $ref: '#/components/parameters/idType'
214
+ - $ref: '#/components/parameters/idValue'
215
+ - $ref: '#/components/parameters/idSubValue'
216
+ responses:
217
+ '200':
218
+ content:
219
+ application/json:
220
+ schema:
221
+ $ref: '#/components/schemas/participantsResponse'
222
+ description: Response containing details of the requested party.
223
+ '400':
224
+ $ref: '#/components/responses/400'
225
+ '404':
226
+ $ref: '#/components/responses/404'
227
+ '500':
228
+ $ref: '#/components/responses/500'
229
+ summary: Asks for the identifier (fspId) of the scheme participant (FSP) that can handle transfers for the specified identifier type and value.
230
+ tags:
231
+ - Participants
232
+ /parties/{idType}/{idValue}:
233
+ get:
234
+ description: The HTTP request `GET /parties/{idType}/{idValue}` is used to look up information regarding the requested transfer party, identified by `{idType}` and `{idValue}`.
235
+ operationId: BackendPartiesGetByTypeAndID
236
+ parameters:
237
+ - $ref: '#/components/parameters/idType'
238
+ - $ref: '#/components/parameters/idValue'
239
+ responses:
240
+ '200':
241
+ content:
242
+ application/json:
243
+ schema:
244
+ $ref: '#/components/schemas/transferParty'
245
+ description: Response containing details of the requested party.
246
+ '400':
247
+ $ref: '#/components/responses/400'
248
+ '404':
249
+ $ref: '#/components/responses/404'
250
+ '500':
251
+ $ref: '#/components/responses/500'
252
+ summary: Requests information relating to a transfer party identified by the specified identifier type and value.
253
+ tags:
254
+ - Parties
255
+ /parties/{idType}/{idValue}/{idSubValue}:
256
+ get:
257
+ description: The HTTP request `GET /parties/{idType}/{idValue}/{idSubValue}` is used to look up information regarding the requested transfer party, identified by `{idType}`, `{idValue}` and `{idSubValue}`.
258
+ operationId: BackendPartiesGetByTypeIdAndSubId
259
+ parameters:
260
+ - $ref: '#/components/parameters/idType'
261
+ - $ref: '#/components/parameters/idValue'
262
+ - $ref: '#/components/parameters/idSubValue'
263
+ responses:
264
+ '200':
265
+ content:
266
+ application/json:
267
+ schema:
268
+ $ref: '#/components/schemas/transferParty'
269
+ description: Response containing details of the requested party.
270
+ '400':
271
+ $ref: '#/components/responses/400'
272
+ '404':
273
+ $ref: '#/components/responses/404'
274
+ '500':
275
+ $ref: '#/components/responses/500'
276
+ summary: Requests information relating to a transfer party identified by the specified identifier type, value and subId value.
277
+ tags:
278
+ - Parties
279
+ /quoterequests:
280
+ post:
281
+ description: The HTTP request `POST /quoterequests` is used to request the creation of a quote for the provided financial transaction.
282
+ operationId: BackendQuoteRequest
283
+ requestBody:
284
+ content:
285
+ application/json:
286
+ schema:
287
+ $ref: '#/components/schemas/quoteRequest'
288
+ description: Request for a transfer quotation.
289
+ responses:
290
+ '200':
291
+ content:
292
+ application/json:
293
+ schema:
294
+ $ref: '#/components/schemas/quoteResponse'
295
+ description: A response to the transfer quotation request.
296
+ '400':
297
+ $ref: '#/components/responses/400'
298
+ '500':
299
+ $ref: '#/components/responses/500'
300
+ summary: Requests a quote for the specified transfer.
301
+ tags:
302
+ - Quotes
303
+ /transactionrequests:
304
+ post:
305
+ operationId: BackendTransactionRequest
306
+ requestBody:
307
+ content:
308
+ application/json:
309
+ schema:
310
+ $ref: '#/components/schemas/transactionRequest'
311
+ description: Request for Transaction Request.
312
+ responses:
313
+ '200':
314
+ content:
315
+ application/json:
316
+ schema:
317
+ $ref: '#/components/schemas/transactionRequestResponse'
318
+ description: A response to the transfer transaction request.
319
+ '400':
320
+ $ref: '#/components/responses/400'
321
+ '500':
322
+ $ref: '#/components/responses/500'
323
+ summary: Transaction request that supports pull based transfers.
324
+ tags:
325
+ - TransactionRequest
326
+ /transfers:
327
+ post:
328
+ description: The HTTP request `POST /transfers` is used to request the creation of a transfer for the transfer party.
329
+ operationId: BackendTransfersPost
330
+ requestBody:
331
+ content:
332
+ application/json:
333
+ schema:
334
+ $ref: '#/components/schemas/transferRequest'
335
+ description: An incoming transfer request.
336
+ responses:
337
+ '200':
338
+ content:
339
+ application/json:
340
+ schema:
341
+ $ref: '#/components/schemas/transferResponse'
342
+ description: The transfer was accepted.
343
+ '400':
344
+ $ref: '#/components/responses/400'
345
+ '500':
346
+ $ref: '#/components/responses/500'
347
+ summary: Transfers funds from an external account to an internal account.
348
+ tags:
349
+ - Transfers
350
+ /transfers/{transferId}:
351
+ get:
352
+ description: The HTTP request `GET /transfers/{transferId}` is used to get information regarding a transfer created or requested earlier. The `{transferId}` in the URI should contain the `transferId` that was used for the creation of the transfer.
353
+ operationId: BackendTransfersGet
354
+ parameters:
355
+ - $ref: '#/components/parameters/transferId'
356
+ responses:
357
+ '200':
358
+ content:
359
+ application/json:
360
+ schema:
361
+ $ref: '#/components/schemas/transferDetailsResponse'
362
+ description: The transfer was accepted.
363
+ '500':
364
+ $ref: '#/components/responses/500'
365
+ summary: Retrieves information for a specific transfer.
366
+ tags:
367
+ - Transfers
368
+ put:
369
+ description: The HTTP request `PUT /transfers/{transferId}` is used to receive notification for transfer being fulfiled when the FSP is a Payee.
370
+ operationId: BackendTransfersPut
371
+ parameters:
372
+ - $ref: '#/components/parameters/transferId'
373
+ requestBody:
374
+ content:
375
+ application/json:
376
+ schema:
377
+ $ref: '#/components/schemas/fulfilNotification'
378
+ description: An incoming notification for fulfiled transfer.
379
+ responses:
380
+ '200':
381
+ description: The notification was accepted.
382
+ '500':
383
+ $ref: '#/components/responses/500'
384
+ summary: Receive notification for a specific transfer.
385
+ tags:
386
+ - Transfers
387
+ components:
388
+ parameters:
389
+ bulkTransactionId:
390
+ description: Identifier of the bulk transaction to continue as returned in.
391
+ in: path
392
+ name: bulkTransactionId
393
+ required: true
394
+ schema:
395
+ description: Identifier that correlates all messages of the same sequence. The API data type UUID (Universally Unique Identifier) is a JSON String in canonical format, conforming to [RFC 4122](https://tools.ietf.org/html/rfc4122), that is restricted by a regular expression for interoperability reasons. A UUID is always 36 characters long, 32 hexadecimal symbols and 4 dashes (‘-‘).
396
+ example: b51ec534-ee48-4575-b6a9-ead2955b8069
397
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
398
+ title: CorrelationId
399
+ type: string
400
+ idSubValue:
401
+ description: A sub-identifier of the party identifier, or a sub-type of the party identifier's type. For example, `PASSPORT`, `DRIVING_LICENSE`.
402
+ in: path
403
+ name: idSubValue
404
+ required: true
405
+ schema:
406
+ type: string
407
+ idType:
408
+ description: The type of the party identifier. For example, `MSISDN`, `PERSONAL_ID`.
409
+ in: path
410
+ name: idType
411
+ required: true
412
+ schema:
413
+ type: string
414
+ idValue:
415
+ description: The identifier value.
416
+ in: path
417
+ name: idValue
418
+ required: true
419
+ schema:
420
+ type: string
421
+ requestToPayId:
422
+ in: path
423
+ name: requestToPayId
424
+ required: true
425
+ schema:
426
+ maxLength: 128
427
+ minLength: 1
428
+ type: string
429
+ transferId:
430
+ in: path
431
+ name: transferId
432
+ required: true
433
+ schema:
434
+ type: string
435
+ responses:
436
+ '400':
437
+ content:
438
+ application/json:
439
+ schema:
440
+ $ref: '#/components/schemas/errorResponse'
441
+ description: Malformed or missing required headers or parameters.
442
+ '404':
443
+ description: The party specified by the provided identifier type and value is not known to the server.
444
+ '500':
445
+ content:
446
+ application/json:
447
+ schema:
448
+ $ref: '#/components/schemas/errorResponse'
449
+ description: An error occurred processing the request.
450
+ schemas:
451
+ DateOfBirth:
452
+ description: Date of Birth of the Party.
453
+ example: '1966-06-16'
454
+ pattern: ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)$
455
+ title: DateofBirth (type Date)
456
+ type: string
457
+ Extension:
458
+ description: Data model for the complex type Extension
459
+ properties:
460
+ key:
461
+ $ref: '#/components/schemas/ExtensionKey'
462
+ description: Extension key.
463
+ value:
464
+ $ref: '#/components/schemas/ExtensionValue'
465
+ description: Extension value.
466
+ required:
467
+ - key
468
+ - value
469
+ title: Extension
470
+ type: object
471
+ ExtensionKey:
472
+ description: Extension key.
473
+ maxLength: 32
474
+ minLength: 1
475
+ title: ExtensionKey
476
+ type: string
477
+ ExtensionList:
478
+ description: Data model for the complex type ExtensionList
479
+ properties:
480
+ extension:
481
+ description: Number of Extension elements
482
+ items:
483
+ $ref: '#/components/schemas/Extension'
484
+ maxItems: 16
485
+ minItems: 1
486
+ type: array
487
+ required:
488
+ - extension
489
+ title: ExtensionList
490
+ type: object
491
+ ExtensionValue:
492
+ description: Extension value.
493
+ maxLength: 128
494
+ minLength: 1
495
+ title: ExtensionValue
496
+ type: string
497
+ FirstName:
498
+ description: First name of the Party (Name Type).
499
+ example: Henrik
500
+ maxLength: 128
501
+ minLength: 1
502
+ pattern: ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} .,''-]{1,128}$
503
+ title: FirstName
504
+ type: string
505
+ FspId:
506
+ description: FSP identifier.
507
+ maxLength: 32
508
+ minLength: 1
509
+ title: FspId
510
+ type: string
511
+ IndividualQuote:
512
+ description: Data model for individual quote in a bulk quote request.
513
+ properties:
514
+ amount:
515
+ $ref: '#/components/schemas/money'
516
+ amountType:
517
+ $ref: '#/components/schemas/amountType'
518
+ currency:
519
+ $ref: '#/components/schemas/currency'
520
+ feesAmount:
521
+ $ref: '#/components/schemas/money'
522
+ feesCurrency:
523
+ $ref: '#/components/schemas/currency'
524
+ initiator:
525
+ $ref: '#/components/schemas/initiator'
526
+ initiatorType:
527
+ $ref: '#/components/schemas/initiatorType'
528
+ note:
529
+ description: An optional note associated with the quote.
530
+ maxLength: 128
531
+ minLength: 1
532
+ type: string
533
+ quoteId:
534
+ $ref: '#/components/schemas/quoteId'
535
+ subScenario:
536
+ $ref: '#/components/schemas/transactionSubScenario'
537
+ to:
538
+ $ref: '#/components/schemas/transferParty'
539
+ transactionId:
540
+ $ref: '#/components/schemas/transactionId'
541
+ transactionType:
542
+ $ref: '#/components/schemas/transactionType'
543
+ required:
544
+ - quoteId
545
+ - transactionId
546
+ - to
547
+ - amountType
548
+ - amount
549
+ - currency
550
+ - transactionType
551
+ - initiator
552
+ - initiatorType
553
+ type: object
554
+ IndividualQuoteResultFailed:
555
+ description: Data model for failed individual quote in a bulk quote response.
556
+ properties:
557
+ errorResponse:
558
+ $ref: '#/components/schemas/errorResponse'
559
+ quoteId:
560
+ $ref: '#/components/schemas/quoteId'
561
+ required:
562
+ - quoteId
563
+ - errorResponse
564
+ type: object
565
+ IndividualQuoteResultSuccess:
566
+ description: Data model for successful individual quote in a bulk quote response.
567
+ properties:
568
+ payeeFspCommissionAmount:
569
+ $ref: '#/components/schemas/money'
570
+ payeeFspCommissionAmountCurrency:
571
+ $ref: '#/components/schemas/currency'
572
+ payeeFspFeeAmount:
573
+ $ref: '#/components/schemas/money'
574
+ payeeFspFeeAmountCurrency:
575
+ $ref: '#/components/schemas/currency'
576
+ payeeReceiveAmount:
577
+ $ref: '#/components/schemas/money'
578
+ payeeReceiveAmountCurrency:
579
+ $ref: '#/components/schemas/currency'
580
+ quoteId:
581
+ $ref: '#/components/schemas/quoteId'
582
+ transferAmount:
583
+ $ref: '#/components/schemas/money'
584
+ transferAmountCurrency:
585
+ $ref: '#/components/schemas/currency'
586
+ required:
587
+ - quoteId
588
+ type: object
589
+ IndividualTransfer:
590
+ description: Data model for individual transfer in a bulk transfer request.
591
+ properties:
592
+ amount:
593
+ $ref: '#/components/schemas/money'
594
+ amountType:
595
+ $ref: '#/components/schemas/amountType'
596
+ currency:
597
+ $ref: '#/components/schemas/currency'
598
+ feesAmount:
599
+ $ref: '#/components/schemas/money'
600
+ feesCurrency:
601
+ $ref: '#/components/schemas/currency'
602
+ initiator:
603
+ $ref: '#/components/schemas/initiator'
604
+ initiatorType:
605
+ $ref: '#/components/schemas/initiatorType'
606
+ note:
607
+ description: An optional note associated with the quote.
608
+ maxLength: 128
609
+ minLength: 1
610
+ type: string
611
+ subScenario:
612
+ $ref: '#/components/schemas/transactionSubScenario'
613
+ to:
614
+ $ref: '#/components/schemas/transferParty'
615
+ transactionType:
616
+ $ref: '#/components/schemas/transactionType'
617
+ transferId:
618
+ $ref: '#/components/schemas/transferId'
619
+ required:
620
+ - transferId
621
+ - amount
622
+ - currency
623
+ type: object
624
+ IndividualTransferResult:
625
+ description: Data model for individual transfer in a bulk transfer response.
626
+ properties:
627
+ errorResponse:
628
+ $ref: '#/components/schemas/errorResponse'
629
+ extensionList:
630
+ $ref: '#/components/schemas/extensionList'
631
+ transferId:
632
+ $ref: '#/components/schemas/transferId'
633
+ required:
634
+ - transferId
635
+ type: object
636
+ LastName:
637
+ description: Last name of the Party (Name Type).
638
+ example: Karlsson
639
+ maxLength: 128
640
+ minLength: 1
641
+ pattern: ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} .,''-]{1,128}$
642
+ title: LastName
643
+ type: string
644
+ MerchantClassificationCode:
645
+ description: A limited set of pre-defined numbers. This list would be a limited set of numbers identifying a set of popular merchant types like School Fees, Pubs and Restaurants, Groceries, etc.
646
+ pattern: ^[\d]{1,4}$
647
+ title: MerchantClassificationCode
648
+ type: string
649
+ MiddleName:
650
+ description: Middle name of the Party (Name Type).
651
+ example: Johannes
652
+ maxLength: 128
653
+ minLength: 1
654
+ pattern: ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} .,''-]{1,128}$
655
+ title: MiddleName
656
+ type: string
657
+ Party:
658
+ description: Data model for the complex type Party.
659
+ properties:
660
+ merchantClassificationCode:
661
+ $ref: '#/components/schemas/MerchantClassificationCode'
662
+ name:
663
+ $ref: '#/components/schemas/PartyName'
664
+ partyIdInfo:
665
+ $ref: '#/components/schemas/PartyIdInfo'
666
+ personalInfo:
667
+ $ref: '#/components/schemas/PartyPersonalInfo'
668
+ required:
669
+ - partyIdInfo
670
+ title: Party
671
+ type: object
672
+ PartyComplexName:
673
+ description: Data model for the complex type PartyComplexName.
674
+ properties:
675
+ displayName:
676
+ description: Display name of the sender if known
677
+ type: string
678
+ firstName:
679
+ $ref: '#/components/schemas/FirstName'
680
+ idSubValue:
681
+ description: The sub identifier string used to identify the sender
682
+ type: string
683
+ idType:
684
+ $ref: '#/components/schemas/idType'
685
+ idValue:
686
+ description: The identifier string used to identify the sender
687
+ type: string
688
+ lastName:
689
+ $ref: '#/components/schemas/LastName'
690
+ middleName:
691
+ $ref: '#/components/schemas/MiddleName'
692
+ type:
693
+ $ref: '#/components/schemas/payerType'
694
+ title: PartyComplexName
695
+ type: object
696
+ PartyIdInfo:
697
+ description: Data model for the complex type PartyIdInfo.
698
+ properties:
699
+ extensionList:
700
+ $ref: '#/components/schemas/ExtensionList'
701
+ fspId:
702
+ $ref: '#/components/schemas/FspId'
703
+ partyIdType:
704
+ $ref: '#/components/schemas/PartyIdType'
705
+ partyIdentifier:
706
+ $ref: '#/components/schemas/PartyIdentifier'
707
+ partySubIdOrType:
708
+ $ref: '#/components/schemas/PartySubIdOrType'
709
+ required:
710
+ - partyIdType
711
+ - partyIdentifier
712
+ title: PartyIdInfo
713
+ type: object
714
+ PartyIdType:
715
+ description: |
716
+ This is a variant based on FSPIOP `PartyIdType` specification.
717
+ Main difference being the CONSENT and THIRD_PARTY_LINK enums.
718
+
719
+ Below are the allowed values for the enumeration.
720
+ - MSISDN - An MSISDN (Mobile Station International Subscriber Directory
721
+ Number, that is, the phone number) is used as reference to a participant.
722
+ The MSISDN identifier should be in international format according to the
723
+ [ITU-T E.164 standard](https://www.itu.int/rec/T-REC-E.164/en).
724
+ Optionally, the MSISDN may be prefixed by a single plus sign, indicating the
725
+ international prefix.
726
+ - EMAIL - An email is used as reference to a
727
+ participant. The format of the email should be according to the informational
728
+ [RFC 3696](https://tools.ietf.org/html/rfc3696).
729
+ - PERSONAL_ID - A personal identifier is used as reference to a participant.
730
+ Examples of personal identification are passport number, birth certificate
731
+ number, and national registration number. The identifier number is added in
732
+ the PartyIdentifier element. The personal identifier type is added in the
733
+ PartySubIdOrType element.
734
+ - BUSINESS - A specific Business (for example, an organization or a company)
735
+ is used as reference to a participant. The BUSINESS identifier can be in any
736
+ format. To make a transaction connected to a specific username or bill number
737
+ in a Business, the PartySubIdOrType element should be used.
738
+ - DEVICE - A specific device (for example, a POS or ATM) ID connected to a
739
+ specific business or organization is used as reference to a Party.
740
+ For referencing a specific device under a specific business or organization,
741
+ use the PartySubIdOrType element.
742
+ - ACCOUNT_ID - A bank account number or FSP account ID should be used as
743
+ reference to a participant. The ACCOUNT_ID identifier can be in any format,
744
+ as formats can greatly differ depending on country and FSP.
745
+ - IBAN - A bank account number or FSP account ID is used as reference to a
746
+ participant. The IBAN identifier can consist of up to 34 alphanumeric
747
+ characters and should be entered without whitespace.
748
+ - ALIAS An alias is used as reference to a participant. The alias should be
749
+ created in the FSP as an alternative reference to an account owner.
750
+ Another example of an alias is a username in the FSP system.
751
+ The ALIAS identifier can be in any format. It is also possible to use the
752
+ PartySubIdOrType element for identifying an account under an Alias defined
753
+ by the PartyIdentifier.
754
+ - CONSENT - TBD
755
+ - THIRD_PARTY_LINK - TBD
756
+ enum:
757
+ - MSISDN
758
+ - EMAIL
759
+ - PERSONAL_ID
760
+ - BUSINESS
761
+ - DEVICE
762
+ - ACCOUNT_ID
763
+ - IBAN
764
+ - ALIAS
765
+ - CONSENT
766
+ - THIRD_PARTY_LINK
767
+ example: PERSONAL_ID
768
+ title: PartyIdType
769
+ type: string
770
+ PartyIdentifier:
771
+ description: Identifier of the Party.
772
+ example: '16135551212'
773
+ maxLength: 128
774
+ minLength: 1
775
+ title: PartyIdentifier
776
+ type: string
777
+ PartyName:
778
+ description: Name of the Party. Could be a real name or a nickname.
779
+ maxLength: 128
780
+ minLength: 1
781
+ title: PartyName
782
+ type: string
783
+ PartyPersonalInfo:
784
+ description: Data model for the complex type PartyPersonalInfo.
785
+ properties:
786
+ complexName:
787
+ $ref: '#/components/schemas/PartyComplexName'
788
+ dateOfBirth:
789
+ $ref: '#/components/schemas/DateOfBirth'
790
+ title: PartyPersonalInfo
791
+ type: object
792
+ PartySubIdOrType:
793
+ description: Either a sub-identifier of a PartyIdentifier, or a sub-type of the PartyIdType, normally a PersonalIdentifierType.
794
+ maxLength: 128
795
+ minLength: 1
796
+ title: PartySubIdOrType
797
+ type: string
798
+ amountCurrency:
799
+ description: Object containing Amount and Currency of the transfer.
800
+ properties:
801
+ amount:
802
+ $ref: '#/components/schemas/money'
803
+ currency:
804
+ $ref: '#/components/schemas/currency'
805
+ required:
806
+ - amount
807
+ - currency
808
+ type: object
809
+ amountType:
810
+ enum:
811
+ - SEND
812
+ - RECEIVE
813
+ type: string
814
+ bulkQuoteId:
815
+ description: A Mojaloop API bulk quote identifier (UUID).
816
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
817
+ type: string
818
+ bulkQuoteRequest:
819
+ description: A request for a bulk quote.
820
+ properties:
821
+ bulkQuoteId:
822
+ $ref: '#/components/schemas/bulkQuoteId'
823
+ expiration:
824
+ $ref: '#/components/schemas/timestamp'
825
+ from:
826
+ $ref: '#/components/schemas/transferParty'
827
+ geoCode:
828
+ $ref: '#/components/schemas/geoCode'
829
+ individualQuotes:
830
+ items:
831
+ $ref: '#/components/schemas/IndividualQuote'
832
+ maxItems: 1000
833
+ minItems: 1
834
+ type: array
835
+ required:
836
+ - bulkQuoteId
837
+ - from
838
+ - individualQuotes
839
+ type: object
840
+ bulkQuoteResponse:
841
+ description: A response to a request for a bulk quote.
842
+ properties:
843
+ bulkQuoteId:
844
+ $ref: '#/components/schemas/bulkQuoteId'
845
+ expiration:
846
+ $ref: '#/components/schemas/timestamp'
847
+ individualQuoteResults:
848
+ description: Fees for each individual transaction, if any of them are charged per transaction.
849
+ items:
850
+ oneOf:
851
+ - $ref: '#/components/schemas/IndividualQuoteResultSuccess'
852
+ - $ref: '#/components/schemas/IndividualQuoteResultFailed'
853
+ maxItems: 1000
854
+ minItems: 1
855
+ type: array
856
+ required:
857
+ - bulkQuoteId
858
+ - individualQuoteResults
859
+ type: object
860
+ bulkTransferId:
861
+ description: A Mojaloop API transfer identifier (UUID).
862
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
863
+ type: string
864
+ bulkTransferRequest:
865
+ properties:
866
+ bulkQuote:
867
+ $ref: '#/components/schemas/bulkQuoteResponse'
868
+ bulkTransferId:
869
+ $ref: '#/components/schemas/bulkTransferId'
870
+ from:
871
+ $ref: '#/components/schemas/transferParty'
872
+ individualTransfers:
873
+ items:
874
+ $ref: '#/components/schemas/IndividualTransfer'
875
+ maxItems: 1000
876
+ minItems: 1
877
+ type: array
878
+ required:
879
+ - bulkTransferId
880
+ - individualTransfers
881
+ type: object
882
+ bulkTransferResponse:
883
+ properties:
884
+ bulkTransferId:
885
+ $ref: '#/components/schemas/bulkTransferId'
886
+ homeTransactionId:
887
+ description: Transaction ID from the DFSP backend, used to reconcile transactions between the switch and DFSP backend systems.
888
+ type: string
889
+ individualTransferResults:
890
+ items:
891
+ $ref: '#/components/schemas/IndividualTransferResult'
892
+ maxItems: 1000
893
+ minItems: 1
894
+ type: array
895
+ required:
896
+ - homeTransactionId
897
+ type: object
898
+ currency:
899
+ enum:
900
+ - AED
901
+ - AFN
902
+ - ALL
903
+ - AMD
904
+ - ANG
905
+ - AOA
906
+ - ARS
907
+ - AUD
908
+ - AWG
909
+ - AZN
910
+ - BAM
911
+ - BBD
912
+ - BDT
913
+ - BGN
914
+ - BHD
915
+ - BIF
916
+ - BMD
917
+ - BND
918
+ - BOB
919
+ - BRL
920
+ - BSD
921
+ - BTN
922
+ - BWP
923
+ - BYN
924
+ - BZD
925
+ - CAD
926
+ - CDF
927
+ - CHF
928
+ - CLP
929
+ - CNY
930
+ - COP
931
+ - CRC
932
+ - CUC
933
+ - CUP
934
+ - CVE
935
+ - CZK
936
+ - DJF
937
+ - DKK
938
+ - DOP
939
+ - DZD
940
+ - EGP
941
+ - ERN
942
+ - ETB
943
+ - EUR
944
+ - FJD
945
+ - FKP
946
+ - GBP
947
+ - GEL
948
+ - GGP
949
+ - GHS
950
+ - GIP
951
+ - GMD
952
+ - GNF
953
+ - GTQ
954
+ - GYD
955
+ - HKD
956
+ - HNL
957
+ - HRK
958
+ - HTG
959
+ - HUF
960
+ - IDR
961
+ - ILS
962
+ - IMP
963
+ - INR
964
+ - IQD
965
+ - IRR
966
+ - ISK
967
+ - JEP
968
+ - JMD
969
+ - JOD
970
+ - JPY
971
+ - KES
972
+ - KGS
973
+ - KHR
974
+ - KMF
975
+ - KPW
976
+ - KRW
977
+ - KWD
978
+ - KYD
979
+ - KZT
980
+ - LAK
981
+ - LBP
982
+ - LKR
983
+ - LRD
984
+ - LSL
985
+ - LYD
986
+ - MAD
987
+ - MDL
988
+ - MGA
989
+ - MKD
990
+ - MMK
991
+ - MNT
992
+ - MOP
993
+ - MRO
994
+ - MUR
995
+ - MVR
996
+ - MWK
997
+ - MXN
998
+ - MYR
999
+ - MZN
1000
+ - NAD
1001
+ - NGN
1002
+ - NIO
1003
+ - NOK
1004
+ - NPR
1005
+ - NZD
1006
+ - OMR
1007
+ - PAB
1008
+ - PEN
1009
+ - PGK
1010
+ - PHP
1011
+ - PKR
1012
+ - PLN
1013
+ - PYG
1014
+ - QAR
1015
+ - RON
1016
+ - RSD
1017
+ - RUB
1018
+ - RWF
1019
+ - SAR
1020
+ - SBD
1021
+ - SCR
1022
+ - SDG
1023
+ - SEK
1024
+ - SGD
1025
+ - SHP
1026
+ - SLL
1027
+ - SOS
1028
+ - SPL
1029
+ - SRD
1030
+ - STD
1031
+ - SVC
1032
+ - SYP
1033
+ - SZL
1034
+ - THB
1035
+ - TJS
1036
+ - TMT
1037
+ - TND
1038
+ - TOP
1039
+ - TRY
1040
+ - TTD
1041
+ - TVD
1042
+ - TWD
1043
+ - TZS
1044
+ - UAH
1045
+ - UGX
1046
+ - USD
1047
+ - UYU
1048
+ - UZS
1049
+ - VEF
1050
+ - VND
1051
+ - VUV
1052
+ - WST
1053
+ - XAF
1054
+ - XCD
1055
+ - XDR
1056
+ - XOF
1057
+ - XPF
1058
+ - XTS
1059
+ - XXX
1060
+ - YER
1061
+ - ZAR
1062
+ - ZMW
1063
+ - ZWD
1064
+ maxLength: 3
1065
+ minLength: 3
1066
+ type: string
1067
+ dateOfBirth:
1068
+ description: Date of birth in the form YYYY-MM-DD.
1069
+ pattern: ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)$
1070
+ type: string
1071
+ errorCode:
1072
+ description: |
1073
+ The API data type errorCode is a JSON String of four characters, consisting of digits only. Negative numbers are not allowed. A leading zero is not allowed. Each error code in the API is a four-digit number, for example, 1234, where the first number (1 in the example) represents the high-level error category, the second number (2 in the example) represents the low-level error category, and the last two numbers (34 in the example) represents the specific error.
1074
+ pattern: ^[1-9]\d{3}$
1075
+ title: ErrorCode
1076
+ type: string
1077
+ errorDescription:
1078
+ description: Error description string.
1079
+ maxLength: 128
1080
+ minLength: 1
1081
+ title: ErrorDescription
1082
+ type: string
1083
+ errorInformation:
1084
+ description: A Mojaloop API error information construct.
1085
+ properties:
1086
+ errorCode:
1087
+ $ref: '#/components/schemas/errorCode'
1088
+ description: Specific error number.
1089
+ errorDescription:
1090
+ $ref: '#/components/schemas/errorDescription'
1091
+ description: Error description string.
1092
+ extensionList:
1093
+ $ref: '#/components/schemas/extensionListComplex'
1094
+ description: Optional list of extensions, specific to deployment.
1095
+ required:
1096
+ - errorCode
1097
+ - errorDescription
1098
+ title: ErrorInformation
1099
+ type: object
1100
+ errorResponse:
1101
+ properties:
1102
+ message:
1103
+ description: Error message text
1104
+ type: string
1105
+ statusCode:
1106
+ description: |
1107
+ Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code.
1108
+ Otherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message.
1109
+ type: string
1110
+ type: object
1111
+ extensionItem:
1112
+ properties:
1113
+ key:
1114
+ maxLength: 32
1115
+ minLength: 1
1116
+ type: string
1117
+ value:
1118
+ maxLength: 128
1119
+ minLength: 1
1120
+ type: string
1121
+ type: object
1122
+ extensionList:
1123
+ items:
1124
+ $ref: '#/components/schemas/extensionItem'
1125
+ maxItems: 16
1126
+ minItems: 0
1127
+ type: array
1128
+ extensionListComplex:
1129
+ description: Data model for the complex type ExtensionList.
1130
+ properties:
1131
+ extension:
1132
+ description: Number of Extension elements.
1133
+ items:
1134
+ $ref: '#/components/schemas/extensionItem'
1135
+ maxItems: 16
1136
+ minItems: 1
1137
+ type: array
1138
+ required:
1139
+ - extension
1140
+ type: object
1141
+ fspId:
1142
+ description: FSP identifier.
1143
+ maxLength: 32
1144
+ minLength: 1
1145
+ type: string
1146
+ fulfilNotification:
1147
+ description: PUT /transfers/{transferId} object.
1148
+ properties:
1149
+ currentState:
1150
+ $ref: '#/components/schemas/transferStatus'
1151
+ direction:
1152
+ enum:
1153
+ - INBOUND
1154
+ type: string
1155
+ finalNotification:
1156
+ properties:
1157
+ completedTimestamp:
1158
+ $ref: '#/components/schemas/timestamp'
1159
+ description: Time and date when the transaction was completed.
1160
+ example: '2020-05-19T08:38:08.699-04:00'
1161
+ extensionList:
1162
+ $ref: '#/components/schemas/extensionList'
1163
+ description: Optional extension, specific to deployment.
1164
+ transferState:
1165
+ $ref: '#/components/schemas/transferState'
1166
+ description: State of the transfer.
1167
+ example: COMMITTED
1168
+ required:
1169
+ - completedTimestamp
1170
+ - transferState
1171
+ type: object
1172
+ fulfil:
1173
+ properties:
1174
+ body:
1175
+ type: object
1176
+ headers:
1177
+ type: object
1178
+ type: object
1179
+ initiatedTimestamp:
1180
+ $ref: '#/components/schemas/timestamp'
1181
+ lastError:
1182
+ $ref: '#/components/schemas/transferError'
1183
+ prepare:
1184
+ properties:
1185
+ body:
1186
+ type: object
1187
+ headers:
1188
+ type: object
1189
+ type: object
1190
+ quote:
1191
+ properties:
1192
+ fulfilment:
1193
+ type: string
1194
+ internalRequest:
1195
+ type: object
1196
+ mojaloopResponse:
1197
+ type: object
1198
+ request:
1199
+ type: object
1200
+ response:
1201
+ type: object
1202
+ type: object
1203
+ quoteRequest:
1204
+ properties:
1205
+ body:
1206
+ type: object
1207
+ headers:
1208
+ type: object
1209
+ type: object
1210
+ quoteResponse:
1211
+ properties:
1212
+ body:
1213
+ type: object
1214
+ headers:
1215
+ type: object
1216
+ type: object
1217
+ transferId:
1218
+ $ref: '#/components/schemas/transferId'
1219
+ title: TransfersIDPatchResponse
1220
+ type: object
1221
+ generalError:
1222
+ description: This object may represent a number of different error object types and so its properties may vary significantly.
1223
+ type: object
1224
+ geoCode:
1225
+ description: Indicates the geographic location from where the transaction was initiated.
1226
+ properties:
1227
+ latitude:
1228
+ $ref: '#/components/schemas/latitude'
1229
+ longitude:
1230
+ $ref: '#/components/schemas/longitude'
1231
+ required:
1232
+ - latitude
1233
+ - longitude
1234
+ type: object
1235
+ idSubValue:
1236
+ maxLength: 128
1237
+ minLength: 1
1238
+ type: string
1239
+ idType:
1240
+ enum:
1241
+ - MSISDN
1242
+ - ACCOUNT_NO
1243
+ - EMAIL
1244
+ - PERSONAL_ID
1245
+ - BUSINESS
1246
+ - DEVICE
1247
+ - ACCOUNT_ID
1248
+ - IBAN
1249
+ - ALIAS
1250
+ type: string
1251
+ idValue:
1252
+ description: Identifier of the party.
1253
+ maxLength: 128
1254
+ minLength: 1
1255
+ type: string
1256
+ ilpFulfilment:
1257
+ description: Fulfilment that must be attached to the transfer by the Payee.
1258
+ example: WLctttbu2HvTsa1XWvUoGRcQozHsqeu9Ahl2JW9Bsu8
1259
+ maxLength: 48
1260
+ pattern: ^[A-Za-z0-9-_]{43}$
1261
+ title: ilpFulfilment
1262
+ type: string
1263
+ ilpPacketData:
1264
+ description: Object containing transfer object.
1265
+ properties:
1266
+ amount:
1267
+ $ref: '#/components/schemas/amountCurrency'
1268
+ description: Amount and currency of the transaction
1269
+ payee:
1270
+ $ref: '#/components/schemas/Party'
1271
+ description: Information about the Payee in the proposed financial transaction.
1272
+ payer:
1273
+ $ref: '#/components/schemas/Party'
1274
+ description: Information about the Payer in the proposed financial transaction.
1275
+ quoteId:
1276
+ $ref: '#/components/schemas/quoteId'
1277
+ transactionId:
1278
+ $ref: '#/components/schemas/transactionId'
1279
+ description: Identifier for the transaction, decided by the Payer FSP during the creation of the quote.
1280
+ transactionType:
1281
+ $ref: '#/components/schemas/transactionTypeObject'
1282
+ description: Information about type of transaction and initiator.
1283
+ required:
1284
+ - quoteId
1285
+ - transactionId
1286
+ - payer
1287
+ - payee
1288
+ - amount
1289
+ - transactionType
1290
+ type: object
1291
+ initiator:
1292
+ enum:
1293
+ - PAYER
1294
+ - PAYEE
1295
+ type: string
1296
+ initiatorType:
1297
+ enum:
1298
+ - CONSUMER
1299
+ - AGENT
1300
+ - BUSINESS
1301
+ - DEVICE
1302
+ type: string
1303
+ latitude:
1304
+ description: The API data type Latitude is a JSON String in a lexical format that is restricted by a regular expression for interoperability reasons.
1305
+ pattern: ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$
1306
+ type: string
1307
+ longitude:
1308
+ description: The API data type Longitude is a JSON String in a lexical format that is restricted by a regular expression for interoperability reasons.
1309
+ pattern: ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$
1310
+ type: string
1311
+ mojaloopError:
1312
+ properties:
1313
+ errorInformation:
1314
+ $ref: '#/components/schemas/errorInformation'
1315
+ type: object
1316
+ money:
1317
+ pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$
1318
+ type: string
1319
+ otpDetails:
1320
+ properties:
1321
+ otpValue:
1322
+ description: OTP value.
1323
+ type: string
1324
+ required:
1325
+ - otpValue
1326
+ type: object
1327
+ participantsResponse:
1328
+ properties:
1329
+ fspId:
1330
+ $ref: '#/components/schemas/fspId'
1331
+ type: object
1332
+ payerType:
1333
+ enum:
1334
+ - CONSUMER
1335
+ - AGENT
1336
+ - BUSINESS
1337
+ - DEVICE
1338
+ type: string
1339
+ quoteId:
1340
+ description: A Mojaloop API quote identifier (UUID).
1341
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
1342
+ type: string
1343
+ quoteRequest:
1344
+ description: A request for a quote for transfer from the DFSP backend.
1345
+ properties:
1346
+ amount:
1347
+ $ref: '#/components/schemas/money'
1348
+ description: Depending on `amountType`. If SEND - The amount the Payer would like to send, that is, the amount that should be withdrawn from the Payer account including any fees. The amount is updated by each participating entity in the transaction. If RECEIVE - The amount the Payee should receive, that is, the amount that should be sent to the receiver exclusive any fees. The amount is not updated by any of the participating entities.
1349
+ amountType:
1350
+ $ref: '#/components/schemas/amountType'
1351
+ description: SEND for send amount, RECEIVE for receive amount.
1352
+ currency:
1353
+ $ref: '#/components/schemas/currency'
1354
+ expiration:
1355
+ $ref: '#/components/schemas/timestamp'
1356
+ description: An optional deadline for responding to the quote request.
1357
+ extensionList:
1358
+ $ref: '#/components/schemas/extensionList'
1359
+ feesAmount:
1360
+ $ref: '#/components/schemas/money'
1361
+ description: The fees in the transaction. The fees element should be empty if fees should be non-disclosed. The fees element should be non-empty if fees should be disclosed.
1362
+ feesCurrency:
1363
+ $ref: '#/components/schemas/currency'
1364
+ from:
1365
+ $ref: '#/components/schemas/transferParty'
1366
+ description: Information about the Payer in the proposed financial transaction.
1367
+ geoCode:
1368
+ $ref: '#/components/schemas/geoCode'
1369
+ description: Longitude and Latitude of the initiating party. Can be used to detect fraud.
1370
+ initiator:
1371
+ $ref: '#/components/schemas/initiator'
1372
+ description: Specifies if the initiator of the transfer is the Payer or Payee.
1373
+ initiatorType:
1374
+ $ref: '#/components/schemas/initiatorType'
1375
+ description: Specifies the type of the transaction initiator.
1376
+ note:
1377
+ description: An optional note associated with the requested transfer.
1378
+ maxLength: 128
1379
+ minLength: 1
1380
+ type: string
1381
+ quoteId:
1382
+ $ref: '#/components/schemas/quoteId'
1383
+ subScenario:
1384
+ $ref: '#/components/schemas/transactionSubScenario'
1385
+ to:
1386
+ $ref: '#/components/schemas/transferParty'
1387
+ description: Information about the Payee in the proposed financial transaction.
1388
+ transactionId:
1389
+ $ref: '#/components/schemas/transactionId'
1390
+ description: Identifier for the transaction, decided by the Payer FSP during the creation of the quote.
1391
+ transactionType:
1392
+ $ref: '#/components/schemas/transactionType'
1393
+ description: Type of transaction for which the quote is requested.
1394
+ required:
1395
+ - quoteId
1396
+ - transactionId
1397
+ - to
1398
+ - from
1399
+ - amountType
1400
+ - amount
1401
+ - currency
1402
+ - transactionType
1403
+ - initiator
1404
+ - initiatorType
1405
+ type: object
1406
+ quoteResponse:
1407
+ description: A response to a request for a quote.
1408
+ properties:
1409
+ expiration:
1410
+ $ref: '#/components/schemas/timestamp'
1411
+ description: Timestamp specifying the validity period of the quotation.
1412
+ extensionList:
1413
+ $ref: '#/components/schemas/extensionList'
1414
+ geoCode:
1415
+ $ref: '#/components/schemas/geoCode'
1416
+ description: Longitude and Latitude of the Payee. Can be used to detect fraud.
1417
+ payeeFspCommissionAmount:
1418
+ $ref: '#/components/schemas/money'
1419
+ description: Transaction commission from the Payee FSP.
1420
+ payeeFspCommissionAmountCurrency:
1421
+ $ref: '#/components/schemas/currency'
1422
+ description: Currency of the `payeeFspCommissionAmount`.
1423
+ payeeFspFeeAmount:
1424
+ $ref: '#/components/schemas/money'
1425
+ description: Payee FSP’s part of the transaction fee.
1426
+ payeeFspFeeAmountCurrency:
1427
+ $ref: '#/components/schemas/currency'
1428
+ description: The currency of the `payeeFspFeeAmount`.
1429
+ payeeReceiveAmount:
1430
+ $ref: '#/components/schemas/money'
1431
+ description: The amount that the Payee should receive in the end-to-end transaction. Optional as the Payee FSP might not want to disclose any optional Payee fees.
1432
+ payeeReceiveAmountCurrency:
1433
+ $ref: '#/components/schemas/currency'
1434
+ description: The currency of the `payeeReceiveAmount`.
1435
+ quoteId:
1436
+ $ref: '#/components/schemas/quoteId'
1437
+ description: ID of the quote that this response relates to.
1438
+ transactionId:
1439
+ $ref: '#/components/schemas/transactionId'
1440
+ description: Identifier for the transaction, decided by the Payer FSP during the creation of the quote.
1441
+ transferAmount:
1442
+ $ref: '#/components/schemas/money'
1443
+ description: The amount of money that the Payer FSP should transfer to the Payee FSP.
1444
+ transferAmountCurrency:
1445
+ $ref: '#/components/schemas/currency'
1446
+ description: The currency of the `transferAmount`.
1447
+ required:
1448
+ - quoteId
1449
+ - transactionId
1450
+ - transferAmount
1451
+ - transferAmountCurrency
1452
+ type: object
1453
+ scenario:
1454
+ enum:
1455
+ - TRANSFER
1456
+ type: string
1457
+ timestamp:
1458
+ description: An ISO-8601 formatted timestamp.
1459
+ pattern: ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:(\.\d{3}))(?:Z|[+-][01]\d:[0-5]\d)$
1460
+ type: string
1461
+ transactionId:
1462
+ description: ID of the transaction, the ID is decided by the Payer FSP during the creation of the quote.
1463
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
1464
+ type: string
1465
+ transactionRequest:
1466
+ description: A request for a pull based transfer.
1467
+ properties:
1468
+ amount:
1469
+ $ref: '#/components/schemas/money'
1470
+ currency:
1471
+ $ref: '#/components/schemas/currency'
1472
+ expiration:
1473
+ $ref: '#/components/schemas/timestamp'
1474
+ from:
1475
+ $ref: '#/components/schemas/transferParty'
1476
+ geoCode:
1477
+ $ref: '#/components/schemas/geoCode'
1478
+ initiator:
1479
+ $ref: '#/components/schemas/initiator'
1480
+ initiatorType:
1481
+ $ref: '#/components/schemas/initiatorType'
1482
+ note:
1483
+ description: An optional note associated with the requested transfer.
1484
+ maxLength: 128
1485
+ minLength: 1
1486
+ type: string
1487
+ to:
1488
+ $ref: '#/components/schemas/transferParty'
1489
+ transactionRequestId:
1490
+ $ref: '#/components/schemas/transactionRequestId'
1491
+ transactionType:
1492
+ $ref: '#/components/schemas/transactionType'
1493
+ subScenario:
1494
+ $ref: '#/components/schemas/transactionSubScenario'
1495
+ required:
1496
+ - transactionRequestId
1497
+ - to
1498
+ - from
1499
+ - amount
1500
+ - currency
1501
+ - transactionType
1502
+ - initiator
1503
+ - initiatorType
1504
+ type: object
1505
+ transactionRequestId:
1506
+ description: A Mojaloop API transaction request identifier (UUID).
1507
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
1508
+ type: string
1509
+ transactionRequestResponse:
1510
+ description: A response to a request for a quote.
1511
+ properties:
1512
+ transactionId:
1513
+ $ref: '#/components/schemas/transactionId'
1514
+ transferAmount:
1515
+ $ref: '#/components/schemas/transactionRequestState'
1516
+ required:
1517
+ - transactionId
1518
+ - transactionRequestState
1519
+ type: object
1520
+ transactionRequestState:
1521
+ enum:
1522
+ - RECEIVED
1523
+ - PENDING
1524
+ - ACCEPTED
1525
+ - REJECTED
1526
+ type: string
1527
+ transactionSubScenario:
1528
+ description: Possible sub-scenario, defined locally within the scheme (UndefinedEnum Type). Based on FSPIOP TransactionSubScenario.
1529
+ example: LOCALLY_DEFINED_SUBSCENARIO
1530
+ pattern: ^[A-Z_]{1,32}$
1531
+ title: transactionSubScenario
1532
+ type: string
1533
+ transactionType:
1534
+ enum:
1535
+ - TRANSFER
1536
+ - DEPOSIT
1537
+ - PAYMENT
1538
+ type: string
1539
+ transactionTypeObject:
1540
+ description: Object containing transfer object.
1541
+ properties:
1542
+ initiator:
1543
+ $ref: '#/components/schemas/initiator'
1544
+ initiatorType:
1545
+ $ref: '#/components/schemas/initiatorType'
1546
+ description: Specifies the type of the transaction initiator.
1547
+ scenario:
1548
+ $ref: '#/components/schemas/scenario'
1549
+ subScenario:
1550
+ $ref: '#/components/schemas/transactionSubScenario'
1551
+ required:
1552
+ - scenario
1553
+ - initiator
1554
+ - initiatorType
1555
+ type: object
1556
+ transferDetailsResponse:
1557
+ properties:
1558
+ amount:
1559
+ $ref: '#/components/schemas/money'
1560
+ amountType:
1561
+ $ref: '#/components/schemas/amountType'
1562
+ currency:
1563
+ $ref: '#/components/schemas/currency'
1564
+ extensions:
1565
+ $ref: '#/components/schemas/extensionList'
1566
+ from:
1567
+ $ref: '#/components/schemas/transferParty'
1568
+ homeTransactionId:
1569
+ description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems.
1570
+ type: string
1571
+ note:
1572
+ maxLength: 128
1573
+ type: string
1574
+ subScenario:
1575
+ $ref: '#/components/schemas/transactionSubScenario'
1576
+ timestamp:
1577
+ $ref: '#/components/schemas/timestamp'
1578
+ to:
1579
+ $ref: '#/components/schemas/transferParty'
1580
+ transactionType:
1581
+ $ref: '#/components/schemas/transactionType'
1582
+ transferState:
1583
+ $ref: '#/components/schemas/transferState'
1584
+ required:
1585
+ - homeTransactionId
1586
+ - from
1587
+ - to
1588
+ - amountType
1589
+ - currency
1590
+ - amount
1591
+ - transferState
1592
+ - transactionType
1593
+ - timestamp
1594
+ type: object
1595
+ transferError:
1596
+ description: This object represents a Mojaloop API error received at any time during the transfer process.
1597
+ properties:
1598
+ httpStatusCode:
1599
+ description: The HTTP status code returned to the caller. This is the same as the actual HTTP status code returned with the response.
1600
+ type: integer
1601
+ mojaloopError:
1602
+ $ref: '#/components/schemas/mojaloopError'
1603
+ description: If a transfer process results in an error callback during the asynchronous Mojaloop API exchange, this property will contain the underlying Mojaloop API error object.
1604
+ type: object
1605
+ transferId:
1606
+ description: A Mojaloop API transfer identifier (UUID).
1607
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
1608
+ type: string
1609
+ transferParty:
1610
+ properties:
1611
+ dateOfBirth:
1612
+ $ref: '#/components/schemas/dateOfBirth'
1613
+ displayName:
1614
+ description: Display name of the sender, if known.
1615
+ type: string
1616
+ extensionList:
1617
+ $ref: '#/components/schemas/extensionList'
1618
+ firstName:
1619
+ description: Party first name.
1620
+ type: string
1621
+ fspId:
1622
+ description: Mojaloop scheme FSPID of the DFSP which owns the party account.
1623
+ type: string
1624
+ idSubValue:
1625
+ $ref: '#/components/schemas/idSubValue'
1626
+ idType:
1627
+ $ref: '#/components/schemas/idType'
1628
+ idValue:
1629
+ description: The identifier string used to identify the sender.
1630
+ type: string
1631
+ lastName:
1632
+ description: Party last name.
1633
+ type: string
1634
+ merchantClassificationCode:
1635
+ description: Up to 4 digits specifying the sender's merchant classification, if known and applicable.
1636
+ type: string
1637
+ middleName:
1638
+ description: Party middle name.
1639
+ type: string
1640
+ type:
1641
+ $ref: '#/components/schemas/payerType'
1642
+ required:
1643
+ - idType
1644
+ - idValue
1645
+ type: object
1646
+ transferRequest:
1647
+ properties:
1648
+ amount:
1649
+ $ref: '#/components/schemas/money'
1650
+ amountType:
1651
+ $ref: '#/components/schemas/amountType'
1652
+ currency:
1653
+ $ref: '#/components/schemas/currency'
1654
+ from:
1655
+ $ref: '#/components/schemas/transferParty'
1656
+ ilpPacket:
1657
+ properties:
1658
+ data:
1659
+ $ref: '#/components/schemas/ilpPacketData'
1660
+ required:
1661
+ - data
1662
+ type: object
1663
+ note:
1664
+ maxLength: 128
1665
+ type: string
1666
+ quote:
1667
+ $ref: '#/components/schemas/quoteResponse'
1668
+ quoteRequestExtensions:
1669
+ $ref: '#/components/schemas/extensionList'
1670
+ subScenario:
1671
+ $ref: '#/components/schemas/transactionSubScenario'
1672
+ to:
1673
+ $ref: '#/components/schemas/transferParty'
1674
+ transactionType:
1675
+ $ref: '#/components/schemas/transactionType'
1676
+ transferId:
1677
+ $ref: '#/components/schemas/transferId'
1678
+ required:
1679
+ - transferId
1680
+ - quote
1681
+ - from
1682
+ - to
1683
+ - amountType
1684
+ - currency
1685
+ - amount
1686
+ - transactionType
1687
+ - ilpPacket
1688
+ type: object
1689
+ transferResponse:
1690
+ properties:
1691
+ completedTimestamp:
1692
+ $ref: '#/components/schemas/timestamp'
1693
+ description: Completed timestamp from the DFSP backend, used for testing purposes to inject a given completed timestamp via a rule.
1694
+ example: '2020-05-19T08:38:08.699-04:00'
1695
+ fulfilment:
1696
+ $ref: '#/components/schemas/ilpFulfilment'
1697
+ description: Fulfilment from the DFSP backend, used for testing purposes to inject an invalid fulfilment via a rule.
1698
+ homeTransactionId:
1699
+ description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems.
1700
+ type: string
1701
+ transferState:
1702
+ $ref: '#/components/schemas/transferState'
1703
+ description: Transfer state from the DFSP backend, used for testing purposes to inject an desired transfer state via a rule.
1704
+ example: ABORTED
1705
+ required:
1706
+ - homeTransactionId
1707
+ type: object
1708
+ transferState:
1709
+ description: |
1710
+ Below are the allowed values for the enumeration - RECEIVED DFSP has received the transfer. - RESERVED DFSP has reserved the transfer. - COMMITTED DFSP has successfully performed the transfer. - ABORTED DFSP has aborted the transfer due a rejection or failure to perform the transfer.
1711
+ enum:
1712
+ - RECEIVED
1713
+ - RESERVED
1714
+ - COMMITTED
1715
+ - ABORTED
1716
+ type: string
1717
+ transferStatus:
1718
+ enum:
1719
+ - ERROR_OCCURRED
1720
+ - WAITING_FOR_PARTY_ACCEPTANCE
1721
+ - WAITING_FOR_QUOTE_ACCEPTANCE
1722
+ - COMPLETED
1723
+ type: string