@mojaloop/sdk-scheme-adapter 14.0.0 → 15.0.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.
package/CHANGELOG.md CHANGED
@@ -1,4 +1,15 @@
1
1
  # Changelog: [mojaloop/thirdparty-api-svc](https://github.com/mojaloop/thirdparty-api-svc)
2
+ ## [15.0.0](https://github.com/mojaloop/sdk-scheme-adapter/compare/v14.0.0...v15.0.0) (2022-06-17)
3
+
4
+
5
+ ### ⚠ BREAKING CHANGES
6
+
7
+ * added outbound bulk api (#320)
8
+
9
+ ### Features
10
+
11
+ * added outbound bulk api ([#320](https://github.com/mojaloop/sdk-scheme-adapter/issues/320)) ([e2e83e9](https://github.com/mojaloop/sdk-scheme-adapter/commit/e2e83e99048a755b49123e91faa3acc03dded029))
12
+
2
13
  ## [14.0.0](https://github.com/mojaloop/sdk-scheme-adapter/compare/v13.0.4...v14.0.0) (2022-05-19)
3
14
 
4
15
 
@@ -407,8 +407,8 @@
407
407
  },
408
408
  "1068310|@mojaloop/central-services-shared>widdershins>yargs>yargs-parser": {
409
409
  "decision": "ignore",
410
- "madeAt": 1649898256486,
411
- "expiresAt": 1652490250295
410
+ "madeAt": 1654208208192,
411
+ "expiresAt": 1656800189114
412
412
  },
413
413
  "1067946|ajv": {
414
414
  "decision": "ignore",
@@ -422,8 +422,8 @@
422
422
  },
423
423
  "1070030|@mojaloop/central-services-shared>shins>markdown-it": {
424
424
  "decision": "ignore",
425
- "madeAt": 1650459472663,
426
- "expiresAt": 1653051469252
425
+ "madeAt": 1654208210848,
426
+ "expiresAt": 1656800189114
427
427
  },
428
428
  "1068154|@mojaloop/central-services-shared>shins>sanitize-html": {
429
429
  "decision": "ignore",
@@ -432,8 +432,8 @@
432
432
  },
433
433
  "1068155|@mojaloop/central-services-shared>shins>sanitize-html": {
434
434
  "decision": "ignore",
435
- "madeAt": 1650459475376,
436
- "expiresAt": 1653051469252
435
+ "madeAt": 1654208203284,
436
+ "expiresAt": 1656800189114
437
437
  },
438
438
  "1070245|@mojaloop/central-services-shared>@mojaloop/event-sdk>moment": {
439
439
  "decision": "ignore",
@@ -452,8 +452,8 @@
452
452
  },
453
453
  "1070030|widdershins>markdown-it": {
454
454
  "decision": "ignore",
455
- "madeAt": 1651072088351,
456
- "expiresAt": 1653664079920
455
+ "madeAt": 1654209004788,
456
+ "expiresAt": 1656800991863
457
457
  },
458
458
  "1068154|@mojaloop/central-services-shared>@mojaloop/event-sdk>moment>shins>markdown-it>sanitize-html": {
459
459
  "decision": "ignore",
@@ -487,23 +487,23 @@
487
487
  },
488
488
  "1067553|swagger2openapi>better-ajv-errors>jsonpointer": {
489
489
  "decision": "ignore",
490
- "madeAt": 1651072095680,
491
- "expiresAt": 1653664079920
490
+ "madeAt": 1654209013381,
491
+ "expiresAt": 1656800991863
492
492
  },
493
493
  "1067946|swagger2openapi>better-ajv-errors>jsonpointer>oas-validator>ajv": {
494
494
  "decision": "ignore",
495
- "madeAt": 1651072096735,
496
- "expiresAt": 1653664079920
495
+ "madeAt": 1654209015474,
496
+ "expiresAt": 1656800991863
497
497
  },
498
498
  "1068310|widdershins>markdown-it>yargs>yargs-parser": {
499
499
  "decision": "ignore",
500
- "madeAt": 1651072098082,
501
- "expiresAt": 1653664079920
500
+ "madeAt": 1654209017825,
501
+ "expiresAt": 1656800991863
502
502
  },
503
503
  "1070260|@mojaloop/central-services-shared>shins>sanitize-html": {
504
504
  "decision": "ignore",
505
- "madeAt": 1651249549067,
506
- "expiresAt": 1653841542147
505
+ "madeAt": 1654208205836,
506
+ "expiresAt": 1656800189114
507
507
  },
508
508
  "1068155|@mojaloop/central-services-shared>shins>markdown-it>sanitize-html": {
509
509
  "decision": "ignore",
@@ -517,8 +517,8 @@
517
517
  },
518
518
  "1070030|shins>markdown-it": {
519
519
  "decision": "ignore",
520
- "madeAt": 1652982823332,
521
- "expiresAt": 1655574816261
520
+ "madeAt": 1654872421648,
521
+ "expiresAt": 1657464405390
522
522
  },
523
523
  "1068310|@mojaloop/central-services-shared>widdershins>markdown-it>yargs>yargs-parser": {
524
524
  "decision": "ignore",
@@ -534,6 +534,66 @@
534
534
  "decision": "ignore",
535
535
  "madeAt": 1652982827137,
536
536
  "expiresAt": 1655574816261
537
+ },
538
+ "1067553|@mojaloop/central-services-shared>widdershins>swagger2openapi>better-ajv-errors>jsonpointer": {
539
+ "decision": "ignore",
540
+ "madeAt": 1654208197641,
541
+ "expiresAt": 1656800189114
542
+ },
543
+ "1067553|@mojaloop/central-services-shared>widdershins>swagger2openapi>oas-validator>better-ajv-errors>jsonpointer": {
544
+ "decision": "ignore",
545
+ "madeAt": 1654208197642,
546
+ "expiresAt": 1656800189114
547
+ },
548
+ "1067946|@mojaloop/central-services-shared>widdershins>swagger2openapi>oas-validator>ajv": {
549
+ "decision": "ignore",
550
+ "madeAt": 1654208200360,
551
+ "expiresAt": 1656800189114
552
+ },
553
+ "1070412|@mojaloop/central-services-shared>shins>ejs": {
554
+ "decision": "ignore",
555
+ "madeAt": 1654208217831,
556
+ "expiresAt": 1656800189114
557
+ },
558
+ "1070449|@mojaloop/central-services-shared>@mojaloop/event-sdk>grpc>protobufjs": {
559
+ "decision": "ignore",
560
+ "madeAt": 1654209002758,
561
+ "expiresAt": 1656800991863
562
+ },
563
+ "1070030|@mojaloop/central-services-shared>@mojaloop/event-sdk>grpc>protobufjs>shins>markdown-it": {
564
+ "decision": "ignore",
565
+ "madeAt": 1654209004788,
566
+ "expiresAt": 1656800991863
567
+ },
568
+ "1068155|@mojaloop/central-services-shared>@mojaloop/event-sdk>grpc>protobufjs>shins>markdown-it>sanitize-html": {
569
+ "decision": "ignore",
570
+ "madeAt": 1654209006663,
571
+ "expiresAt": 1656800991863
572
+ },
573
+ "1070260|@mojaloop/central-services-shared>@mojaloop/event-sdk>grpc>protobufjs>shins>markdown-it>sanitize-html": {
574
+ "decision": "ignore",
575
+ "madeAt": 1654209008676,
576
+ "expiresAt": 1656800991863
577
+ },
578
+ "1070412|ejs": {
579
+ "decision": "ignore",
580
+ "madeAt": 1654209011201,
581
+ "expiresAt": 1656800991863
582
+ },
583
+ "1070483|@mojaloop/central-services-shared>@mojaloop/event-sdk>grpc>protobufjs": {
584
+ "decision": "ignore",
585
+ "madeAt": 1654872419659,
586
+ "expiresAt": 1657464405390
587
+ },
588
+ "1070030|@mojaloop/central-services-shared>@mojaloop/event-sdk>grpc>protobufjs>widdershins>markdown-it": {
589
+ "decision": "ignore",
590
+ "madeAt": 1654872421648,
591
+ "expiresAt": 1657464405390
592
+ },
593
+ "1068310|@mojaloop/central-services-shared>@mojaloop/event-sdk>grpc>protobufjs>widdershins>markdown-it>yargs>yargs-parser": {
594
+ "decision": "ignore",
595
+ "madeAt": 1654872423852,
596
+ "expiresAt": 1657464405390
537
597
  }
538
598
  },
539
599
  "rules": {},
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mojaloop/sdk-scheme-adapter",
3
- "version": "14.0.0",
3
+ "version": "15.0.0",
4
4
  "description": "An adapter for connecting to Mojaloop API enabled switches.",
5
5
  "main": "src/index.js",
6
6
  "types": "src/index.d.ts",
@@ -17,8 +17,8 @@ info:
17
17
  the term "FSP" is equal to the term "DFSP".
18
18
  license:
19
19
  name: 'Apache License Version 2.0, January 2004'
20
- url: 'http://www.apache.org/licenses/'
21
- version: 1.0.0
20
+ url: 'https://github.com/mojaloop/documentation/blob/master/LICENSE.md'
21
+ version: 2.0.0
22
22
  paths:
23
23
  /:
24
24
  get:
@@ -165,33 +165,37 @@ paths:
165
165
  $ref: '#/components/schemas/bulkTransferRequest'
166
166
  required: true
167
167
  responses:
168
- '200':
169
- $ref: '#/components/responses/bulkTransferSuccess'
168
+ '202':
169
+ $ref: '#/components/responses/bulkTransferAccepted'
170
170
  '400':
171
171
  $ref: '#/components/responses/bulkTransferBadRequest'
172
172
  '500':
173
- $ref: '#/components/responses/bulkTransferServerError'
174
- '504':
175
- $ref: '#/components/responses/bulkTransferTimeout'
173
+ $ref: '#/components/schemas/errorResponse'
176
174
  '/bulkTransfers/{bulkTransferId}':
177
- get:
178
- summary: Retrieves information for a specific bulk transfer
175
+ put:
176
+ summary: Amends the bulk transfer request
179
177
  description: >-
180
- The HTTP request `GET /bulkTransfers/{bulktTransferId}` is used to get
181
- information regarding a bulk transfer created or requested earlier. The
182
- `{bulkTransferId}` in the URI should contain the `bulkTransferId` that
178
+ The HTTP request `PUT /bulkTransfers/{bulkTransferId}` is used to amend
179
+ information regarding a bulk transfer, i.e. when autoAcceptParty or autoAcceptQuote
180
+ is false then the payer need to provide confirmation to proceed with further processing
181
+ of the request. The `{bulkTransferId}` in the URI should contain the `bulkTransferId` that
183
182
  was used for the creation of the bulk transfer.
184
183
  tags:
185
184
  - BulkTransfers
186
185
  parameters:
187
186
  - $ref: '#/components/parameters/bulkTransferId'
187
+ requestBody:
188
+ content:
189
+ application/json:
190
+ schema:
191
+ oneOf:
192
+ - $ref: '#/components/schemas/bulkTransferContinuationAcceptParty'
193
+ - $ref: '#/components/schemas/bulkTransferContinuationAcceptQuote'
188
194
  responses:
189
- '200':
190
- description: Bulk transfer information successfully retrieved
191
- content:
192
- application/json:
193
- schema:
194
- $ref: '#/components/schemas/bulkTransferStatusResponse'
195
+ '202':
196
+ description: Bulk transfer information successfully amended
197
+ '400':
198
+ $ref: '#/components/responses/bulkTransferPutBadRequest'
195
199
  '500':
196
200
  description: An error occurred processing the bulk transfer
197
201
  content:
@@ -470,6 +474,31 @@ paths:
470
474
  $ref: '#/components/responses/simpleTransfersServerError'
471
475
  components:
472
476
  schemas:
477
+ autoAcceptPartyOption:
478
+ type: object
479
+ required:
480
+ - enabled
481
+ properties:
482
+ enabled:
483
+ type: boolean
484
+ enum:
485
+ - false
486
+ - true
487
+ autoAcceptQuote:
488
+ type: object
489
+ required:
490
+ - enabled
491
+ properties:
492
+ enabled:
493
+ type: boolean
494
+ enum:
495
+ - true
496
+ - false
497
+ perTransferFeeLimits:
498
+ type: array
499
+ minItems: 0
500
+ items:
501
+ $ref: '#/components/schemas/bulkPerTransferFeeLimit'
473
502
  TransactionInitiatorType:
474
503
  title: TransactionInitiatorType
475
504
  type: string
@@ -724,6 +753,191 @@ components:
724
753
  $ref: '#/components/schemas/Extension'
725
754
  minItems: 0
726
755
  maxItems: 16
756
+ bulkPartyLookupResponse:
757
+ description: >-
758
+ The object sent back to the payer for confirmation of payee parties.
759
+ It's basically the same object as the original bulk transfer request
760
+ with party information is added for all the payees
761
+ type: object
762
+ required:
763
+ - bulkHomeTransactionID
764
+ - from
765
+ - individualTransfers
766
+ properties:
767
+ bulkHomeTransactionID:
768
+ type: string
769
+ description: >-
770
+ Transaction ID from the DFSP backend, used to reconcile transactions
771
+ between the Switch and DFSP backend systems.
772
+ options:
773
+ $ref: '#/components/schemas/bulkTransferOptions'
774
+ from:
775
+ $ref: '#/components/schemas/Party'
776
+ individualTransfers:
777
+ description: List of individual transfers in a bulk transfer.
778
+ type: array
779
+ minItems: 1
780
+ maxItems: 1000
781
+ items:
782
+ allOf:
783
+ - $ref: '#/components/schemas/individualTransfer'
784
+ - type: object
785
+ required:
786
+ - transactionId
787
+ properties:
788
+ transactionId:
789
+ $ref: '#/components/schemas/CorrelationId'
790
+
791
+ extensions:
792
+ $ref: '#/components/schemas/ExtensionList'
793
+ lastError:
794
+ description: >
795
+ Object representing the last error to occur during a party discovery process.
796
+ This may be a Mojaloop API error returned from another entity in the
797
+ scheme or an object representing other types of error e.g.
798
+ exceptions that may occur inside the scheme adapter.
799
+ $ref: '#/components/schemas/partyError'
800
+ bulkQuoteRequestResponse:
801
+ description: >-
802
+ The object sent back to the payer for confirmation of quotes.
803
+ It's basically the same object as the original bulk transfer request
804
+ with quote information added for all the transfers
805
+ type: object
806
+ required:
807
+ - bulkHomeTransactionID
808
+ - from
809
+ - individualTransfers
810
+ properties:
811
+ bulkHomeTransactionID:
812
+ type: string
813
+ description: >-
814
+ Transaction ID from the DFSP backend, used to reconcile transactions
815
+ between the Switch and DFSP backend systems.
816
+ options:
817
+ $ref: '#/components/schemas/bulkTransferOptions'
818
+ from:
819
+ $ref: '#/components/schemas/Party'
820
+ individualTransfers:
821
+ description: List of individual transfers in a bulk transfer.
822
+ type: array
823
+ minItems: 1
824
+ maxItems: 1000
825
+ items:
826
+ allOf:
827
+ - $ref: '#/components/schemas/individualTransfer'
828
+ - type: object
829
+ required:
830
+ - transactionId
831
+ properties:
832
+ transactionId:
833
+ $ref: '#/components/schemas/CorrelationId'
834
+ - type: object
835
+ required:
836
+ - quoteResponse
837
+ properties:
838
+ quoteResponse:
839
+ $ref: '#/components/schemas/QuotesIDPutResponse'
840
+ extensions:
841
+ $ref: '#/components/schemas/ExtensionList'
842
+ lastError:
843
+ description: >
844
+ Object representing the last error to occur during a party discovery process.
845
+ This may be a Mojaloop API error returned from another entity in the
846
+ scheme or an object representing other types of error e.g.
847
+ exceptions that may occur inside the scheme adapter.
848
+ $ref: '#/components/schemas/partyError'
849
+
850
+ bulkTransferContinuationAcceptParty:
851
+ description: >-
852
+ The object sent back as confirmation of payee parties when autoAcceptParty is false.
853
+ type: object
854
+ required:
855
+ - bulkHomeTransactionID
856
+ - individualTransfers
857
+ properties:
858
+ bulkHomeTransactionID:
859
+ type: string
860
+ description: >-
861
+ Transaction ID from the DFSP backend, used to reconcile transactions
862
+ between the Switch and DFSP backend systems.
863
+ individualTransfers:
864
+ description: List of individual transfers in a bulk transfer with accept party information.
865
+ type: array
866
+ minItems: 1
867
+ maxItems: 1000
868
+ items:
869
+ allOf:
870
+ - $ref: '#/components/schemas/individualTransferAccept'
871
+ - $ref: '#/components/schemas/transferContinuationAcceptParty'
872
+ bulkTransferContinuationAcceptQuote:
873
+ description: >-
874
+ The object sent back as confirmation of quotes when autoAcceptQuotes is false.
875
+ type: object
876
+ required:
877
+ - bulkHomeTransactionID
878
+ - individualTransfers
879
+ properties:
880
+ bulkHomeTransactionID:
881
+ type: string
882
+ description: >-
883
+ Transaction ID from the DFSP backend, used to reconcile transactions
884
+ between the Switch and DFSP backend systems.
885
+ individualTransfers:
886
+ description: List of individual transfers in a bulk transfer.
887
+ type: array
888
+ minItems: 1
889
+ maxItems: 1000
890
+ items:
891
+ allOf:
892
+ - $ref: '#/components/schemas/individualTransferAccept'
893
+ - $ref: '#/components/schemas/transferContinuationAcceptQuote'
894
+ bulkTransferOptions:
895
+ type: object
896
+ required:
897
+ - autoAcceptParty
898
+ - autoAcceptQuote
899
+ - bulkExpiration
900
+ properties:
901
+ onlyValidateParty:
902
+ description: >-
903
+ Set to true if only party validation is required.
904
+ This means the quotes and transfers will not run. This is useful
905
+ for only party resolution.
906
+ type: boolean
907
+ autoAcceptParty:
908
+ $ref: '#/components/schemas/autoAcceptPartyOption'
909
+ autoAcceptQuote:
910
+ description: >-
911
+ Set to true if the quote response is accepted without confirmation from the payer.
912
+ The fees applied by the payee will be acceptable to the payer abiding by the limits
913
+ set by optional 'perTransferFeeLimits' array.
914
+ type: object
915
+ oneOf:
916
+ - $ref: '#/components/schemas/autoAcceptQuote'
917
+ skipPartyLookup:
918
+ description: >-
919
+ Set to true if supplying an FSPID for the payee party and no party
920
+ resolution is needed. This may be useful if a previous party
921
+ resolution has been performed.
922
+ type: boolean
923
+ synchronous:
924
+ description: >-
925
+ Set to true if the bulkTransfer requests need be handled synchronous.
926
+ Otherwise the requests will be handled asynchronously, meaning there will
927
+ be callbacks whenever the processing is done
928
+ type: boolean
929
+ bulkExpiration:
930
+ $ref: '#/components/schemas/DateTime'
931
+ bulkPerTransferFeeLimit:
932
+ type: object
933
+ required:
934
+ - currency
935
+ - amount
936
+ properties:
937
+ currency:
938
+ $ref: '#/components/schemas/Currency'
939
+ amount:
940
+ $ref: '#/components/schemas/Amount'
727
941
  transferParty:
728
942
  type: object
729
943
  required:
@@ -1005,7 +1219,7 @@ components:
1005
1219
  skipPartyLookup:
1006
1220
  description: >-
1007
1221
  Set to true if supplying an FSPID for the payee party and no party
1008
- resolution is needed. This may be useful is a previous party
1222
+ resolution is needed. This may be useful if a previous party
1009
1223
  resolution has been performed.
1010
1224
  type: boolean
1011
1225
  CorrelationId:
@@ -1243,6 +1457,39 @@ components:
1243
1457
  asynchronous Mojaloop API exchange, this property will contain the
1244
1458
  underlying Mojaloop API error object.
1245
1459
  $ref: '#/components/schemas/mojaloopError'
1460
+ validationError:
1461
+ type: object
1462
+ description: >-
1463
+ This object represents an error occurred during the initial validation of individual transfers in bulk
1464
+ properties:
1465
+ httpStatusCode:
1466
+ type: integer
1467
+ description: >-
1468
+ The HTTP status code returned to the caller. This is the same as the
1469
+ actual HTTP status code returned with the response.
1470
+ mojaloopError:
1471
+ description: >-
1472
+ If a transfer process results in an error callback during the
1473
+ asynchronous Mojaloop API exchange, this property will contain the
1474
+ underlying Mojaloop API error object.
1475
+ $ref: '#/components/schemas/mojaloopError'
1476
+ partyError:
1477
+ type: object
1478
+ description: >-
1479
+ This object represents a Mojaloop API error received at any time during
1480
+ the party discovery process
1481
+ properties:
1482
+ httpStatusCode:
1483
+ type: integer
1484
+ description: >-
1485
+ The HTTP status code returned to the caller. This is the same as the
1486
+ actual HTTP status code returned with the response.
1487
+ mojaloopError:
1488
+ description: >-
1489
+ If a transfer process results in an error callback during the
1490
+ asynchronous Mojaloop API exchange, this property will contain the
1491
+ underlying Mojaloop API error object.
1492
+ $ref: '#/components/schemas/mojaloopError'
1246
1493
  transferResponse:
1247
1494
  type: object
1248
1495
  required:
@@ -1323,7 +1570,7 @@ components:
1323
1570
  skipPartyLookup:
1324
1571
  description: >-
1325
1572
  Set to true if supplying an FSPID for the payee party and no party
1326
- resolution is needed. This may be useful is a previous party
1573
+ resolution is needed. This may be useful if a previous party
1327
1574
  resolution has been performed.
1328
1575
  type: boolean
1329
1576
  errorResponse:
@@ -1388,44 +1635,73 @@ components:
1388
1635
  type: object
1389
1636
  description: Data model for the complex type 'individualTransfer'.
1390
1637
  properties:
1391
- transferId:
1638
+ homeTransactionId:
1392
1639
  $ref: '#/components/schemas/CorrelationId'
1393
1640
  to:
1394
- $ref: '#/components/schemas/transferParty'
1641
+ $ref: '#/components/schemas/Party'
1642
+ reference:
1643
+ description: Payer Loan reference
1644
+ type: string
1395
1645
  amountType:
1396
1646
  $ref: '#/components/schemas/AmountType'
1397
1647
  currency:
1398
1648
  $ref: '#/components/schemas/Currency'
1399
1649
  amount:
1400
1650
  $ref: '#/components/schemas/Amount'
1401
- transactionType:
1402
- $ref: '#/components/schemas/transactionType'
1651
+ # transactionType:
1652
+ # $ref: '#/components/schemas/transactionType'
1653
+ # transferValidStatus:
1654
+ # description: >-
1655
+ # Set to true when the transfer request is valid
1656
+ # type: boolean
1403
1657
  note:
1404
1658
  $ref: '#/components/schemas/Note'
1405
- extensions:
1659
+ quoteRequestExtensions:
1406
1660
  $ref: '#/components/schemas/ExtensionList'
1661
+ transferRequestExtensions:
1662
+ $ref: '#/components/schemas/ExtensionList'
1663
+ lastError:
1664
+ description: >
1665
+ Object representing the error occured during initial validation.
1666
+ $ref: '#/components/schemas/validationError'
1407
1667
  required:
1408
- - transferId
1668
+ - homeTransactionId
1409
1669
  - to
1410
1670
  - amountType
1411
1671
  - currency
1412
- - transactionType
1413
- bulkTransferRequest:
1672
+ - amount
1673
+ # - transactionType
1674
+ # - transferValidStatus
1675
+ individualTransferAccept:
1676
+ title: IndividualTransfer
1414
1677
  type: object
1678
+ description: Data model for the 'individualTransfer' while accepting party or quote.
1679
+ properties:
1680
+ homeTransactionId:
1681
+ $ref: '#/components/schemas/CorrelationId'
1682
+ transactionId:
1683
+ $ref: '#/components/schemas/CorrelationId'
1415
1684
  required:
1416
1685
  - homeTransactionId
1686
+ - transactionId
1687
+
1688
+ bulkTransferRequest:
1689
+ type: object
1690
+ required:
1691
+ - bulkHomeTransactionID
1692
+ - options
1417
1693
  - from
1418
1694
  - individualTransfers
1419
1695
  properties:
1420
- homeTransactionId:
1696
+ bulkHomeTransactionID:
1421
1697
  type: string
1422
1698
  description: >-
1423
1699
  Transaction ID from the DFSP backend, used to reconcile transactions
1424
1700
  between the Switch and DFSP backend systems.
1425
- bulkTransferId:
1426
- $ref: '#/components/schemas/CorrelationId'
1701
+ options:
1702
+ $ref: '#/components/schemas/bulkTransferOptions'
1427
1703
  from:
1428
- $ref: '#/components/schemas/transferParty'
1704
+ $ref: '#/components/schemas/Party'
1429
1705
  individualTransfers:
1430
1706
  description: List of individual transfers in a bulk transfer.
1431
1707
  type: array
@@ -1440,8 +1716,12 @@ components:
1440
1716
  properties:
1441
1717
  transferId:
1442
1718
  $ref: '#/components/schemas/CorrelationId'
1719
+ homeTransactionId:
1720
+ $ref: '#/components/schemas/CorrelationId'
1721
+ transactionId:
1722
+ $ref: '#/components/schemas/CorrelationId'
1443
1723
  to:
1444
- $ref: '#/components/schemas/transferParty'
1724
+ $ref: '#/components/schemas/Party'
1445
1725
  amountType:
1446
1726
  $ref: '#/components/schemas/AmountType'
1447
1727
  currency:
@@ -1456,15 +1736,12 @@ components:
1456
1736
  $ref: '#/components/schemas/CorrelationId'
1457
1737
  quoteResponse:
1458
1738
  $ref: '#/components/schemas/QuotesIDPutResponse'
1459
- quoteResponseSource:
1460
- type: string
1461
- description: >
1462
- FSPID of the entity that supplied the quote response. This may not
1463
- be the same as the FSPID of the entity which owns the end user
1464
- account in the case of a FOREX transfer. i.e. it may be a FOREX
1465
- gateway.
1466
1739
  fulfil:
1467
1740
  $ref: '#/components/schemas/TransfersIDPutResponse'
1741
+ quoteRequestExtensions:
1742
+ $ref: '#/components/schemas/ExtensionList'
1743
+ transferRequestExtensions:
1744
+ $ref: '#/components/schemas/ExtensionList'
1468
1745
  lastError:
1469
1746
  description: >
1470
1747
  Object representing the last error to occur during a transfer
@@ -1475,19 +1752,50 @@ components:
1475
1752
  bulkTransferResponse:
1476
1753
  type: object
1477
1754
  required:
1755
+ - bulkHomeTransactionID
1478
1756
  - from
1757
+ - bulkExpiration
1479
1758
  - individualTransferResults
1480
1759
  properties:
1481
- transferId:
1482
- $ref: '#/components/schemas/CorrelationId'
1483
- from:
1484
- $ref: '#/components/schemas/transferParty'
1760
+ bulkHomeTransactionID:
1761
+ type: string
1762
+ description: >-
1763
+ Transaction ID from the DFSP backend, used to reconcile transactions
1764
+ between the Switch and DFSP backend systems.
1765
+ bulkExpiration:
1766
+ $ref: '#/components/schemas/DateTime'
1767
+ currentState:
1768
+ $ref: '#/components/schemas/bulkTransferStatus'
1485
1769
  individualTransferResults:
1486
1770
  type: array
1487
1771
  maxItems: 1000
1488
1772
  items:
1489
1773
  $ref: '#/components/schemas/individualTransferResult'
1490
1774
  description: List of individual transfer result in a bulk transfer response.
1775
+ extensions:
1776
+ $ref: '#/components/schemas/ExtensionList'
1777
+ bulkAcceptPartyErrorResponse:
1778
+ allOf:
1779
+ - $ref: '#/components/schemas/errorResponse'
1780
+ - type: object
1781
+ required:
1782
+ - bulkTansferState
1783
+ properties:
1784
+ bulkTransferState:
1785
+ allOf:
1786
+ - $ref: '#/components/schemas/bulkTransferContinuationAcceptParty'
1787
+ - $ref: '#/components/schemas/partyError'
1788
+ bulkAcceptQuoteErrorResponse:
1789
+ allOf:
1790
+ - $ref: '#/components/schemas/errorResponse'
1791
+ - type: object
1792
+ required:
1793
+ - bulkTansferState
1794
+ properties:
1795
+ bulkTransferState:
1796
+ allOf:
1797
+ - $ref: '#/components/schemas/bulkTransferContinuationAcceptQuote'
1798
+ - $ref: '#/components/schemas/quoteError'
1491
1799
  bulkTransferErrorResponse:
1492
1800
  allOf:
1493
1801
  - $ref: '#/components/schemas/errorResponse'
@@ -1501,6 +1809,8 @@ components:
1501
1809
  type: string
1502
1810
  enum:
1503
1811
  - ERROR_OCCURRED
1812
+ - WAITING_FOR_PARTY_ACCEPTANCE
1813
+ - WAITING_FOR_QUOTE_ACCEPTANCE
1504
1814
  - COMPLETED
1505
1815
  individualTransferFulfilment:
1506
1816
  type: object
@@ -2379,6 +2689,22 @@ components:
2379
2689
  application/json:
2380
2690
  schema:
2381
2691
  $ref: '#/components/schemas/bulkTransferResponse'
2692
+ bulkTransferAccepted:
2693
+ description: Bulk transfer accepted successfully
2694
+ bulkPartyLookupResponse:
2695
+ description: Bulk party lookup completed successfully
2696
+ content:
2697
+ application/json:
2698
+ schema:
2699
+ $ref: '#/components/schemas/bulkPartyLookupResponse'
2700
+ bulkTransferPutBadRequest:
2701
+ description: 'Malformed or missing required body, headers or parameters'
2702
+ content:
2703
+ application/json:
2704
+ schema:
2705
+ oneOf:
2706
+ - $ref: '#/components/schemas/bulkAcceptPartyErrorResponse'
2707
+ - $ref: '#/components/schemas/bulkAcceptQuoteErrorResponse'
2382
2708
  bulkTransferBadRequest:
2383
2709
  description: 'Malformed or missing required body, headers or parameters'
2384
2710
  content: