@mojaloop/api-snippets 17.0.0 → 17.0.1

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 (26) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/docs/sdk-scheme-adapter-backend-v2_0_0-openapi3-snippets.yaml +2673 -0
  3. package/lib/example.d.ts +1 -1
  4. package/lib/sdk-scheme-adapter/v2_0_0/{inbound → backend}/index.d.ts +0 -0
  5. package/lib/sdk-scheme-adapter/v2_0_0/{inbound → backend}/index.js +0 -0
  6. package/lib/sdk-scheme-adapter/v2_0_0/{inbound → backend}/index.js.map +1 -1
  7. package/lib/sdk-scheme-adapter/v2_0_0/{inbound → backend}/json-schemas.json +8987 -8769
  8. package/lib/sdk-scheme-adapter/v2_0_0/backend/openapi.d.ts +4391 -0
  9. package/lib/sdk-scheme-adapter/v2_0_0/{inbound → backend}/openapi.js +0 -0
  10. package/lib/sdk-scheme-adapter/v2_0_0/backend/openapi.js.map +1 -0
  11. package/lib/sdk-scheme-adapter/v2_0_0/{inbound → backend}/schemas.d.ts +3158 -3295
  12. package/lib/sdk-scheme-adapter/v2_0_0/{inbound → backend}/schemas.js +51 -58
  13. package/lib/sdk-scheme-adapter/v2_0_0/backend/schemas.js.map +1 -0
  14. package/lib/sdk-scheme-adapter/v2_0_0/{inbound → backend}/types.d.ts +51 -58
  15. package/lib/sdk-scheme-adapter/v2_0_0/{inbound → backend}/types.js +0 -0
  16. package/lib/sdk-scheme-adapter/v2_0_0/backend/types.js.map +1 -0
  17. package/lib/sdk-scheme-adapter/v2_0_0/index.d.ts +2 -2
  18. package/lib/sdk-scheme-adapter/v2_0_0/index.js +3 -3
  19. package/package.json +22 -22
  20. package/sdk-scheme-adapter/v2_0_0/backend/openapi.yaml +1704 -0
  21. package/docs/sdk-scheme-adapter-inbound-v2_0_0-openapi3-snippets.yaml +0 -2889
  22. package/lib/sdk-scheme-adapter/v2_0_0/inbound/openapi.d.ts +0 -4350
  23. package/lib/sdk-scheme-adapter/v2_0_0/inbound/openapi.js.map +0 -1
  24. package/lib/sdk-scheme-adapter/v2_0_0/inbound/schemas.js.map +0 -1
  25. package/lib/sdk-scheme-adapter/v2_0_0/inbound/types.js.map +0 -1
  26. package/sdk-scheme-adapter/v2_0_0/inbound/openapi.yaml +0 -1074
@@ -0,0 +1,1704 @@
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
+
388
+ components:
389
+ parameters:
390
+ bulkTransactionId:
391
+ description: Identifier of the bulk transaction to continue as returned in.
392
+ in: path
393
+ name: bulkTransactionId
394
+ required: true
395
+ schema:
396
+ 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 (‘-‘).
397
+ example: b51ec534-ee48-4575-b6a9-ead2955b8069
398
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
399
+ title: CorrelationId
400
+ type: string
401
+ idSubValue:
402
+ description: A sub-identifier of the party identifier, or a sub-type of the party identifier's type. For example, `PASSPORT`, `DRIVING_LICENSE`.
403
+ in: path
404
+ name: idSubValue
405
+ required: true
406
+ schema:
407
+ type: string
408
+ idType:
409
+ description: The type of the party identifier. For example, `MSISDN`, `PERSONAL_ID`.
410
+ in: path
411
+ name: idType
412
+ required: true
413
+ schema:
414
+ type: string
415
+ idValue:
416
+ description: The identifier value.
417
+ in: path
418
+ name: idValue
419
+ required: true
420
+ schema:
421
+ type: string
422
+ requestToPayId:
423
+ in: path
424
+ name: requestToPayId
425
+ required: true
426
+ schema:
427
+ maxLength: 128
428
+ minLength: 1
429
+ type: string
430
+ transferId:
431
+ in: path
432
+ name: transferId
433
+ required: true
434
+ schema:
435
+ type: string
436
+ responses:
437
+ '400':
438
+ content:
439
+ application/json:
440
+ schema:
441
+ $ref: '#/components/schemas/errorResponse'
442
+ description: Malformed or missing required headers or parameters.
443
+ '404':
444
+ description: The party specified by the provided identifier type and value is not known to the server.
445
+ '500':
446
+ content:
447
+ application/json:
448
+ schema:
449
+ $ref: '#/components/schemas/errorResponse'
450
+ description: An error occurred processing the request.
451
+ schemas:
452
+ DateOfBirth:
453
+ description: Date of Birth of the Party.
454
+ example: '1966-06-16'
455
+ 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)$
456
+ title: DateofBirth (type Date)
457
+ type: string
458
+ Extension:
459
+ description: Data model for the complex type Extension
460
+ properties:
461
+ key:
462
+ $ref: '#/components/schemas/ExtensionKey'
463
+ description: Extension key.
464
+ value:
465
+ $ref: '#/components/schemas/ExtensionValue'
466
+ description: Extension value.
467
+ required:
468
+ - key
469
+ - value
470
+ title: Extension
471
+ type: object
472
+ ExtensionKey:
473
+ description: Extension key.
474
+ maxLength: 32
475
+ minLength: 1
476
+ title: ExtensionKey
477
+ type: string
478
+ ExtensionList:
479
+ description: Data model for the complex type ExtensionList
480
+ properties:
481
+ extension:
482
+ description: Number of Extension elements
483
+ items:
484
+ $ref: '#/components/schemas/Extension'
485
+ maxItems: 16
486
+ minItems: 1
487
+ type: array
488
+ required:
489
+ - extension
490
+ title: ExtensionList
491
+ type: object
492
+ ExtensionValue:
493
+ description: Extension value.
494
+ maxLength: 128
495
+ minLength: 1
496
+ title: ExtensionValue
497
+ type: string
498
+ FirstName:
499
+ description: First name of the Party (Name Type).
500
+ example: Henrik
501
+ maxLength: 128
502
+ minLength: 1
503
+ pattern: ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} .,''-]{1,128}$
504
+ title: FirstName
505
+ type: string
506
+ FspId:
507
+ description: FSP identifier.
508
+ maxLength: 32
509
+ minLength: 1
510
+ title: FspId
511
+ type: string
512
+ IndividualQuote:
513
+ description: Data model for individual quote in a bulk quote request.
514
+ properties:
515
+ amount:
516
+ $ref: '#/components/schemas/money'
517
+ amountType:
518
+ $ref: '#/components/schemas/amountType'
519
+ currency:
520
+ $ref: '#/components/schemas/currency'
521
+ feesAmount:
522
+ $ref: '#/components/schemas/money'
523
+ feesCurrency:
524
+ $ref: '#/components/schemas/currency'
525
+ initiator:
526
+ $ref: '#/components/schemas/initiator'
527
+ initiatorType:
528
+ $ref: '#/components/schemas/initiatorType'
529
+ note:
530
+ description: An optional note associated with the quote.
531
+ maxLength: 128
532
+ minLength: 1
533
+ type: string
534
+ quoteId:
535
+ $ref: '#/components/schemas/quoteId'
536
+ to:
537
+ $ref: '#/components/schemas/transferParty'
538
+ transactionId:
539
+ $ref: '#/components/schemas/transactionId'
540
+ transactionType:
541
+ $ref: '#/components/schemas/transactionType'
542
+ required:
543
+ - quoteId
544
+ - transactionId
545
+ - to
546
+ - amountType
547
+ - amount
548
+ - currency
549
+ - transactionType
550
+ - initiator
551
+ - initiatorType
552
+ type: object
553
+ IndividualQuoteResultFailed:
554
+ description: Data model for failed individual quote in a bulk quote response.
555
+ properties:
556
+ errorResponse:
557
+ $ref: '#/components/schemas/errorResponse'
558
+ quoteId:
559
+ $ref: '#/components/schemas/quoteId'
560
+ required:
561
+ - quoteId
562
+ - errorResponse
563
+ type: object
564
+ IndividualQuoteResultSuccess:
565
+ description: Data model for successful individual quote in a bulk quote response.
566
+ properties:
567
+ payeeFspCommissionAmount:
568
+ $ref: '#/components/schemas/money'
569
+ payeeFspCommissionAmountCurrency:
570
+ $ref: '#/components/schemas/currency'
571
+ payeeFspFeeAmount:
572
+ $ref: '#/components/schemas/money'
573
+ payeeFspFeeAmountCurrency:
574
+ $ref: '#/components/schemas/currency'
575
+ payeeReceiveAmount:
576
+ $ref: '#/components/schemas/money'
577
+ payeeReceiveAmountCurrency:
578
+ $ref: '#/components/schemas/currency'
579
+ quoteId:
580
+ $ref: '#/components/schemas/quoteId'
581
+ transferAmount:
582
+ $ref: '#/components/schemas/money'
583
+ transferAmountCurrency:
584
+ $ref: '#/components/schemas/currency'
585
+ required:
586
+ - quoteId
587
+ type: object
588
+ IndividualTransfer:
589
+ description: Data model for individual transfer in a bulk transfer request.
590
+ properties:
591
+ amount:
592
+ $ref: '#/components/schemas/money'
593
+ amountType:
594
+ $ref: '#/components/schemas/amountType'
595
+ currency:
596
+ $ref: '#/components/schemas/currency'
597
+ feesAmount:
598
+ $ref: '#/components/schemas/money'
599
+ feesCurrency:
600
+ $ref: '#/components/schemas/currency'
601
+ initiator:
602
+ $ref: '#/components/schemas/initiator'
603
+ initiatorType:
604
+ $ref: '#/components/schemas/initiatorType'
605
+ note:
606
+ description: An optional note associated with the quote.
607
+ maxLength: 128
608
+ minLength: 1
609
+ type: string
610
+ to:
611
+ $ref: '#/components/schemas/transferParty'
612
+ transactionType:
613
+ $ref: '#/components/schemas/transactionType'
614
+ transferId:
615
+ $ref: '#/components/schemas/transferId'
616
+ required:
617
+ - transferId
618
+ - amount
619
+ - currency
620
+ type: object
621
+ IndividualTransferResult:
622
+ description: Data model for individual transfer in a bulk transfer response.
623
+ properties:
624
+ errorResponse:
625
+ $ref: '#/components/schemas/errorResponse'
626
+ extensionList:
627
+ $ref: '#/components/schemas/extensionList'
628
+ transferId:
629
+ $ref: '#/components/schemas/transferId'
630
+ required:
631
+ - transferId
632
+ type: object
633
+ LastName:
634
+ description: Last name of the Party (Name Type).
635
+ example: Karlsson
636
+ maxLength: 128
637
+ minLength: 1
638
+ pattern: ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} .,''-]{1,128}$
639
+ title: LastName
640
+ type: string
641
+ MerchantClassificationCode:
642
+ 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.
643
+ pattern: ^[\d]{1,4}$
644
+ title: MerchantClassificationCode
645
+ type: string
646
+ MiddleName:
647
+ description: Middle name of the Party (Name Type).
648
+ example: Johannes
649
+ maxLength: 128
650
+ minLength: 1
651
+ pattern: ^(?!\s*$)[\p{L}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}\p{Join_Control} .,''-]{1,128}$
652
+ title: MiddleName
653
+ type: string
654
+ Party:
655
+ description: Data model for the complex type Party.
656
+ properties:
657
+ merchantClassificationCode:
658
+ $ref: '#/components/schemas/MerchantClassificationCode'
659
+ name:
660
+ $ref: '#/components/schemas/PartyName'
661
+ partyIdInfo:
662
+ $ref: '#/components/schemas/PartyIdInfo'
663
+ personalInfo:
664
+ $ref: '#/components/schemas/PartyPersonalInfo'
665
+ required:
666
+ - partyIdInfo
667
+ title: Party
668
+ type: object
669
+ PartyComplexName:
670
+ description: Data model for the complex type PartyComplexName.
671
+ properties:
672
+ displayName:
673
+ description: Display name of the sender if known
674
+ type: string
675
+ firstName:
676
+ $ref: '#/components/schemas/FirstName'
677
+ idSubValue:
678
+ description: The sub identifier string used to identify the sender
679
+ type: string
680
+ idType:
681
+ $ref: '#/components/schemas/idType'
682
+ idValue:
683
+ description: The identifier string used to identify the sender
684
+ type: string
685
+ lastName:
686
+ $ref: '#/components/schemas/LastName'
687
+ middleName:
688
+ $ref: '#/components/schemas/MiddleName'
689
+ type:
690
+ $ref: '#/components/schemas/payerType'
691
+ title: PartyComplexName
692
+ type: object
693
+ PartyIdInfo:
694
+ description: Data model for the complex type PartyIdInfo.
695
+ properties:
696
+ extensionList:
697
+ $ref: '#/components/schemas/ExtensionList'
698
+ fspId:
699
+ $ref: '#/components/schemas/FspId'
700
+ partyIdType:
701
+ $ref: '#/components/schemas/PartyIdType'
702
+ partyIdentifier:
703
+ $ref: '#/components/schemas/PartyIdentifier'
704
+ partySubIdOrType:
705
+ $ref: '#/components/schemas/PartySubIdOrType'
706
+ required:
707
+ - partyIdType
708
+ - partyIdentifier
709
+ title: PartyIdInfo
710
+ type: object
711
+ PartyIdType:
712
+ description: |
713
+ This is a variant based on FSPIOP `PartyIdType` specification.
714
+ Main difference being the CONSENT and THIRD_PARTY_LINK enums.
715
+
716
+ Below are the allowed values for the enumeration.
717
+ - MSISDN - An MSISDN (Mobile Station International Subscriber Directory
718
+ Number, that is, the phone number) is used as reference to a participant.
719
+ The MSISDN identifier should be in international format according to the
720
+ [ITU-T E.164 standard](https://www.itu.int/rec/T-REC-E.164/en).
721
+ Optionally, the MSISDN may be prefixed by a single plus sign, indicating the
722
+ international prefix.
723
+ - EMAIL - An email is used as reference to a
724
+ participant. The format of the email should be according to the informational
725
+ [RFC 3696](https://tools.ietf.org/html/rfc3696).
726
+ - PERSONAL_ID - A personal identifier is used as reference to a participant.
727
+ Examples of personal identification are passport number, birth certificate
728
+ number, and national registration number. The identifier number is added in
729
+ the PartyIdentifier element. The personal identifier type is added in the
730
+ PartySubIdOrType element.
731
+ - BUSINESS - A specific Business (for example, an organization or a company)
732
+ is used as reference to a participant. The BUSINESS identifier can be in any
733
+ format. To make a transaction connected to a specific username or bill number
734
+ in a Business, the PartySubIdOrType element should be used.
735
+ - DEVICE - A specific device (for example, a POS or ATM) ID connected to a
736
+ specific business or organization is used as reference to a Party.
737
+ For referencing a specific device under a specific business or organization,
738
+ use the PartySubIdOrType element.
739
+ - ACCOUNT_ID - A bank account number or FSP account ID should be used as
740
+ reference to a participant. The ACCOUNT_ID identifier can be in any format,
741
+ as formats can greatly differ depending on country and FSP.
742
+ - IBAN - A bank account number or FSP account ID is used as reference to a
743
+ participant. The IBAN identifier can consist of up to 34 alphanumeric
744
+ characters and should be entered without whitespace.
745
+ - ALIAS An alias is used as reference to a participant. The alias should be
746
+ created in the FSP as an alternative reference to an account owner.
747
+ Another example of an alias is a username in the FSP system.
748
+ The ALIAS identifier can be in any format. It is also possible to use the
749
+ PartySubIdOrType element for identifying an account under an Alias defined
750
+ by the PartyIdentifier.
751
+ - CONSENT - TBD
752
+ - THIRD_PARTY_LINK - TBD
753
+ enum:
754
+ - MSISDN
755
+ - EMAIL
756
+ - PERSONAL_ID
757
+ - BUSINESS
758
+ - DEVICE
759
+ - ACCOUNT_ID
760
+ - IBAN
761
+ - ALIAS
762
+ - CONSENT
763
+ - THIRD_PARTY_LINK
764
+ example: PERSONAL_ID
765
+ title: PartyIdType
766
+ type: string
767
+ PartyIdentifier:
768
+ description: Identifier of the Party.
769
+ example: '16135551212'
770
+ maxLength: 128
771
+ minLength: 1
772
+ title: PartyIdentifier
773
+ type: string
774
+ PartyName:
775
+ description: Name of the Party. Could be a real name or a nickname.
776
+ maxLength: 128
777
+ minLength: 1
778
+ title: PartyName
779
+ type: string
780
+ PartyPersonalInfo:
781
+ description: Data model for the complex type PartyPersonalInfo.
782
+ properties:
783
+ complexName:
784
+ $ref: '#/components/schemas/PartyComplexName'
785
+ dateOfBirth:
786
+ $ref: '#/components/schemas/DateOfBirth'
787
+ title: PartyPersonalInfo
788
+ type: object
789
+ PartySubIdOrType:
790
+ description: Either a sub-identifier of a PartyIdentifier, or a sub-type of the PartyIdType, normally a PersonalIdentifierType.
791
+ maxLength: 128
792
+ minLength: 1
793
+ title: PartySubIdOrType
794
+ type: string
795
+ amountCurrency:
796
+ description: Object containing Amount and Currency of the transfer.
797
+ properties:
798
+ amount:
799
+ $ref: '#/components/schemas/money'
800
+ currency:
801
+ $ref: '#/components/schemas/currency'
802
+ required:
803
+ - amount
804
+ - currency
805
+ type: object
806
+ amountType:
807
+ enum:
808
+ - SEND
809
+ - RECEIVE
810
+ type: string
811
+ bulkQuoteId:
812
+ description: A Mojaloop API bulk quote identifier (UUID).
813
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
814
+ type: string
815
+ bulkQuoteRequest:
816
+ description: A request for a bulk quote.
817
+ properties:
818
+ bulkQuoteId:
819
+ $ref: '#/components/schemas/bulkQuoteId'
820
+ expiration:
821
+ $ref: '#/components/schemas/timestamp'
822
+ from:
823
+ $ref: '#/components/schemas/transferParty'
824
+ geoCode:
825
+ $ref: '#/components/schemas/geoCode'
826
+ individualQuotes:
827
+ items:
828
+ $ref: '#/components/schemas/IndividualQuote'
829
+ maxItems: 1000
830
+ minItems: 1
831
+ type: array
832
+ required:
833
+ - bulkQuoteId
834
+ - from
835
+ - individualQuotes
836
+ type: object
837
+ bulkQuoteResponse:
838
+ description: A response to a request for a bulk quote.
839
+ properties:
840
+ bulkQuoteId:
841
+ $ref: '#/components/schemas/bulkQuoteId'
842
+ expiration:
843
+ $ref: '#/components/schemas/timestamp'
844
+ individualQuoteResults:
845
+ description: Fees for each individual transaction, if any of them are charged per transaction.
846
+ items:
847
+ oneOf:
848
+ - $ref: '#/components/schemas/IndividualQuoteResultSuccess'
849
+ - $ref: '#/components/schemas/IndividualQuoteResultFailed'
850
+ maxItems: 1000
851
+ minItems: 1
852
+ type: array
853
+ required:
854
+ - bulkQuoteId
855
+ - individualQuoteResults
856
+ type: object
857
+ bulkTransferId:
858
+ description: A Mojaloop API transfer identifier (UUID).
859
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
860
+ type: string
861
+ bulkTransferRequest:
862
+ properties:
863
+ bulkQuote:
864
+ $ref: '#/components/schemas/bulkQuoteResponse'
865
+ bulkTransferId:
866
+ $ref: '#/components/schemas/bulkTransferId'
867
+ from:
868
+ $ref: '#/components/schemas/transferParty'
869
+ individualTransfers:
870
+ items:
871
+ $ref: '#/components/schemas/IndividualTransfer'
872
+ maxItems: 1000
873
+ minItems: 1
874
+ type: array
875
+ required:
876
+ - bulkTransferId
877
+ - individualTransfers
878
+ type: object
879
+ bulkTransferResponse:
880
+ properties:
881
+ bulkTransferId:
882
+ $ref: '#/components/schemas/bulkTransferId'
883
+ homeTransactionId:
884
+ description: Transaction ID from the DFSP backend, used to reconcile transactions between the switch and DFSP backend systems.
885
+ type: string
886
+ individualTransferResults:
887
+ items:
888
+ $ref: '#/components/schemas/IndividualTransferResult'
889
+ maxItems: 1000
890
+ minItems: 1
891
+ type: array
892
+ required:
893
+ - homeTransactionId
894
+ type: object
895
+ currency:
896
+ enum:
897
+ - AED
898
+ - AFN
899
+ - ALL
900
+ - AMD
901
+ - ANG
902
+ - AOA
903
+ - ARS
904
+ - AUD
905
+ - AWG
906
+ - AZN
907
+ - BAM
908
+ - BBD
909
+ - BDT
910
+ - BGN
911
+ - BHD
912
+ - BIF
913
+ - BMD
914
+ - BND
915
+ - BOB
916
+ - BRL
917
+ - BSD
918
+ - BTN
919
+ - BWP
920
+ - BYN
921
+ - BZD
922
+ - CAD
923
+ - CDF
924
+ - CHF
925
+ - CLP
926
+ - CNY
927
+ - COP
928
+ - CRC
929
+ - CUC
930
+ - CUP
931
+ - CVE
932
+ - CZK
933
+ - DJF
934
+ - DKK
935
+ - DOP
936
+ - DZD
937
+ - EGP
938
+ - ERN
939
+ - ETB
940
+ - EUR
941
+ - FJD
942
+ - FKP
943
+ - GBP
944
+ - GEL
945
+ - GGP
946
+ - GHS
947
+ - GIP
948
+ - GMD
949
+ - GNF
950
+ - GTQ
951
+ - GYD
952
+ - HKD
953
+ - HNL
954
+ - HRK
955
+ - HTG
956
+ - HUF
957
+ - IDR
958
+ - ILS
959
+ - IMP
960
+ - INR
961
+ - IQD
962
+ - IRR
963
+ - ISK
964
+ - JEP
965
+ - JMD
966
+ - JOD
967
+ - JPY
968
+ - KES
969
+ - KGS
970
+ - KHR
971
+ - KMF
972
+ - KPW
973
+ - KRW
974
+ - KWD
975
+ - KYD
976
+ - KZT
977
+ - LAK
978
+ - LBP
979
+ - LKR
980
+ - LRD
981
+ - LSL
982
+ - LYD
983
+ - MAD
984
+ - MDL
985
+ - MGA
986
+ - MKD
987
+ - MMK
988
+ - MNT
989
+ - MOP
990
+ - MRO
991
+ - MUR
992
+ - MVR
993
+ - MWK
994
+ - MXN
995
+ - MYR
996
+ - MZN
997
+ - NAD
998
+ - NGN
999
+ - NIO
1000
+ - NOK
1001
+ - NPR
1002
+ - NZD
1003
+ - OMR
1004
+ - PAB
1005
+ - PEN
1006
+ - PGK
1007
+ - PHP
1008
+ - PKR
1009
+ - PLN
1010
+ - PYG
1011
+ - QAR
1012
+ - RON
1013
+ - RSD
1014
+ - RUB
1015
+ - RWF
1016
+ - SAR
1017
+ - SBD
1018
+ - SCR
1019
+ - SDG
1020
+ - SEK
1021
+ - SGD
1022
+ - SHP
1023
+ - SLL
1024
+ - SOS
1025
+ - SPL
1026
+ - SRD
1027
+ - STD
1028
+ - SVC
1029
+ - SYP
1030
+ - SZL
1031
+ - THB
1032
+ - TJS
1033
+ - TMT
1034
+ - TND
1035
+ - TOP
1036
+ - TRY
1037
+ - TTD
1038
+ - TVD
1039
+ - TWD
1040
+ - TZS
1041
+ - UAH
1042
+ - UGX
1043
+ - USD
1044
+ - UYU
1045
+ - UZS
1046
+ - VEF
1047
+ - VND
1048
+ - VUV
1049
+ - WST
1050
+ - XAF
1051
+ - XCD
1052
+ - XDR
1053
+ - XOF
1054
+ - XPF
1055
+ - XTS
1056
+ - XXX
1057
+ - YER
1058
+ - ZAR
1059
+ - ZMW
1060
+ - ZWD
1061
+ maxLength: 3
1062
+ minLength: 3
1063
+ type: string
1064
+ dateOfBirth:
1065
+ description: Date of birth in the form YYYY-MM-DD.
1066
+ 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)$
1067
+ type: string
1068
+ errorCode:
1069
+ description: |
1070
+ 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.
1071
+ pattern: ^[1-9]\d{3}$
1072
+ title: ErrorCode
1073
+ type: string
1074
+ errorDescription:
1075
+ description: Error description string.
1076
+ maxLength: 128
1077
+ minLength: 1
1078
+ title: ErrorDescription
1079
+ type: string
1080
+ errorInformation:
1081
+ description: A Mojaloop API error information construct.
1082
+ properties:
1083
+ errorCode:
1084
+ $ref: '#/components/schemas/errorCode'
1085
+ description: Specific error number.
1086
+ errorDescription:
1087
+ $ref: '#/components/schemas/errorDescription'
1088
+ description: Error description string.
1089
+ extensionList:
1090
+ $ref: '#/components/schemas/extensionListComplex'
1091
+ description: Optional list of extensions, specific to deployment.
1092
+ required:
1093
+ - errorCode
1094
+ - errorDescription
1095
+ title: ErrorInformation
1096
+ type: object
1097
+ errorResponse:
1098
+ properties:
1099
+ message:
1100
+ description: Error message text
1101
+ type: string
1102
+ statusCode:
1103
+ description: |
1104
+ Backend error code from FSP. Ideally, statusCode is FSPIOP conforming. SDK will use status code to retrieve an FSPIOP error with the same code.
1105
+ Otherwise, a suitable generic FSPIOP will be used with the errorResponse in the FSPIOP error message.
1106
+ type: string
1107
+ type: object
1108
+ extensionItem:
1109
+ properties:
1110
+ key:
1111
+ maxLength: 32
1112
+ minLength: 1
1113
+ type: string
1114
+ value:
1115
+ maxLength: 128
1116
+ minLength: 1
1117
+ type: string
1118
+ type: object
1119
+ extensionList:
1120
+ items:
1121
+ $ref: '#/components/schemas/extensionItem'
1122
+ maxItems: 16
1123
+ minItems: 0
1124
+ type: array
1125
+ extensionListComplex:
1126
+ description: Data model for the complex type ExtensionList.
1127
+ properties:
1128
+ extension:
1129
+ description: Number of Extension elements.
1130
+ items:
1131
+ $ref: '#/components/schemas/extensionItem'
1132
+ maxItems: 16
1133
+ minItems: 1
1134
+ type: array
1135
+ required:
1136
+ - extension
1137
+ type: object
1138
+ fspId:
1139
+ description: FSP identifier.
1140
+ maxLength: 32
1141
+ minLength: 1
1142
+ type: string
1143
+ fulfilNotification:
1144
+ description: PUT /transfers/{transferId} object.
1145
+ properties:
1146
+ currentState:
1147
+ $ref: '#/components/schemas/transferStatus'
1148
+ direction:
1149
+ enum:
1150
+ - INBOUND
1151
+ type: string
1152
+ finalNotification:
1153
+ properties:
1154
+ completedTimestamp:
1155
+ $ref: '#/components/schemas/timestamp'
1156
+ description: Time and date when the transaction was completed.
1157
+ example: '2020-05-19T08:38:08.699-04:00'
1158
+ extensionList:
1159
+ $ref: '#/components/schemas/extensionList'
1160
+ description: Optional extension, specific to deployment.
1161
+ transferState:
1162
+ $ref: '#/components/schemas/transferState'
1163
+ description: State of the transfer.
1164
+ example: COMMITTED
1165
+ required:
1166
+ - completedTimestamp
1167
+ - transferState
1168
+ type: object
1169
+ fulfil:
1170
+ properties:
1171
+ body:
1172
+ type: object
1173
+ headers:
1174
+ type: object
1175
+ type: object
1176
+ initiatedTimestamp:
1177
+ $ref: '#/components/schemas/timestamp'
1178
+ lastError:
1179
+ $ref: '#/components/schemas/transferError'
1180
+ prepare:
1181
+ properties:
1182
+ body:
1183
+ type: object
1184
+ headers:
1185
+ type: object
1186
+ type: object
1187
+ quote:
1188
+ properties:
1189
+ fulfilment:
1190
+ type: string
1191
+ internalRequest:
1192
+ type: object
1193
+ mojaloopResponse:
1194
+ type: object
1195
+ request:
1196
+ type: object
1197
+ response:
1198
+ type: object
1199
+ type: object
1200
+ quoteRequest:
1201
+ properties:
1202
+ body:
1203
+ type: object
1204
+ headers:
1205
+ type: object
1206
+ type: object
1207
+ quoteResponse:
1208
+ properties:
1209
+ body:
1210
+ type: object
1211
+ headers:
1212
+ type: object
1213
+ type: object
1214
+ transferId:
1215
+ $ref: '#/components/schemas/transferId'
1216
+ title: TransfersIDPatchResponse
1217
+ type: object
1218
+ generalError:
1219
+ description: This object may represent a number of different error object types and so its properties may vary significantly.
1220
+ type: object
1221
+ geoCode:
1222
+ description: Indicates the geographic location from where the transaction was initiated.
1223
+ properties:
1224
+ latitude:
1225
+ $ref: '#/components/schemas/latitude'
1226
+ longitude:
1227
+ $ref: '#/components/schemas/longitude'
1228
+ required:
1229
+ - latitude
1230
+ - longitude
1231
+ type: object
1232
+ idSubValue:
1233
+ maxLength: 128
1234
+ minLength: 1
1235
+ type: string
1236
+ idType:
1237
+ enum:
1238
+ - MSISDN
1239
+ - ACCOUNT_NO
1240
+ - EMAIL
1241
+ - PERSONAL_ID
1242
+ - BUSINESS
1243
+ - DEVICE
1244
+ - ACCOUNT_ID
1245
+ - IBAN
1246
+ - ALIAS
1247
+ type: string
1248
+ idValue:
1249
+ description: Identifier of the party.
1250
+ maxLength: 128
1251
+ minLength: 1
1252
+ type: string
1253
+ ilpFulfilment:
1254
+ description: Fulfilment that must be attached to the transfer by the Payee.
1255
+ example: WLctttbu2HvTsa1XWvUoGRcQozHsqeu9Ahl2JW9Bsu8
1256
+ maxLength: 48
1257
+ pattern: ^[A-Za-z0-9-_]{43}$
1258
+ title: ilpFulfilment
1259
+ type: string
1260
+ ilpPacketData:
1261
+ description: Object containing transfer object.
1262
+ properties:
1263
+ amount:
1264
+ $ref: '#/components/schemas/amountCurrency'
1265
+ description: Amount and currency of the transaction
1266
+ payee:
1267
+ $ref: '#/components/schemas/Party'
1268
+ description: Information about the Payee in the proposed financial transaction.
1269
+ payer:
1270
+ $ref: '#/components/schemas/Party'
1271
+ description: Information about the Payer in the proposed financial transaction.
1272
+ quoteId:
1273
+ $ref: '#/components/schemas/quoteId'
1274
+ transactionId:
1275
+ $ref: '#/components/schemas/transactionId'
1276
+ description: Identifier for the transaction, decided by the Payer FSP during the creation of the quote.
1277
+ transactionType:
1278
+ $ref: '#/components/schemas/transactionTypeObject'
1279
+ description: Information about type of transaction and initiator.
1280
+ required:
1281
+ - quoteId
1282
+ - transactionId
1283
+ - payer
1284
+ - payee
1285
+ - amount
1286
+ - transactionType
1287
+ type: object
1288
+ initiator:
1289
+ enum:
1290
+ - PAYER
1291
+ - PAYEE
1292
+ type: string
1293
+ initiatorType:
1294
+ enum:
1295
+ - CONSUMER
1296
+ - AGENT
1297
+ - BUSINESS
1298
+ - DEVICE
1299
+ type: string
1300
+ latitude:
1301
+ description: The API data type Latitude is a JSON String in a lexical format that is restricted by a regular expression for interoperability reasons.
1302
+ pattern: ^(\+|-)?(?:90(?:(?:\.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:\.[0-9]{1,6})?))$
1303
+ type: string
1304
+ longitude:
1305
+ description: The API data type Longitude is a JSON String in a lexical format that is restricted by a regular expression for interoperability reasons.
1306
+ pattern: ^(\+|-)?(?:180(?:(?:\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\.[0-9]{1,6})?))$
1307
+ type: string
1308
+ mojaloopError:
1309
+ properties:
1310
+ errorInformation:
1311
+ $ref: '#/components/schemas/errorInformation'
1312
+ type: object
1313
+ money:
1314
+ pattern: ^([0]|([1-9][0-9]{0,17}))([.][0-9]{0,3}[1-9])?$
1315
+ type: string
1316
+ otpDetails:
1317
+ properties:
1318
+ otpValue:
1319
+ description: OTP value.
1320
+ type: string
1321
+ required:
1322
+ - otpValue
1323
+ type: object
1324
+ participantsResponse:
1325
+ properties:
1326
+ fspId:
1327
+ $ref: '#/components/schemas/fspId'
1328
+ type: object
1329
+ payerType:
1330
+ enum:
1331
+ - CONSUMER
1332
+ - AGENT
1333
+ - BUSINESS
1334
+ - DEVICE
1335
+ type: string
1336
+ quoteId:
1337
+ description: A Mojaloop API quote identifier (UUID).
1338
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
1339
+ type: string
1340
+ quoteRequest:
1341
+ description: A request for a quote for transfer from the DFSP backend.
1342
+ properties:
1343
+ amount:
1344
+ $ref: '#/components/schemas/money'
1345
+ 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.
1346
+ amountType:
1347
+ $ref: '#/components/schemas/amountType'
1348
+ description: SEND for send amount, RECEIVE for receive amount.
1349
+ currency:
1350
+ $ref: '#/components/schemas/currency'
1351
+ expiration:
1352
+ $ref: '#/components/schemas/timestamp'
1353
+ description: An optional deadline for responding to the quote request.
1354
+ extensionList:
1355
+ $ref: '#/components/schemas/extensionList'
1356
+ feesAmount:
1357
+ $ref: '#/components/schemas/money'
1358
+ 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.
1359
+ feesCurrency:
1360
+ $ref: '#/components/schemas/currency'
1361
+ from:
1362
+ $ref: '#/components/schemas/transferParty'
1363
+ description: Information about the Payer in the proposed financial transaction.
1364
+ geoCode:
1365
+ $ref: '#/components/schemas/geoCode'
1366
+ description: Longitude and Latitude of the initiating party. Can be used to detect fraud.
1367
+ initiator:
1368
+ $ref: '#/components/schemas/initiator'
1369
+ description: Specifies if the initiator of the transfer is the Payer or Payee.
1370
+ initiatorType:
1371
+ $ref: '#/components/schemas/initiatorType'
1372
+ description: Specifies the type of the transaction initiator.
1373
+ note:
1374
+ description: An optional note associated with the requested transfer.
1375
+ maxLength: 128
1376
+ minLength: 1
1377
+ type: string
1378
+ quoteId:
1379
+ $ref: '#/components/schemas/quoteId'
1380
+ to:
1381
+ $ref: '#/components/schemas/transferParty'
1382
+ description: Information about the Payee in the proposed financial transaction.
1383
+ transactionId:
1384
+ $ref: '#/components/schemas/transactionId'
1385
+ description: Identifier for the transaction, decided by the Payer FSP during the creation of the quote.
1386
+ transactionType:
1387
+ $ref: '#/components/schemas/transactionType'
1388
+ description: Type of transaction for which the quote is requested.
1389
+ required:
1390
+ - quoteId
1391
+ - transactionId
1392
+ - to
1393
+ - from
1394
+ - amountType
1395
+ - amount
1396
+ - currency
1397
+ - transactionType
1398
+ - initiator
1399
+ - initiatorType
1400
+ type: object
1401
+ quoteResponse:
1402
+ description: A response to a request for a quote.
1403
+ properties:
1404
+ expiration:
1405
+ $ref: '#/components/schemas/timestamp'
1406
+ description: Timestamp specifying the validity period of the quotation.
1407
+ extensionList:
1408
+ $ref: '#/components/schemas/extensionList'
1409
+ geoCode:
1410
+ $ref: '#/components/schemas/geoCode'
1411
+ description: Longitude and Latitude of the Payee. Can be used to detect fraud.
1412
+ payeeFspCommissionAmount:
1413
+ $ref: '#/components/schemas/money'
1414
+ description: Transaction commission from the Payee FSP.
1415
+ payeeFspCommissionAmountCurrency:
1416
+ $ref: '#/components/schemas/currency'
1417
+ description: Currency of the `payeeFspCommissionAmount`.
1418
+ payeeFspFeeAmount:
1419
+ $ref: '#/components/schemas/money'
1420
+ description: Payee FSP’s part of the transaction fee.
1421
+ payeeFspFeeAmountCurrency:
1422
+ $ref: '#/components/schemas/currency'
1423
+ description: The currency of the `payeeFspFeeAmount`.
1424
+ payeeReceiveAmount:
1425
+ $ref: '#/components/schemas/money'
1426
+ 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.
1427
+ payeeReceiveAmountCurrency:
1428
+ $ref: '#/components/schemas/currency'
1429
+ description: The currency of the `payeeReceiveAmount`.
1430
+ quoteId:
1431
+ $ref: '#/components/schemas/quoteId'
1432
+ description: ID of the quote that this response relates to.
1433
+ transactionId:
1434
+ $ref: '#/components/schemas/transactionId'
1435
+ description: Identifier for the transaction, decided by the Payer FSP during the creation of the quote.
1436
+ transferAmount:
1437
+ $ref: '#/components/schemas/money'
1438
+ description: The amount of money that the Payer FSP should transfer to the Payee FSP.
1439
+ transferAmountCurrency:
1440
+ $ref: '#/components/schemas/currency'
1441
+ description: The currency of the `transferAmount`.
1442
+ required:
1443
+ - quoteId
1444
+ - transactionId
1445
+ - transferAmount
1446
+ - transferAmountCurrency
1447
+ type: object
1448
+ scenario:
1449
+ enum:
1450
+ - TRANSFER
1451
+ type: string
1452
+ timestamp:
1453
+ description: An ISO-8601 formatted timestamp.
1454
+ 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)$
1455
+ type: string
1456
+ transactionId:
1457
+ description: ID of the transaction, the ID is decided by the Payer FSP during the creation of the quote.
1458
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
1459
+ type: string
1460
+ transactionRequest:
1461
+ description: A request for a pull based transfer.
1462
+ properties:
1463
+ amount:
1464
+ $ref: '#/components/schemas/money'
1465
+ currency:
1466
+ $ref: '#/components/schemas/currency'
1467
+ expiration:
1468
+ $ref: '#/components/schemas/timestamp'
1469
+ from:
1470
+ $ref: '#/components/schemas/transferParty'
1471
+ geoCode:
1472
+ $ref: '#/components/schemas/geoCode'
1473
+ initiator:
1474
+ $ref: '#/components/schemas/initiator'
1475
+ initiatorType:
1476
+ $ref: '#/components/schemas/initiatorType'
1477
+ note:
1478
+ description: An optional note associated with the requested transfer.
1479
+ maxLength: 128
1480
+ minLength: 1
1481
+ type: string
1482
+ to:
1483
+ $ref: '#/components/schemas/transferParty'
1484
+ transactionRequestId:
1485
+ $ref: '#/components/schemas/transactionRequestId'
1486
+ transactionType:
1487
+ $ref: '#/components/schemas/transactionType'
1488
+ required:
1489
+ - transactionRequestId
1490
+ - to
1491
+ - from
1492
+ - amount
1493
+ - currency
1494
+ - transactionType
1495
+ - initiator
1496
+ - initiatorType
1497
+ type: object
1498
+ transactionRequestId:
1499
+ description: A Mojaloop API transaction request identifier (UUID).
1500
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
1501
+ type: string
1502
+ transactionRequestResponse:
1503
+ description: A response to a request for a quote.
1504
+ properties:
1505
+ transactionId:
1506
+ $ref: '#/components/schemas/transactionId'
1507
+ transferAmount:
1508
+ $ref: '#/components/schemas/transactionRequestState'
1509
+ required:
1510
+ - transactionId
1511
+ - transactionRequestState
1512
+ type: object
1513
+ transactionRequestState:
1514
+ enum:
1515
+ - RECEIVED
1516
+ - PENDING
1517
+ - ACCEPTED
1518
+ - REJECTED
1519
+ type: string
1520
+ transactionType:
1521
+ enum:
1522
+ - TRANSFER
1523
+ - DEPOSIT
1524
+ - PAYMENT
1525
+ type: string
1526
+ transactionTypeObject:
1527
+ description: Object containing transfer object.
1528
+ properties:
1529
+ initiator:
1530
+ $ref: '#/components/schemas/initiator'
1531
+ initiatorType:
1532
+ $ref: '#/components/schemas/initiatorType'
1533
+ description: Specifies the type of the transaction initiator.
1534
+ scenario:
1535
+ $ref: '#/components/schemas/scenario'
1536
+ required:
1537
+ - scenario
1538
+ - initiator
1539
+ - initiatorType
1540
+ type: object
1541
+ transferDetailsResponse:
1542
+ properties:
1543
+ amount:
1544
+ $ref: '#/components/schemas/money'
1545
+ amountType:
1546
+ $ref: '#/components/schemas/amountType'
1547
+ currency:
1548
+ $ref: '#/components/schemas/currency'
1549
+ extensions:
1550
+ $ref: '#/components/schemas/extensionList'
1551
+ from:
1552
+ $ref: '#/components/schemas/transferParty'
1553
+ homeTransactionId:
1554
+ description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems.
1555
+ type: string
1556
+ note:
1557
+ maxLength: 128
1558
+ type: string
1559
+ timestamp:
1560
+ $ref: '#/components/schemas/timestamp'
1561
+ to:
1562
+ $ref: '#/components/schemas/transferParty'
1563
+ transactionType:
1564
+ $ref: '#/components/schemas/transactionType'
1565
+ transferState:
1566
+ $ref: '#/components/schemas/transferState'
1567
+ required:
1568
+ - homeTransactionId
1569
+ - from
1570
+ - to
1571
+ - amountType
1572
+ - currency
1573
+ - amount
1574
+ - transferState
1575
+ - transactionType
1576
+ - timestamp
1577
+ type: object
1578
+ transferError:
1579
+ description: This object represents a Mojaloop API error received at any time during the transfer process.
1580
+ properties:
1581
+ httpStatusCode:
1582
+ description: The HTTP status code returned to the caller. This is the same as the actual HTTP status code returned with the response.
1583
+ type: integer
1584
+ mojaloopError:
1585
+ $ref: '#/components/schemas/mojaloopError'
1586
+ 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.
1587
+ type: object
1588
+ transferId:
1589
+ description: A Mojaloop API transfer identifier (UUID).
1590
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
1591
+ type: string
1592
+ transferParty:
1593
+ properties:
1594
+ dateOfBirth:
1595
+ $ref: '#/components/schemas/dateOfBirth'
1596
+ displayName:
1597
+ description: Display name of the sender, if known.
1598
+ type: string
1599
+ extensionList:
1600
+ $ref: '#/components/schemas/extensionList'
1601
+ firstName:
1602
+ description: Party first name.
1603
+ type: string
1604
+ fspId:
1605
+ description: Mojaloop scheme FSPID of the DFSP which owns the party account.
1606
+ type: string
1607
+ idSubValue:
1608
+ $ref: '#/components/schemas/idSubValue'
1609
+ idType:
1610
+ $ref: '#/components/schemas/idType'
1611
+ idValue:
1612
+ description: The identifier string used to identify the sender.
1613
+ type: string
1614
+ lastName:
1615
+ description: Party last name.
1616
+ type: string
1617
+ merchantClassificationCode:
1618
+ description: Up to 4 digits specifying the sender's merchant classification, if known and applicable.
1619
+ type: string
1620
+ middleName:
1621
+ description: Party middle name.
1622
+ type: string
1623
+ type:
1624
+ $ref: '#/components/schemas/payerType'
1625
+ required:
1626
+ - idType
1627
+ - idValue
1628
+ type: object
1629
+ transferRequest:
1630
+ properties:
1631
+ amount:
1632
+ $ref: '#/components/schemas/money'
1633
+ amountType:
1634
+ $ref: '#/components/schemas/amountType'
1635
+ currency:
1636
+ $ref: '#/components/schemas/currency'
1637
+ from:
1638
+ $ref: '#/components/schemas/transferParty'
1639
+ ilpPacket:
1640
+ properties:
1641
+ data:
1642
+ $ref: '#/components/schemas/ilpPacketData'
1643
+ required:
1644
+ - data
1645
+ type: object
1646
+ note:
1647
+ maxLength: 128
1648
+ type: string
1649
+ quote:
1650
+ $ref: '#/components/schemas/quoteResponse'
1651
+ quoteRequestExtensions:
1652
+ $ref: '#/components/schemas/extensionList'
1653
+ to:
1654
+ $ref: '#/components/schemas/transferParty'
1655
+ transactionType:
1656
+ $ref: '#/components/schemas/transactionType'
1657
+ transferId:
1658
+ $ref: '#/components/schemas/transferId'
1659
+ required:
1660
+ - transferId
1661
+ - quote
1662
+ - from
1663
+ - to
1664
+ - amountType
1665
+ - currency
1666
+ - amount
1667
+ - transactionType
1668
+ - ilpPacket
1669
+ type: object
1670
+ transferResponse:
1671
+ properties:
1672
+ completedTimestamp:
1673
+ $ref: '#/components/schemas/timestamp'
1674
+ description: Completed timestamp from the DFSP backend, used for testing purposes to inject a given completed timestamp via a rule.
1675
+ example: '2020-05-19T08:38:08.699-04:00'
1676
+ fulfilment:
1677
+ $ref: '#/components/schemas/ilpFulfilment'
1678
+ description: Fulfilment from the DFSP backend, used for testing purposes to inject an invalid fulfilment via a rule.
1679
+ homeTransactionId:
1680
+ description: Transaction ID from the DFSP backend, used to reconcile transactions between the Switch and DFSP backend systems.
1681
+ type: string
1682
+ transferState:
1683
+ $ref: '#/components/schemas/transferState'
1684
+ description: Transfer state from the DFSP backend, used for testing purposes to inject an desired transfer state via a rule.
1685
+ example: ABORTED
1686
+ required:
1687
+ - homeTransactionId
1688
+ type: object
1689
+ transferState:
1690
+ description: |
1691
+ 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.
1692
+ enum:
1693
+ - RECEIVED
1694
+ - RESERVED
1695
+ - COMMITTED
1696
+ - ABORTED
1697
+ type: string
1698
+ transferStatus:
1699
+ enum:
1700
+ - ERROR_OCCURRED
1701
+ - WAITING_FOR_PARTY_ACCEPTANCE
1702
+ - WAITING_FOR_QUOTE_ACCEPTANCE
1703
+ - COMPLETED
1704
+ type: string