Changes for page 2. Customer
Last modified by Jenny Eklund on 2026/08/19 11:28
From empty
To version 245.1
edited by thomas hedstrom
on 2026/07/08 15:00
on 2026/07/08 15:00
Change comment: There is no comment for this version
Summary
-
Page properties (6 modified, 0 added, 0 removed)
-
Attachments (0 modified, 9 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,0 +1,1 @@ 1 +2. Customer - Parent
-
... ... @@ -1,0 +1,1 @@ 1 +Main.WebHome - Author
-
... ... @@ -1,1 +1,1 @@ 1 - XWiki.XWikiGuest1 +xwiki:XWiki.thomashedstrom - Default language
-
... ... @@ -1,0 +1,1 @@ 1 +en - Tags
-
... ... @@ -1,0 +1,1 @@ 1 +px-custom-page-content - Content
-
... ... @@ -1,0 +1,1353 @@ 1 +(% class="jumbotron" %) 2 +((( 3 +(% class="container" %) 4 +((( 5 +Integrate to **PayEx Customer API ** 6 +))) 7 +))) 8 + 9 +== Introduction == 10 + 11 +(% class="lead" %) 12 +This api is used to create/read customers or change properties related to the customer. 13 + 14 +[[image:Screenshot 2026-07-08 141842.png||alt="1612164561442-820.png"]] 15 + 16 +Each resource in the API corresponds to its own route. All routes are structured according to a specific standard, explained below 17 + 18 +The below route is an example of a route towards resource2Id, to operate on this resource you must also include the ids of its parentresources in the route. 19 +//lf-api.payex.com/ledger/**{Subdomain}**/v1/**{LedgerNumber}**/resource1/**{resource1Id}**/resource2/**{resource2Id}**// 20 + 21 +(% class="table-bordered table-striped" %) 22 +|=(% style="width: 604px;" %)Route segment|=(% style="width: 2790px;" %)Description 23 +|(% style="width:604px" %)Subdomain|(% style="width:2790px" %)In this part of the API it will be **customer** 24 +|(% style="width:604px" %)LedgerNumber|(% style="width:2790px" %)The ledger identifier/number at PayEx 25 +|(% style="width:604px" %)resource1Id|(% style="width:2790px" %)Identifier of resource1 26 +|(% style="width:604px" %)resource2Id|(% style="width:2790px" %)identifier of resource2, subresource to resource1 27 + 28 +(% class="wikigeneratedid" %) 29 +Routes that occurs in examples of this documentation will use the following identifiers 30 + 31 +(% class="table-bordered table-striped" %) 32 +|=(% style="width: 488px;" %)Resource|=(% style="width: 2271px;" %)Identifier 33 +|(% style="width:488px" %)LedgerNumber|(% style="width:2271px" %)XXX 34 +|(% style="width:488px" %)Customer|(% style="width:2271px" %)NNN (CustomerNo) 35 + 36 +(% id="HChangelog" %) 37 + 38 += Swagger = 39 + 40 +[[Swagger.json-2026-06-26>>attach:Swagger_Releases-499976(3).txt]] 41 + 42 +== Changelog == 43 + 44 +2026-07-08 45 +Added new secontion for Trusted Seller Group Consents 46 + 47 +2026-01-27 48 +Added new possible value for to ActiveConsents - PharmaciesSE 49 + 50 +2023-01-17 51 +Added //surpluses// property to the Customer resource with planned release 2024-01-23 52 + 53 +2023-11-27 54 +Added new resource Surpluses & added a general 404 not-found to problems list. 55 + 56 +2024-04-26 57 + 58 +Added TaxIdentificationNumber to the Customer resource with planned release 2024-05-28 59 + 60 +2024-05-15 61 + 62 +Added Consent and underlying resources with planned release 2024-05-28. Updated Introduction API overview visual. 63 + 64 +2025-02-14 65 + 66 +Added operation Update-Kyc-Answers and updates to the Customer resource Operations list to reflect that. Planned release 2025-03-04 67 + 68 +Added resource Kyc-Questions. Planned release 2025-03-04 69 + 70 + 71 +== 1. Customers == 72 + 73 + 74 +Get a customer from ledger using customer number as identifier 75 + 76 +==== 1.1 Get specific Customer ==== 77 + 78 +{{code language="http" title="**Request**"}} 79 +GET /ledger/customer/v1/{ownerNo}/customers/{customerNo} HTTP/1.1 80 +Host: - 81 +Authorization: Bearer<Token> 82 +Content-Type: application/json 83 + 84 +{{/code}} 85 + 86 +Get customer 87 + 88 +{{code language="http" title="**Response**"}} 89 +HTTP/1.1 200 OK 90 +Content-Type: application/json 91 + 92 +{ 93 + "customerNo": "YYY", 94 + "nationalIdentifier": { 95 + "regNo": "YYYYMMDD-NNNN", 96 + "countryCode": "SE" 97 + }, 98 + "vatNo": "SE101010101001", 99 + "legalEntity": "consumer", 100 + "name": "Test Testsson", 101 + "emailAddress": "Test@test.se", 102 + "protectedIdentity": false, 103 + "preferredLanguageCode": "SV", 104 + "legalStatus": "active", 105 + "msisdn": "\u002B467040000000", 106 + "activeConsents": [ 107 + "Betalingsservice", 108 + "Avtalegiro", 109 + "RecurringCard" 110 + ], 111 + "ediAddressInfo": { 112 + "van": "ABCXYZ", 113 + "interChangeRecipient": "Recipient_ID1", 114 + "buyerId": "123465" 115 + }, 116 + "surpluses": "/ledger/customer/v1/xxx/customers/yyy/surpluses", 117 + "legalAddress": "/ledger/customer/v1/xxx/customers/yyy/legal-address", 118 + "billingAddress": "/ledger/customer/v1/xxx/customers/yyy/billing-address", 119 + "consent": "/ledger/customer/v1/xxx/customers/yyy/consent", 120 + "operations": [ 121 + { 122 + "rel": "partial-update-customer", 123 + "method": "PATCH", 124 + "href": "/ledger/customer/v1/xxx/customers/yyy" 125 + }, 126 + { 127 + "rel": "add-billing-address", 128 + "method": "POST", 129 + "href": "/ledger/customer/v1/xxx/customers/yyy/billing-address" 130 + }, 131 + { 132 + "rel": "update-kyc-answers", 133 + "method": "POST", 134 + "href": "/ledger/customer/v1/xxx/customers/yyy/update-kyc-answers" 135 + } 136 + ], 137 + "taxIdentificationNumber": "1234567890" 138 +} 139 +{{/code}} 140 + 141 + 142 + 143 +**Possible problems** 144 + 145 +(% class="table-bordered table-striped" %) 146 +|=Http status |=Problem type |=Description 147 +|500 |internal-server-error |The requested resource '' could not be processed. Please contact support. 148 +|500 |handled-exception |The requested resource '' could not be processed. Please contact support. 149 +|500 |unhandled-exception |The requested resource '' could not be processed. Please contact support. 150 +|400 |general-validation-error |Validation error when accessing resource . Please refer to the problems property for additional details. 151 +|400 |validation |Validation error when accessing resource . Please refer to the problems property for additional details. 152 +|404 |customer-does-not-exists |The requested resource '' was not found. 153 +|404 |customer-not-found |The requested resource '' was not found. 154 + 155 +==== 1.2 Create Customer ==== 156 + 157 +Create a new customer in ledger 158 + 159 +{{code language="http" title="**Request**"}} 160 +POST /ledger/customer/v1/{ownerNo}/customers HTTP/1.1 161 +Host: - 162 +Authorization: Bearer<Token> 163 +Content-Type: application/json 164 + 165 + 166 +{{/code}} 167 + 168 + 169 +**Request object specification** 170 + 171 +(% class="table-bordered table-striped" %) 172 +|=Property |=Data type|=Format|=Required|=Description 173 +|customerNo |string | |No | 174 +|=ediAddressInfo |object | |No | 175 +| van |string | |No | 176 +| interChangeRecipient |string | |No | 177 +| buyerId |string | |No | 178 +|emailAddress |string | |No | 179 +|=legalAddress |object | |No | 180 +| addressee |string | |No | 181 +| streetAddress |string | |No | 182 +| zipCode |string | |No | 183 +| city |string | |No | 184 +| coAddress |string | |No | 185 +| countryCode |string | |No | 186 +|=billingAddress |object | |No | 187 +|legalEntity |string | |No | 188 +|msisdn |string | |No | 189 +|name |string | |No | 190 +|=nationalIdentifier |object | |No | 191 +| regNo |string | |Yes | 192 +| countryCode |string |Pattern: ^[A-Z]{2}$ |Yes | 193 +|protectedIdentity |boolean | |Yes | 194 +|preferredLanguageCode |string | |No | 195 +|vatNo |string | |No | 196 +|distributionType |string | |No | 197 +|taxIdentificationNumber |string | |No | 198 + 199 +Create a customer response 200 + 201 +{{code language="http" title="**Response**"}} 202 +HTTP/1.1 201 Created 203 +Content-Type: application/json 204 + 205 +{ 206 + "customerNo": "YYY", 207 + "@id": "/ledger/customer/v1/xxx/customers/yyy" 208 +} 209 +{{/code}} 210 + 211 + 212 +**Possible problems** 213 + 214 +(% class="table-bordered table-striped" %) 215 +|=Http status |=Problem type |=Description 216 +|500 |internal-server-error |The requested resource '' could not be processed. Please contact support. 217 +|500 |handled-exception |The requested resource '' could not be processed. Please contact support. 218 +|500 |unhandled-exception |The requested resource '' could not be processed. Please contact support. 219 +|400 |general-validation-error |Validation error when accessing resource . Please refer to the problems property for additional details. 220 +|400 |validation |Validation error when accessing resource . Please refer to the problems property for additional details. 221 +|400 |invalid-reg-no |Validation error when accessing resource . Please refer to the problems property for additional details. 222 +|400 |invalid-phone-no |Validation error when accessing resource . Please refer to the problems property for additional details. 223 +|422 |customer-already-exists |The requested resource '' could not be processed. Customer Already Exists 224 + 225 +**Response object specification** 226 + 227 +(% class="table-bordered table-striped" %) 228 +|=Property |=Data type|=Format|=Description 229 +|@id |string | |Uri identifier of the current resource 230 +|customerNo |string | | 231 +|=nationalIdentifier |object | | 232 +| regNo |string | | 233 +| countryCode |string |Pattern: ^[A-Z]{2}$ | 234 +|vatNo |string | | 235 +|legalEntity |string | | 236 +|name |string | | 237 +|emailAddress |string | | 238 +|protectedIdentity |boolean | | 239 +|preferredLanguageCode |string | | 240 +|legalStatus |string | | 241 +|msisdn |string | | 242 +|=activeConsents |array | | 243 +| |string | | 244 +|=ediAddressInfo |object | | 245 +| van |string | | 246 +| interChangeRecipient |string | | 247 +| buyerId |string | | 248 +|surpluses |dynamic | | 249 +|legalAddress |dynamic | | 250 +|billingAddress |dynamic | | 251 +|consent |dynamic | | 252 +|distributionType |string | | 253 +|operations |array | |List of operations that is possible to perform on the current resource, read more about the ~[~[hypermedia part of the response>>https://developer.payex.com/xwiki/wiki/developer/view/Main/Invoicing/ledger-api-general-docs/restful-pattern-guideline/#HHyper-mediaresponse]] 254 +|taxIdentificationNumber |string | | 255 + 256 +== 2. Kyc-questions == 257 + 258 + 259 +Get KYC questions from ledger using company number as identifier 260 + 261 +==== 2.1 Get list of Kyc-questions ==== 262 + 263 +{{code language="http" title="**Request**"}} 264 +GET /ledger/customer/v1/{ownerNo}/kyc-questions?language={language} HTTP/1.1 265 +Host: - 266 +Authorization: Bearer<Token> 267 +Content-Type: application/json 268 + 269 +{{/code}} 270 + 271 +Get CompanyInstance KYC questions if configured or a 404 company-kyc-questions-not-configured response if not 272 + 273 +{{code language="http" title="**Response**"}} 274 +HTTP/1.1 200 OK 275 +Content-Type: application/json 276 + 277 +{ 278 + "kycQuestions": [ 279 + { 280 + "questionText": "What is your current employment?", 281 + "answer": { 282 + "type": "single", 283 + "required": true, 284 + "possibleAnswers": [ 285 + { 286 + "answerCode": "selfemployed", 287 + "answerText": "Own business" 288 + }, 289 + { 290 + "answerCode": "private_employee", 291 + "answerText": "Private employee" 292 + }, 293 + { 294 + "answerCode": "goverment_employee", 295 + "answerText": "Government employee" 296 + } 297 + ] 298 + }, 299 + "questionCode": "employment" 300 + }, 301 + { 302 + "questionText": "What is your yearly income", 303 + "answer": { 304 + "type": "single", 305 + "required": true, 306 + "possibleAnswers": [ 307 + { 308 + "answerCode": "incomeinterval1", 309 + "answerText": "0-100 000 SEK" 310 + }, 311 + { 312 + "answerCode": "incomeinterval2", 313 + "answerText": "100 001-200 000 SEK" 314 + }, 315 + { 316 + "answerCode": "incomeinterval3", 317 + "answerText": "200 001-300 000 SEK" 318 + }, 319 + { 320 + "answerCode": "incomeinterval4", 321 + "answerText": "Over 300 001 SEK" 322 + } 323 + ] 324 + }, 325 + "questionCode": "income" 326 + } 327 + ], 328 + "operations": [] 329 +} 330 +{{/code}} 331 + 332 + 333 + 334 +**Query paramters** 335 + 336 +(% class="table-bordered table-striped" %) 337 +|=Name |=Required |=Description 338 +|language |False |format ISO639-1, if not supported or none given request defaults to language code 'en'(English) 339 + 340 +**Possible problems** 341 + 342 +(% class="table-bordered table-striped" %) 343 +|=Http status |=Problem type |=Description 344 +|500 |internal-server-error |The requested resource '' could not be processed. Please contact support. 345 +|500 |handled-exception |The requested resource '' could not be processed. Please contact support. 346 +|500 |unhandled-exception |The requested resource '' could not be processed. Please contact support. 347 +|400 |general-validation-error |Validation error when accessing resource . Please refer to the problems property for additional details. 348 +|404 |company-kyc-questions-not-configured |The requested resource '' was not found. 349 + 350 +**Response object specification** 351 + 352 +(% class="table-bordered table-striped" %) 353 +|=Property |=Data type|=Format|=Description 354 +|@id |string | |Uri identifier of the current resource 355 +|=kycQuestions |array | | 356 +| questionCode |string | |The code definition of the question 357 +| questionText |string | |The translated text of the question 358 +|= answer |object | | 359 +| type |string | |The type of the expected answer: single ~| multi ~| text 360 +| required |boolean | |If the answer is required 361 +| textValidationRegEx |string | |The regex the answer should match 362 +|= possibleAnswers |array | | 363 +| answerCode |string | |The code definition of the answer 364 +| answerText |string | |The translated text of the answer 365 +|= subQuestions |array | | 366 +|operations |array | |List of operations that is possible to perform on the current resource, read more about the ~[~[hypermedia part of the response>>https://developer.payex.com/xwiki/wiki/developer/view/Main/Invoicing/ledger-api-general-docs/restful-pattern-guideline/#HHyper-mediaresponse]] 367 + 368 +== 3. Active-disbursement-orders == 369 + 370 + 371 +list active surpluse disbursement orders pending disbursement batch is run. 372 + 373 +==== 3.1 Get list of Active-disbursement-orders ==== 374 + 375 +{{code language="http" title="**Request**"}} 376 +GET /ledger/customer/v1/{ownerNo}/customers/{customerNo}/surpluses/{surplusId}/active-disbursement-orders HTTP/1.1 377 +Host: - 378 +Authorization: Bearer<Token> 379 +Content-Type: application/json 380 + 381 +{{/code}} 382 + 383 +Get customer billing-address 384 + 385 +{{code language="http" title="**Response**"}} 386 +HTTP/1.1 200 OK 387 +Content-Type: application/json 388 + 389 +{ 390 + "items": [ 391 + { 392 + "operations": [], 393 + "swedishBankAccount": { 394 + "accountNo": "1234567890", 395 + "accountType": "BGSE" 396 + } 397 + } 398 + ], 399 + "navigation": { 400 + "@id": "/ledger/customer/v1/xxx/customers/yyy/surpluses/zzz/active-disbursement-orders" 401 + } 402 +} 403 +{{/code}} 404 + 405 + 406 + 407 +**Possible problems** 408 + 409 +(% class="table-bordered table-striped" %) 410 +|=Http status |=Problem type |=Description 411 +|500 |internal-server-error |The requested resource '' could not be processed. Please contact support. 412 +|500 |handled-exception |The requested resource '' could not be processed. Please contact support. 413 +|500 |unhandled-exception |The requested resource '' could not be processed. Please contact support. 414 +|400 |general-validation-error |Validation error when accessing resource . Please refer to the problems property for additional details. 415 +|400 |validation |Validation error when accessing resource . Please refer to the problems property for additional details. 416 +|404 |customer-does-not-exists |The requested resource '' was not found. 417 +|404 |customer-not-found |The requested resource '' was not found. 418 + 419 +==== 3.2 Create Active-disbursement-order ==== 420 + 421 +Add a disbursement order. Disburses all available funds on surplus account, when disbursement batch is run 422 + 423 +{{code language="http" title="**Request**"}} 424 +POST /ledger/customer/v1/{ownerNo}/customers/{customerNo}/surpluses/{surplusId}/active-disbursement-orders HTTP/1.1 425 +Host: - 426 +Authorization: Bearer<Token> 427 +Content-Type: application/json 428 + 429 +{ 430 + "swedishBankAccount": { 431 + "accountNo": "NNN", 432 + "accountType": "BGSE | PGSE | BKSE | PKSE" 433 + } 434 +} 435 +{{/code}} 436 + 437 + 438 +**Request object specification** 439 + 440 +(% class="table-bordered table-striped" %) 441 +|=Property |=Data type|=Format|=Required|=Description 442 +|activeDisbursementOrdersId |string | |No | 443 +|=norwegianBankAccount |object | |No | 444 +| accountNo |string | |Yes | 445 +|=swedishBankAccount |object | |No | 446 +| accountNo |string | |Yes | 447 +| accountType |string | |Yes | 448 +|=international |object | |No | 449 +| iban |string | |Yes | 450 +| bic |string | |Yes | 451 +|=swedishSus |object | |No | 452 +|= nationalIdentifier |object | |No | 453 +| regNo |string | |No | 454 +| countryCode |string | |No | 455 +|= address |object | |No | 456 +| addressee |string | |No | 457 +| streetAddress |string | |No | 458 +| city |string | |No | 459 +| zipCode |string | |No | 460 +| countryCode |string | |No | 461 +| coAddress |string | |No | 462 + 463 +{{code language="http" title="**Response**"}} 464 +HTTP/1.1 201 CREATED 465 +Content-Type: application/json 466 + 467 +{ 468 +} 469 +{{/code}} 470 + 471 + 472 +**Response object specification** 473 + 474 +(% class="table-bordered table-striped" %) 475 +|=Property |=Data type|=Format|=Description 476 +|=items |array | | 477 +| @id |string | |Uri identifier of the current resource 478 +| activeDisbursementOrdersId |string | | 479 +| operations |array | |List of operations that is possible to perform on the current resource, read more about the ~[~[hypermedia part of the response>>https://developer.payex.com/xwiki/wiki/developer/view/Main/Invoicing/ledger-api-general-docs/restful-pattern-guideline/#HHyper-mediaresponse]] 480 +|= norwegianBankAccount |object | | 481 +| accountNo |string | | 482 +|= swedishBankAccount |object | | 483 +| accountNo |string | | 484 +| accountType |string | | 485 +|= international |object | | 486 +| iban |string | | 487 +| bic |string | | 488 +|= swedishSus |object | | 489 +|= nationalIdentifier |object | | 490 +| regNo |string | | 491 +| countryCode |string | | 492 +|= address |object | | 493 +| addressee |string | | 494 +| streetAddress |string | | 495 +| city |string | | 496 +| zipCode |string | | 497 +| countryCode |string | | 498 +| coAddress |string | | 499 +|=navigation |object | | 500 +| @id |string |Type: uri |The current result view. 501 +| first |string |Type: uri |Link to the first results. 502 +| previous |string |Type: uri |Link to the previous results. 503 +| next |string |Type: uri |Link to the next results. 504 + 505 +== 4. Surpluses == 506 + 507 + 508 +List all available surpluses on the customer 509 + 510 +==== 4.1 Get list of Surpluses ==== 511 + 512 +{{code language="http" title="**Request**"}} 513 +GET /ledger/customer/v1/{ownerNo}/customers/{customerNo}/surpluses HTTP/1.1 514 +Host: - 515 +Authorization: Bearer<Token> 516 +Content-Type: application/json 517 + 518 +{{/code}} 519 + 520 +Get surpluses list 521 + 522 +{{code language="http" title="**Response**"}} 523 +HTTP/1.1 200 OK 524 +Content-Type: application/json 525 + 526 +{ 527 + "items": [ 528 + { 529 + "surplusId": "123", 530 + "balance": 10, 531 + "currency": "SEK", 532 + "date": "2026-07-05T00:00:00\u002B02:00", 533 + "status": "open", 534 + "invoice": "/ledger/invoice/v1/XXX/invoices/AAA", 535 + "activeDisbursementOrders": "/ledger/customer/v1/xxx/customers/yyy/surpluses/123/active-disbursement-orders", 536 + "operations": [ 537 + { 538 + "rel": "active-disbursement-orders", 539 + "method": "POST", 540 + "href": "/ledger/customer/v1/xxx/customers/yyy/surpluses/123/active-disbursement-orders" 541 + } 542 + ], 543 + "@id": "/ledger/customer/v1/xxx/customers/yyy/surpluses/123" 544 + }, 545 + { 546 + "surplusId": "456", 547 + "balance": 20, 548 + "currency": "SEK", 549 + "date": "2026-07-03T00:00:00\u002B02:00", 550 + "status": "pending-disbursement", 551 + "account": "/ledger/account/v1/XXX/accounts/BBB", 552 + "activeDisbursementOrders": "/ledger/customer/v1/xxx/customers/yyy/surpluses/456/active-disbursement-orders", 553 + "operations": [ 554 + { 555 + "rel": "active-disbursement-orders", 556 + "method": "POST", 557 + "href": "/ledger/customer/v1/xxx/customers/yyy/surpluses/456/active-disbursement-orders" 558 + } 559 + ], 560 + "@id": "/ledger/customer/v1/xxx/customers/yyy/surpluses/456" 561 + }, 562 + { 563 + "surplusId": "789", 564 + "balance": 30, 565 + "currency": "SEK", 566 + "date": "2026-06-26T00:00:00\u002B02:00", 567 + "status": "pending-regulate", 568 + "invoice": "/ledger/invoice/v1/XXX/invoices/AAA", 569 + "activeDisbursementOrders": "/ledger/customer/v1/xxx/customers/yyy/surpluses/789/active-disbursement-orders", 570 + "operations": [ 571 + { 572 + "rel": "active-disbursement-orders", 573 + "method": "POST", 574 + "href": "/ledger/customer/v1/xxx/customers/yyy/surpluses/789/active-disbursement-orders" 575 + } 576 + ], 577 + "@id": "/ledger/customer/v1/xxx/customers/yyy/surpluses/789" 578 + } 579 + ], 580 + "navigation": { 581 + "@id": "/ledger/customer/v1/xxx/customers/yyy/surpluses" 582 + } 583 +} 584 +{{/code}} 585 + 586 + 587 +A surplus is the remaining value from a payment that was greater than the current debt, also referred as an 'overpayment'. Each instance of an overpayment will create a new surplus. A surplus will often have a connection to an account or invoice based of where the payment was placed but surpluses without connection to an account or invoice also exist. Surpluses can be used to settle upcoming debt or be disbursed. 588 + 589 +==== 4.2 Get specific Surpluse ==== 590 + 591 +{{code language="http" title="**Request**"}} 592 +GET /ledger/customer/v1/{ownerNo}/customers/{customerNo}/surpluses/{surplusId} HTTP/1.1 593 +Host: - 594 +Authorization: Bearer<Token> 595 +Content-Type: application/json 596 + 597 +{{/code}} 598 + 599 +Get single surplus 600 + 601 +{{code language="http" title="**Response**"}} 602 +HTTP/1.1 200 OK 603 +Content-Type: application/json 604 + 605 +{ 606 + "surplusId": "YYY", 607 + "balance": 10, 608 + "currency": "SEK", 609 + "date": "2026-07-05T00:00:00\u002B02:00", 610 + "status": "open", 611 + "invoice": "/ledger/invoice/v1/XXX/invoices/AAA", 612 + "account": "/ledger/account/v1/XXX/accounts/BBB", 613 + "activeDisbursementOrders": "/ledger/customer/v1/xxx/customers/yyy/surpluses/yyy/active-disbursement-orders", 614 + "operations": [ 615 + { 616 + "rel": "active-disbursement-orders", 617 + "method": "POST", 618 + "href": "/ledger/customer/v1/xxx/customers/yyy/surpluses/yyy/active-disbursement-orders" 619 + } 620 + ], 621 + "@id": "/ledger/customer/v1/XXX/customers/AAA/surpluses/YYY" 622 +} 623 +{{/code}} 624 + 625 + 626 + 627 +**Response object specification** 628 + 629 +(% class="table-bordered table-striped" %) 630 +|=Property |=Data type|=Format|=Description 631 +|@id |string | |Uri identifier of the current resource 632 +|surplusId |string | | 633 +|balance |number |Type: double | 634 +|currency |string | | 635 +|date |string |Type: date-time | 636 +|status |string | | 637 +|invoice |string | | 638 +|account |string | | 639 +|activeDisbursementOrders |dynamic | | 640 +|operations |array | |List of operations that is possible to perform on the current resource, read more about the ~[~[hypermedia part of the response>>https://developer.payex.com/xwiki/wiki/developer/view/Main/Invoicing/ledger-api-general-docs/restful-pattern-guideline/#HHyper-mediaresponse]] 641 + 642 +== 5. Trusted-seller-groups == 643 + 644 + 645 +Get details about the customer's active Consent. 646 + 647 +==== 5.1 Get list of Trusted-seller-groups ==== 648 + 649 +{{code language="http" title="**Request**"}} 650 +GET /ledger/customer/v1/{ownerNo}/customers/{customerNo}/consent/trusted-seller-groups HTTP/1.1 651 +Host: - 652 +Authorization: Bearer<Token> 653 +Content-Type: application/json 654 + 655 +{{/code}} 656 + 657 +Get consent list 658 + 659 +{{code language="http" title="**Response**"}} 660 +HTTP/1.1 200 OK 661 +Content-Type: application/json 662 + 663 +{ 664 + "items": [ 665 + { 666 + "consentType": "ccccc1", 667 + "operations": [ 668 + { 669 + "rel": "delete-trusted-seller-group", 670 + "method": "DELETE", 671 + "href": "/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups/ccccc1" 672 + } 673 + ], 674 + "@id": "/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups/ccccc1" 675 + }, 676 + { 677 + "consentType": "ccccc2", 678 + "operations": [ 679 + { 680 + "rel": "delete-trusted-seller-group", 681 + "method": "DELETE", 682 + "href": "/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups/ccccc2" 683 + } 684 + ], 685 + "@id": "/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups/ccccc2" 686 + } 687 + ], 688 + "navigation": { 689 + "@id": "/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups" 690 + } 691 +} 692 +{{/code}} 693 + 694 + 695 + 696 +**Possible problems** 697 + 698 +(% class="table-bordered table-striped" %) 699 +|=Http status |=Problem type |=Description 700 +|400 |validation |Occurs if the validation of the request fails, it is described in the problem why the input is invalid. 701 +|404 |not-found |Occurs if the requested resource is not found. 702 +|409 |conflict |Occurs if the requested resource already exists. 703 +|500 |fatal |Unexpected error, logs may give details about the problem 704 + 705 +Get details about the customer's active Consent. 706 + 707 +==== 5.2 Get specific Trusted-seller-group ==== 708 + 709 +{{code language="http" title="**Request**"}} 710 +GET /ledger/customer/v1/{ownerNo}/customers/{customerNo}/consent/trusted-seller-groups/{consentType} HTTP/1.1 711 +Host: - 712 +Authorization: Bearer<Token> 713 +Content-Type: application/json 714 + 715 +{{/code}} 716 + 717 +Get single consent 718 + 719 +{{code language="http" title="**Response**"}} 720 +HTTP/1.1 200 OK 721 +Content-Type: application/json 722 + 723 +{ 724 + "consentType": "ccccc", 725 + "operations": [ 726 + { 727 + "rel": "delete-trusted-seller-group", 728 + "method": "DELETE", 729 + "href": "/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups/ccccc" 730 + } 731 + ] 732 +} 733 +{{/code}} 734 + 735 + 736 + 737 +**Possible problems** 738 + 739 +(% class="table-bordered table-striped" %) 740 +|=Http status |=Problem type |=Description 741 +|400 |validation |Occurs if the validation of the request fails, it is described in the problem why the input is invalid. 742 +|404 |not-found |Occurs if the requested resource is not found. 743 +|409 |conflict |Occurs if the requested resource already exists. 744 +|500 |fatal |Unexpected error, logs may give details about the problem 745 + 746 +==== 5.3 Create Trusted-seller-group ==== 747 + 748 +Save a pdf Consent document as a Base64 string for specific CustomerNo and ConsentType. 749 + 750 +{{code language="http" title="**Request**"}} 751 +POST /ledger/customer/v1/{ownerNo}/customers/{customerNo}/consent/trusted-seller-groups HTTP/1.1 752 +Host: - 753 +Authorization: Bearer<Token> 754 +Content-Type: application/json 755 + 756 +{ 757 + "consentType": "PharmaciesSE", 758 + "applicationDocument": { 759 + "content": "JVBERi0xLjQKJ...", 760 + "fileType": "pdf" 761 + } 762 +} 763 +{{/code}} 764 + 765 + 766 +**Request object specification** 767 + 768 +(% class="table-bordered table-striped" %) 769 +|=Property |=Data type|=Format|=Required|=Description 770 +|consentType |string | |Yes |Name of the Consent Type 771 +|=applicationDocument |object | |Yes | 772 +| content |string | |Yes |A base64 encoded string representing the content of the document. 773 +| fileType |string |Pattern: (?i)^(pdf~|txt~|json~|xml)$ |Yes |The file type of the document. Supported file types are: pdf, txt, json and xml. The validation is case insensitive. 774 + 775 +Save a consent document 776 + 777 +{{code language="http" title="**Response**"}} 778 +HTTP/1.1 200 OK 779 +Content-Type: application/json 780 + 781 +{ 782 + "consentType": "cccc", 783 + "operations": [ 784 + { 785 + "rel": "delete-trusted-seller-group", 786 + "method": "DELETE", 787 + "href": "/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups/cccc" 788 + } 789 + ], 790 + "@id": "/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups/cccc" 791 +} 792 +{{/code}} 793 + 794 + 795 +**Possible problems** 796 + 797 +(% class="table-bordered table-striped" %) 798 +|=Http status |=Problem type |=Description 799 +|400 |validation |Occurs if the validation of the request fails, it is described in the problem why the input is invalid. 800 +|404 |not-found |Occurs if the requested resource is not found. 801 +|409 |conflict |Occurs if the requested resource already exists. 802 +|500 |fatal |Unexpected error, logs may give details about the problem 803 + 804 +**Response object specification** 805 + 806 +(% class="table-bordered table-striped" %) 807 +|=Property |=Data type|=Format|=Description 808 +|@id |string | |Uri identifier of the current resource 809 +|consentType |string | | 810 +|operations |array | |List of operations that is possible to perform on the current resource, read more about the ~[~[hypermedia part of the response>>https://developer.payex.com/xwiki/wiki/developer/view/Main/Invoicing/ledger-api-general-docs/restful-pattern-guideline/#HHyper-mediaresponse]] 811 + 812 +== 6. Legal-address == 813 + 814 + 815 +The legal address is where claims is normally sent to. It is required for a customer to have a legal address registered 816 + 817 +==== 6.1 Get list of Legal-address ==== 818 + 819 +{{code language="http" title="**Request**"}} 820 +GET /ledger/customer/v1/{ownerNo}/customers/{customerNo}/legal-address HTTP/1.1 821 +Host: - 822 +Authorization: Bearer<Token> 823 +Content-Type: application/json 824 + 825 +{{/code}} 826 + 827 +Get customer legal-address 828 + 829 +{{code language="http" title="**Response**"}} 830 +HTTP/1.1 200 OK 831 +Content-Type: application/json 832 + 833 +{ 834 + "addressee": "Test Testsson", 835 + "streetAddress": "Test street 1", 836 + "zipCode": "60000", 837 + "city": "Test town", 838 + "coAddress": "Co address", 839 + "countryCode": "SE", 840 + "operations": [ 841 + { 842 + "rel": "update-legal-address", 843 + "method": "PUT", 844 + "href": "/ledger/customer/v1/xxx/customers/yyy/legal-address" 845 + }, 846 + { 847 + "rel": "update-legal-address-from-population-register", 848 + "method": "POST", 849 + "href": "/ledger/customer/v1/xxx/customers/yyy/legal-address/update-legal-address-from-population-register" 850 + } 851 + ] 852 +} 853 +{{/code}} 854 + 855 + 856 + 857 +**Possible problems** 858 + 859 +(% class="table-bordered table-striped" %) 860 +|=Http status |=Problem type |=Description 861 +|500 |internal-server-error |The requested resource '' could not be processed. Please contact support. 862 +|500 |handled-exception |The requested resource '' could not be processed. Please contact support. 863 +|500 |unhandled-exception |The requested resource '' could not be processed. Please contact support. 864 +|400 |general-validation-error |Validation error when accessing resource . Please refer to the problems property for additional details. 865 +|400 |validation |Validation error when accessing resource . Please refer to the problems property for additional details. 866 +|404 |customer-does-not-exists |The requested resource '' was not found. 867 +|404 |customer-not-found |The requested resource '' was not found. 868 + 869 +**Response object specification** 870 + 871 +(% class="table-bordered table-striped" %) 872 +|=Property |=Data type|=Format|=Description 873 +|@id |string | |Uri identifier of the current resource 874 +|addressee |string | | 875 +|streetAddress |string | | 876 +|zipCode |string | | 877 +|city |string | | 878 +|coAddress |string | | 879 +|countryCode |string | | 880 +|operations |array | |List of operations that is possible to perform on the current resource, read more about the ~[~[hypermedia part of the response>>https://developer.payex.com/xwiki/wiki/developer/view/Main/Invoicing/ledger-api-general-docs/restful-pattern-guideline/#HHyper-mediaresponse]] 881 + 882 +== 7. Update-kyc-answers == 883 + 884 + 885 +==== 7.1 Create Update-kyc-answer ==== 886 + 887 +When exposed on customer resources operations list it's a indication previous KYC answers up for renewal. Able to update KYC with this operation even if current aren't expired but won't be suggested on the customer resource 888 + 889 +{{code language="http" title="**Request**"}} 890 +POST /ledger/customer/v1/{ownerNo}/customers/{customerNo}/update-kyc-answers HTTP/1.1 891 +Host: - 892 +Authorization: Bearer<Token> 893 +Content-Type: application/json 894 + 895 +{ 896 + "answers": [ 897 + { 898 + "questionCode": "taxable_outside_sweden", 899 + "answerCode": "no" 900 + }, 901 + { 902 + "questionCode": "multiple_citizenship", 903 + "answerCode": "yes" 904 + }, 905 + { 906 + "questionCode": "citizen_ship_country_codes", 907 + "answerCode": "SWE" 908 + }, 909 + { 910 + "questionCode": "citizen_ship_country_codes", 911 + "answerCode": "NOR" 912 + } 913 + ] 914 +} 915 +{{/code}} 916 + 917 + 918 +**Request object specification** 919 + 920 +(% class="table-bordered table-striped" %) 921 +|=Property |=Data type|=Format|=Required|=Description 922 +|=answers |array | |Yes | 923 +| questionCode |string | |Yes |The code definition of the question 924 +| answerCode |string | |Yes |The code definition of the answer 925 + 926 +{{code language="http" title="**Response**"}} 927 +HTTP/1.1 201 CREATED 928 +Content-Type: application/json 929 + 930 +{ 931 +} 932 +{{/code}} 933 + 934 + 935 +**Possible problems** 936 + 937 +(% class="table-bordered table-striped" %) 938 +|=Http status |=Problem type |=Description 939 +|400 |validation |Occurs if the validation of the request fails, it is described in the problem why the input is invalid. 940 +|404 |not-found |Occurs if the customer not found or if KYC is not configured on this ledger. 941 +|409 |company-kyc-questions-not-configured |Occurs if ledger is not currently configured for KYC 942 +|500 |fatal |Unexpected error, logs may give details about the problem 943 + 944 +== 8. Update-legal-address-from-population-register == 945 + 946 + 947 +==== 8.1 Create Update-legal-address-from-population-register ==== 948 + 949 +Execution of this operation will result in an attempt to retrieve (and replace) the customer's legal address from the population registry. 950 + 951 +{{code language="http" title="**Request**"}} 952 +POST /ledger/customer/v1/{ownerNo}/customers/{customerNo}/legal-address/update-legal-address-from-population-register HTTP/1.1 953 +Host: - 954 +Authorization: Bearer<Token> 955 +Content-Type: application/json 956 + 957 +{ 958 +} 959 +{{/code}} 960 + 961 + 962 + 963 +{{code language="http" title="**Response**"}} 964 +HTTP/1.1 204 NO CONTENT 965 +Content-Type: application/json 966 + 967 +{} 968 +{{/code}} 969 + 970 + 971 +**Possible problems** 972 + 973 +(% class="table-bordered table-striped" %) 974 +|=Http status |=Problem type |=Description 975 +|500 |internal-server-error |The requested resource '' could not be processed. Please contact support. 976 +|500 |handled-exception |The requested resource '' could not be processed. Please contact support. 977 +|500 |unhandled-exception |The requested resource '' could not be processed. Please contact support. 978 +|400 |general-validation-error |Validation error when accessing resource . Please refer to the problems property for additional details. 979 +|400 |validation |Validation error when accessing resource . Please refer to the problems property for additional details. 980 +|404 |customer-does-not-exists |The requested resource '' was not found. 981 +|404 |customer-not-found |The requested resource '' was not found. 982 + 983 +== 9. Billing-address == 984 + 985 + 986 +The billing address is where invoices/bills/letters etc. is normally sent to. This address is optional 987 + 988 +==== 9.1 Get list of Billing-address ==== 989 + 990 +{{code language="http" title="**Request**"}} 991 +GET /ledger/customer/v1/{ownerNo}/customers/{customerNo}/billing-address HTTP/1.1 992 +Host: - 993 +Authorization: Bearer<Token> 994 +Content-Type: application/json 995 + 996 +{{/code}} 997 + 998 +Get customer billing-address 999 + 1000 +{{code language="http" title="**Response**"}} 1001 +HTTP/1.1 200 OK 1002 +Content-Type: application/json 1003 + 1004 +{ 1005 + "addressee": "Test Testsson", 1006 + "streetAddress": "Test street 1", 1007 + "zipCode": "60000", 1008 + "city": "Test town", 1009 + "coAddress": "Co address", 1010 + "countryCode": "SE", 1011 + "operations": [ 1012 + { 1013 + "rel": "update-billing-address", 1014 + "method": "PUT", 1015 + "href": "/ledger/customer/v1/xxx/customers/yyy/billing-address" 1016 + }, 1017 + { 1018 + "rel": "delete-billing-address", 1019 + "method": "DELETE", 1020 + "href": "/ledger/customer/v1/xxx/customers/yyy/billing-address" 1021 + } 1022 + ] 1023 +} 1024 +{{/code}} 1025 + 1026 + 1027 + 1028 +**Possible problems** 1029 + 1030 +(% class="table-bordered table-striped" %) 1031 +|=Http status |=Problem type |=Description 1032 +|500 |internal-server-error |The requested resource '' could not be processed. Please contact support. 1033 +|500 |handled-exception |The requested resource '' could not be processed. Please contact support. 1034 +|500 |unhandled-exception |The requested resource '' could not be processed. Please contact support. 1035 +|400 |general-validation-error |Validation error when accessing resource . Please refer to the problems property for additional details. 1036 +|400 |validation |Validation error when accessing resource . Please refer to the problems property for additional details. 1037 +|404 |customer-does-not-exists |The requested resource '' was not found. 1038 +|404 |customer-not-found |The requested resource '' was not found. 1039 + 1040 +==== 9.2 Create Billing-addre ==== 1041 + 1042 +Add a billing address to customer. The billing address is where invoices/bills/letters etc. is normally sent to. This address is optional 1043 + 1044 +{{code language="http" title="**Request**"}} 1045 +POST /ledger/customer/v1/{ownerNo}/customers/{customerNo}/billing-address HTTP/1.1 1046 +Host: - 1047 +Authorization: Bearer<Token> 1048 +Content-Type: application/json 1049 + 1050 +{ 1051 + "addressee": "Test Testsson", 1052 + "streetAddress": "Test street 1", 1053 + "zipCode": "60000", 1054 + "city": "Test town", 1055 + "coAddress": "Co address", 1056 + "countryCode": "SE" 1057 +} 1058 +{{/code}} 1059 + 1060 + 1061 +**Request object specification** 1062 + 1063 +(% class="table-bordered table-striped" %) 1064 +|=Property |=Data type|=Format|=Required|=Description 1065 +|addressee |string | |No | 1066 +|streetAddress |string | |No | 1067 +|zipCode |string | |No | 1068 +|city |string | |No | 1069 +|coAddress |string | |No | 1070 +|countryCode |string | |No | 1071 + 1072 +{{code language="http" title="**Response**"}} 1073 +HTTP/1.1 201 CREATED 1074 +Content-Type: application/json 1075 + 1076 +{ 1077 +} 1078 +{{/code}} 1079 + 1080 + 1081 +**Possible problems** 1082 + 1083 +(% class="table-bordered table-striped" %) 1084 +|=Http status |=Problem type |=Description 1085 +|500 |internal-server-error |The requested resource '' could not be processed. Please contact support. 1086 +|500 |handled-exception |The requested resource '' could not be processed. Please contact support. 1087 +|500 |unhandled-exception |The requested resource '' could not be processed. Please contact support. 1088 +|400 |general-validation-error |Validation error when accessing resource . Please refer to the problems property for additional details. 1089 +|400 |validation |Validation error when accessing resource . Please refer to the problems property for additional details. 1090 +|404 |customer-does-not-exists |The requested resource '' was not found. 1091 +|404 |customer-not-found |The requested resource '' was not found. 1092 + 1093 +**Response object specification** 1094 + 1095 +(% class="table-bordered table-striped" %) 1096 +|=Property |=Data type|=Format|=Description 1097 +|@id |string | |Uri identifier of the current resource 1098 +|addressee |string | | 1099 +|streetAddress |string | | 1100 +|zipCode |string | | 1101 +|city |string | | 1102 +|coAddress |string | | 1103 +|countryCode |string | | 1104 +|operations |array | |List of operations that is possible to perform on the current resource, read more about the ~[~[hypermedia part of the response>>https://developer.payex.com/xwiki/wiki/developer/view/Main/Invoicing/ledger-api-general-docs/restful-pattern-guideline/#HHyper-mediaresponse]] 1105 + 1106 +== 10. Consent == 1107 + 1108 + 1109 +Underlying resources that display information or enable registration of a customer's consent. 1110 + 1111 +==== 10.1 Get list of Consent ==== 1112 + 1113 +{{code language="http" title="**Request**"}} 1114 +GET /ledger/customer/v1/{ownerNo}/customers/{customerNo}/consent HTTP/1.1 1115 +Host: - 1116 +Authorization: Bearer<Token> 1117 +Content-Type: application/json 1118 + 1119 +{{/code}} 1120 + 1121 +Get customer consent 1122 + 1123 +{{code language="http" title="**Response**"}} 1124 +HTTP/1.1 200 OK 1125 +Content-Type: application/json 1126 + 1127 +{ 1128 + "recurringCard": "/ledger/customer/v1/xxx/customers/yyy/consent/recurring-card", 1129 + "recurringCardRedirectRegistration": "/ledger/customer/v1/xxx/customers/yyy/consent/recurring-card-redirect-registration", 1130 + "trustedSellerGroups": "/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups", 1131 + "availableTrustedSellerGroupConsents": [], 1132 + "operations": [ 1133 + { 1134 + "rel": "add-trusted-seller-group", 1135 + "method": "POST", 1136 + "href": "/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups" 1137 + }, 1138 + { 1139 + "rel": "add-recurring-card-redirect-registration", 1140 + "method": "POST", 1141 + "href": "/ledger/customer/v1/xxx/customers/yyy/consent/recurring-card-redirect-registration" 1142 + } 1143 + ] 1144 +} 1145 +{{/code}} 1146 + 1147 + 1148 + 1149 +**Response object specification** 1150 + 1151 +(% class="table-bordered table-striped" %) 1152 +|=Property |=Data type|=Format|=Description 1153 +|@id |string | |Uri identifier of the current resource 1154 +|recurringCard |dynamic | | 1155 +|recurringCardRedirectRegistration |dynamic | | 1156 +|trustedSellerGroups |dynamic | | 1157 +|=availableTrustedSellerGroupConsents |array | | 1158 +| |string | | 1159 +|operations |array | |List of operations that is possible to perform on the current resource, read more about the ~[~[hypermedia part of the response>>https://developer.payex.com/xwiki/wiki/developer/view/Main/Invoicing/ledger-api-general-docs/restful-pattern-guideline/#HHyper-mediaresponse]] 1160 + 1161 +== 11. Find-customer == 1162 + 1163 + 1164 +==== 11.1 Create Find-customer ==== 1165 + 1166 + It is used to find customer with nationalIdentifier. 1167 + 1168 +{{code language="http" title="**Request**"}} 1169 +POST /ledger/customer/v1/{ownerNo}/find-customer HTTP/1.1 1170 +Host: - 1171 +Authorization: Bearer<Token> 1172 +Content-Type: application/json 1173 + 1174 +{ 1175 + "nationalIdentifier": { 1176 + "regNo": "YYYYMMDD-NNNN", 1177 + "countryCode": "SE" 1178 + } 1179 +} 1180 +{{/code}} 1181 + 1182 + 1183 +**Request object specification** 1184 + 1185 +(% class="table-bordered table-striped" %) 1186 +|=Property |=Data type|=Format|=Required|=Description 1187 +|=nationalIdentifier |object | |No | 1188 +| regNo |string | |Yes | 1189 +| countryCode |string | |No | 1190 + 1191 +Find customer with nationalIdentifier, regno and countrycode, returns CustomerNo = YYY 1192 + 1193 +{{code language="http" title="**Response**"}} 1194 +HTTP/1.1 200 OK 1195 +Content-Type: application/json 1196 + 1197 +{ 1198 + "customerNo": "YYY" 1199 +} 1200 +{{/code}} 1201 + 1202 + 1203 +**Possible problems** 1204 + 1205 +(% class="table-bordered table-striped" %) 1206 +|=Http status |=Problem type |=Description 1207 +|500 |internal-server-error |The requested resource '' could not be processed. Please contact support. 1208 +|500 |handled-exception |The requested resource '' could not be processed. Please contact support. 1209 +|500 |unhandled-exception |The requested resource '' could not be processed. Please contact support. 1210 +|400 |general-validation-error |Validation error when accessing resource . Please refer to the problems property for additional details. 1211 +|400 |validation |Validation error when accessing resource . Please refer to the problems property for additional details. 1212 +|400 |invalid-reg-no |Validation error when accessing resource . Please refer to the problems property for additional details. 1213 +|404 |customer-does-not-exists |The requested resource '' was not found. 1214 +|404 |customer-not-found |The requested resource '' was not found. 1215 + 1216 +**Response object specification** 1217 + 1218 +(% class="table-bordered table-striped" %) 1219 +|=Property |=Data type|=Format|=Description 1220 +|@id |string | |Uri identifier of the current resource 1221 +|customerNo |string | | 1222 + 1223 +== 12. Recurring-card == 1224 + 1225 + 1226 +Get details about the customer's active Recurring Card Consent. 1227 + 1228 +==== 12.1 Get list of Recurring-card ==== 1229 + 1230 +{{code language="http" title="**Request**"}} 1231 +GET /ledger/customer/v1/{ownerNo}/customers/{customerNo}/consent/recurring-card HTTP/1.1 1232 +Host: - 1233 +Authorization: Bearer<Token> 1234 +Content-Type: application/json 1235 + 1236 +{{/code}} 1237 + 1238 +Get customer active Recurring Card Consent. 1239 + 1240 +{{code language="http" title="**Response**"}} 1241 +HTTP/1.1 200 OK 1242 +Content-Type: application/json 1243 + 1244 +{ 1245 + "cardToken": "2eb28854-07ec-4e88-b672-7c61cc54b461", 1246 + "consentExpiryDate": "04-2035", 1247 + "instrumentDisplayName": "551000******1232", 1248 + "cardExpiryDate": "04/2035", 1249 + "cardBrand": "Visa", 1250 + "operations": [ 1251 + { 1252 + "rel": "delete-recurring-card", 1253 + "method": "DELETE", 1254 + "href": "/ledger/customer/v1/xxx/customers/yyy/consent/recurring-card" 1255 + } 1256 + ] 1257 +} 1258 +{{/code}} 1259 + 1260 + 1261 + 1262 +**Response object specification** 1263 + 1264 +(% class="table-bordered table-striped" %) 1265 +|=Property |=Data type|=Format|=Description 1266 +|@id |string | |Uri identifier of the current resource 1267 +|cardToken |string | | 1268 +|consentExpiryDate |string | | 1269 +|instrumentDisplayName |string | | 1270 +|cardExpiryDate |string | | 1271 +|cardBrand |string | | 1272 +|operations |array | |List of operations that is possible to perform on the current resource, read more about the ~[~[hypermedia part of the response>>https://developer.payex.com/xwiki/wiki/developer/view/Main/Invoicing/ledger-api-general-docs/restful-pattern-guideline/#HHyper-mediaresponse]] 1273 + 1274 +== 13. Recurring-card-redirect-registration == 1275 + 1276 + 1277 +Get details about the customer's ongoing Recurring Card registration. 1278 + 1279 +==== 13.1 Get list of Recurring-card-redirect-registration ==== 1280 + 1281 +{{code language="http" title="**Request**"}} 1282 +GET /ledger/customer/v1/{ownerNo}/customers/{customerNo}/consent/recurring-card-redirect-registration HTTP/1.1 1283 +Host: - 1284 +Authorization: Bearer<Token> 1285 +Content-Type: application/json 1286 + 1287 +{{/code}} 1288 + 1289 +Customer's ongoing Recurring Card Registration. 1290 + 1291 +{{code language="http" title="**Response**"}} 1292 +HTTP/1.1 200 OK 1293 +Content-Type: application/json 1294 + 1295 +{ 1296 + "redirectUrl": "https://ecom.externalintegration.payex.com/checkout/abc123", 1297 + "status": "Initialized", 1298 + "operations": [] 1299 +} 1300 +{{/code}} 1301 + 1302 + 1303 +==== 13.2 Create Recurring-card-redirect-registration ==== 1304 + 1305 +Initializes the customer's Recurring Card registration with redirect to SwedbankPay. 1306 + 1307 +{{code language="http" title="**Request**"}} 1308 +POST /ledger/customer/v1/{ownerNo}/customers/{customerNo}/consent/recurring-card-redirect-registration HTTP/1.1 1309 +Host: - 1310 +Authorization: Bearer<Token> 1311 +Content-Type: application/json 1312 + 1313 +{ 1314 + "completeUrl": "https://www.google.com/search?q=cancelurl", 1315 + "cancelUrl": "https://www.google.com/search?q=completeurl", 1316 + "language": "en-US" 1317 +} 1318 +{{/code}} 1319 + 1320 + 1321 +**Request object specification** 1322 + 1323 +(% class="table-bordered table-striped" %) 1324 +|=Property |=Data type|=Format|=Required|=Description 1325 +|completeUrl |string |Type: uri |Yes | 1326 +|cancelUrl |string |Type: uri |Yes | 1327 +|language |string | |Yes | 1328 + 1329 +Customer's ongoing Recurring Card Registration. 1330 + 1331 +{{code language="http" title="**Response**"}} 1332 +HTTP/1.1 200 OK 1333 +Content-Type: application/json 1334 + 1335 +{ 1336 + "redirectUrl": "https://ecom.externalintegration.payex.com/checkout/abc123", 1337 + "status": "Initialized", 1338 + "operations": [], 1339 + "@id": "/ledger/customer/v1/xxx/customers/yyy/consent/recurring-card-redirect-registration" 1340 +} 1341 +{{/code}} 1342 + 1343 + 1344 +**Response object specification** 1345 + 1346 +(% class="table-bordered table-striped" %) 1347 +|=Property |=Data type|=Format|=Description 1348 +|@id |string | |Uri identifier of the current resource 1349 +|redirectUrl |string | | 1350 +|status |string | | 1351 +|operations |array | |List of operations that is possible to perform on the current resource, read more about the ~[~[hypermedia part of the response>>https://developer.payex.com/xwiki/wiki/developer/view/Main/Invoicing/ledger-api-general-docs/restful-pattern-guideline/#HHyper-mediaresponse]] 1352 + 1353 +{{display reference="developer:Main.Invoicing.ledger-api-general-docs.api-section-problems.WebHome"/}}
- 1612164530151-211.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.dap - Size
-
... ... @@ -1,0 +1,1 @@ 1 +0 bytes - Content
- 1612164561442-820.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.dap - Size
-
... ... @@ -1,0 +1,1 @@ 1 +0 bytes - Content
- 1661344288319-663.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.dap - Size
-
... ... @@ -1,0 +1,1 @@ 1 +0 bytes - Content
- PayEx - Ledger API's - Customer Wiki Visual(1).png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.kxf - Size
-
... ... @@ -1,0 +1,1 @@ 1 +0 bytes - Content
- PayEx - Ledger API's - Customer Wiki Visual.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.kxf - Size
-
... ... @@ -1,0 +1,1 @@ 1 +0 bytes - Content
- PayEx - Ledger API's - customer.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.kxf - Size
-
... ... @@ -1,0 +1,1 @@ 1 +0 bytes - Content
- Screenshot 2026-07-08 141842.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.thomashedstrom - Size
-
... ... @@ -1,0 +1,1 @@ 1 +0 bytes - Content
- Swagger_Releases-499976(3).txt
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.thomashedstrom - Size
-
... ... @@ -1,0 +1,1 @@ 1 +0 bytes - Content
-
... ... @@ -1,0 +1,3291 @@ 1 +{ 2 + "openapi": "3.0.1", 3 + "info": { 4 + "title": "Customer API 1.0", 5 + "description": "", 6 + "contact": { 7 + "name": "Payex" 8 + }, 9 + "version": "1.0" 10 + }, 11 + "paths": { 12 + "/ledger/customer/v1/{ownerNo}/customers/{customerNo}": { 13 + "get": { 14 + "tags": [ 15 + "Customer" 16 + ], 17 + "summary": "Get a specific customer", 18 + "description": "Get a customer from ledger using customer number as identifier", 19 + "operationId": "PayEx.AR.Customer.Api.Resources.Customer.V1.Customers.CustomersController_Id_GetSingle", 20 + "parameters": [ 21 + { 22 + "name": "ownerNo", 23 + "in": "path", 24 + "required": true, 25 + "schema": { 26 + "type": "string" 27 + } 28 + }, 29 + { 30 + "name": "customerNo", 31 + "in": "path", 32 + "required": true, 33 + "schema": { 34 + "maxLength": 50, 35 + "minLength": 0, 36 + "type": "string" 37 + } 38 + } 39 + ], 40 + "responses": { 41 + "200": { 42 + "description": "OK", 43 + "content": { 44 + "application/json": { 45 + "schema": { 46 + "$ref": "#/components/schemas/V1.Customers.CustomersResource" 47 + }, 48 + "examples": { 49 + "OK": { 50 + "description": "Get customer", 51 + "value": "{\r\n \"customerNo\": \"YYY\",\r\n \"nationalIdentifier\": {\r\n \"regNo\": \"YYYYMMDD-NNNN\",\r\n \"countryCode\": \"SE\"\r\n },\r\n \"vatNo\": \"SE101010101001\",\r\n \"legalEntity\": \"consumer\",\r\n \"name\": \"Test Testsson\",\r\n \"emailAddress\": \"Test@test.se\",\r\n \"protectedIdentity\": false,\r\n \"preferredLanguageCode\": \"SV\",\r\n \"legalStatus\": \"active\",\r\n \"msisdn\": \"\\u002B467040000000\",\r\n \"activeConsents\": [\r\n \"Betalingsservice\",\r\n \"Avtalegiro\",\r\n \"RecurringCard\"\r\n ],\r\n \"ediAddressInfo\": {\r\n \"van\": \"ABCXYZ\",\r\n \"interChangeRecipient\": \"Recipient_ID1\",\r\n \"buyerId\": \"123465\"\r\n },\r\n \"surpluses\": \"/ledger/customer/v1/xxx/customers/yyy/surpluses\",\r\n \"legalAddress\": \"/ledger/customer/v1/xxx/customers/yyy/legal-address\",\r\n \"billingAddress\": \"/ledger/customer/v1/xxx/customers/yyy/billing-address\",\r\n \"consent\": \"/ledger/customer/v1/xxx/customers/yyy/consent\",\r\n \"operations\": [\r\n {\r\n \"rel\": \"partial-update-customer\",\r\n \"method\": \"PATCH\",\r\n \"href\": \"/ledger/customer/v1/xxx/customers/yyy\"\r\n },\r\n {\r\n \"rel\": \"add-billing-address\",\r\n \"method\": \"POST\",\r\n \"href\": \"/ledger/customer/v1/xxx/customers/yyy/billing-address\"\r\n },\r\n {\r\n \"rel\": \"update-kyc-answers\",\r\n \"method\": \"POST\",\r\n \"href\": \"/ledger/customer/v1/xxx/customers/yyy/update-kyc-answers\"\r\n }\r\n ],\r\n \"taxIdentificationNumber\": \"1234567890\"\r\n}" 52 + } 53 + } 54 + } 55 + } 56 + }, 57 + "500": { 58 + "description": "InternalServerError", 59 + "content": { 60 + "application/json": { 61 + "examples": { 62 + "internal-server-error": { 63 + "description": "The requested resource '' could not be processed. Please contact support.", 64 + "value": "{\r\n \"type\": \"internal-server-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 65 + }, 66 + "handled-exception": { 67 + "description": "The requested resource '' could not be processed. Please contact support.", 68 + "value": "{\r\n \"type\": \"handled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 69 + }, 70 + "unhandled-exception": { 71 + "description": "The requested resource '' could not be processed. Please contact support.", 72 + "value": "{\r\n \"type\": \"unhandled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 73 + } 74 + } 75 + } 76 + } 77 + }, 78 + "400": { 79 + "description": "BadRequest", 80 + "content": { 81 + "application/json": { 82 + "examples": { 83 + "general-validation-error": { 84 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 85 + "value": "{\r\n \"type\": \"general-validation-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 86 + }, 87 + "validation": { 88 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 89 + "value": "{\r\n \"type\": \"validation\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 90 + } 91 + } 92 + } 93 + } 94 + }, 95 + "404": { 96 + "description": "NotFound", 97 + "content": { 98 + "application/json": { 99 + "examples": { 100 + "customer-does-not-exists": { 101 + "description": "The requested resource '' was not found.", 102 + "value": "{\r\n \"type\": \"customer-does-not-exists\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 103 + }, 104 + "customer-not-found": { 105 + "description": "The requested resource '' was not found.", 106 + "value": "{\r\n \"type\": \"customer-not-found\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 107 + } 108 + } 109 + } 110 + } 111 + } 112 + } 113 + }, 114 + "patch": { 115 + "tags": [ 116 + "Customer" 117 + ], 118 + "summary": "Update customer", 119 + "description": "Update customer info", 120 + "operationId": "PayEx.AR.Customer.Api.Resources.Customer.V1.Customers.CustomersController_Id_Patch", 121 + "parameters": [ 122 + { 123 + "name": "ownerNo", 124 + "in": "path", 125 + "required": true, 126 + "schema": { 127 + "type": "string" 128 + } 129 + }, 130 + { 131 + "name": "customerNo", 132 + "in": "path", 133 + "required": true, 134 + "schema": { 135 + "maxLength": 50, 136 + "minLength": 0, 137 + "type": "string" 138 + } 139 + } 140 + ], 141 + "requestBody": { 142 + "content": { 143 + "application/json": { 144 + "schema": { } 145 + } 146 + } 147 + }, 148 + "responses": { 149 + "204": { 150 + "description": "No Content", 151 + "content": { 152 + "application/json": { 153 + "schema": { 154 + "$ref": "#/components/schemas/PayEx.LF.Api.Common.RepositoryResources.Results.RepositoryNoContentResult" 155 + } 156 + } 157 + } 158 + }, 159 + "500": { 160 + "description": "InternalServerError", 161 + "content": { 162 + "application/json": { 163 + "examples": { 164 + "internal-server-error": { 165 + "description": "The requested resource '' could not be processed. Please contact support.", 166 + "value": "{\r\n \"type\": \"internal-server-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 167 + }, 168 + "handled-exception": { 169 + "description": "The requested resource '' could not be processed. Please contact support.", 170 + "value": "{\r\n \"type\": \"handled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 171 + }, 172 + "unhandled-exception": { 173 + "description": "The requested resource '' could not be processed. Please contact support.", 174 + "value": "{\r\n \"type\": \"unhandled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 175 + } 176 + } 177 + } 178 + } 179 + }, 180 + "400": { 181 + "description": "BadRequest", 182 + "content": { 183 + "application/json": { 184 + "examples": { 185 + "general-validation-error": { 186 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 187 + "value": "{\r\n \"type\": \"general-validation-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 188 + }, 189 + "validation": { 190 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 191 + "value": "{\r\n \"type\": \"validation\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 192 + }, 193 + "email-address-invalid": { 194 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 195 + "value": "{\r\n \"type\": \"email-address-invalid\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 196 + } 197 + } 198 + } 199 + } 200 + }, 201 + "404": { 202 + "description": "NotFound", 203 + "content": { 204 + "application/json": { 205 + "examples": { 206 + "customer-does-not-exists": { 207 + "description": "The requested resource '' was not found.", 208 + "value": "{\r\n \"type\": \"customer-does-not-exists\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 209 + }, 210 + "customer-not-found": { 211 + "description": "The requested resource '' was not found.", 212 + "value": "{\r\n \"type\": \"customer-not-found\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 213 + } 214 + } 215 + } 216 + } 217 + } 218 + } 219 + } 220 + }, 221 + "/ledger/customer/v1/{ownerNo}/customers": { 222 + "post": { 223 + "tags": [ 224 + "Customer" 225 + ], 226 + "summary": "Create new customer", 227 + "description": "Create a new customer in ledger", 228 + "parameters": [ 229 + { 230 + "name": "ownerNo", 231 + "in": "path", 232 + "required": true, 233 + "schema": { 234 + "type": "string" 235 + } 236 + } 237 + ], 238 + "requestBody": { 239 + "content": { 240 + "application/json": { 241 + "schema": { 242 + "$ref": "#/components/schemas/V1.Customers.CreateCustomerResource" 243 + } 244 + } 245 + } 246 + }, 247 + "responses": { 248 + "201": { 249 + "description": "Created", 250 + "content": { 251 + "application/json": { 252 + "schema": { 253 + "$ref": "#/components/schemas/V1.Customers.CustomersCreatedResource" 254 + }, 255 + "examples": { 256 + "Created": { 257 + "description": "Create a customer response", 258 + "value": "{\r\n \"customerNo\": \"YYY\",\r\n \"@id\": \"/ledger/customer/v1/xxx/customers/yyy\"\r\n}" 259 + } 260 + } 261 + } 262 + } 263 + }, 264 + "500": { 265 + "description": "InternalServerError", 266 + "content": { 267 + "application/json": { 268 + "examples": { 269 + "internal-server-error": { 270 + "description": "The requested resource '' could not be processed. Please contact support.", 271 + "value": "{\r\n \"type\": \"internal-server-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 272 + }, 273 + "handled-exception": { 274 + "description": "The requested resource '' could not be processed. Please contact support.", 275 + "value": "{\r\n \"type\": \"handled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 276 + }, 277 + "unhandled-exception": { 278 + "description": "The requested resource '' could not be processed. Please contact support.", 279 + "value": "{\r\n \"type\": \"unhandled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 280 + } 281 + } 282 + } 283 + } 284 + }, 285 + "400": { 286 + "description": "BadRequest", 287 + "content": { 288 + "application/json": { 289 + "examples": { 290 + "general-validation-error": { 291 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 292 + "value": "{\r\n \"type\": \"general-validation-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 293 + }, 294 + "validation": { 295 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 296 + "value": "{\r\n \"type\": \"validation\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 297 + }, 298 + "invalid-reg-no": { 299 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 300 + "value": "{\r\n \"type\": \"invalid-reg-no\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 301 + }, 302 + "invalid-phone-no": { 303 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 304 + "value": "{\r\n \"type\": \"invalid-phone-no\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 305 + } 306 + } 307 + } 308 + } 309 + }, 310 + "422": { 311 + "description": "UnprocessableEntity", 312 + "content": { 313 + "application/json": { 314 + "examples": { 315 + "customer-already-exists": { 316 + "description": "The requested resource '' could not be processed. Customer Already Exists", 317 + "value": "{\r\n \"type\": \"customer-already-exists\",\r\n \"title\": \"Problem title\",\r\n \"status\": 422,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 318 + } 319 + } 320 + } 321 + } 322 + } 323 + } 324 + } 325 + }, 326 + "/ledger/customer/v1/{ownerNo}/kyc-questions": { 327 + "get": { 328 + "tags": [ 329 + "Customer" 330 + ], 331 + "summary": "Get KYC questions configured on company", 332 + "description": "Get KYC questions from ledger using company number as identifier", 333 + "parameters": [ 334 + { 335 + "name": "ownerNo", 336 + "in": "path", 337 + "required": true, 338 + "schema": { 339 + "type": "string" 340 + } 341 + }, 342 + { 343 + "name": "language", 344 + "in": "query", 345 + "description": "format ISO639-1, if not supported or none given request defaults to language code 'en'(English)", 346 + "schema": { 347 + "type": "string" 348 + } 349 + } 350 + ], 351 + "responses": { 352 + "200": { 353 + "description": "OK", 354 + "content": { 355 + "application/json": { 356 + "schema": { 357 + "$ref": "#/components/schemas/V1.RootResource.SingleResources.KycQuestions.KycQuestionsResource" 358 + }, 359 + "examples": { 360 + "OK": { 361 + "description": "Get CompanyInstance KYC questions if configured or a 404 company-kyc-questions-not-configured response if not", 362 + "value": "{\r\n \"kycQuestions\": [\r\n {\r\n \"questionText\": \"What is your current employment?\",\r\n \"answer\": {\r\n \"type\": \"single\",\r\n \"required\": true,\r\n \"possibleAnswers\": [\r\n {\r\n \"answerCode\": \"selfemployed\",\r\n \"answerText\": \"Own business\"\r\n },\r\n {\r\n \"answerCode\": \"private_employee\",\r\n \"answerText\": \"Private employee\"\r\n },\r\n {\r\n \"answerCode\": \"goverment_employee\",\r\n \"answerText\": \"Government employee\"\r\n }\r\n ]\r\n },\r\n \"questionCode\": \"employment\"\r\n },\r\n {\r\n \"questionText\": \"What is your yearly income\",\r\n \"answer\": {\r\n \"type\": \"single\",\r\n \"required\": true,\r\n \"possibleAnswers\": [\r\n {\r\n \"answerCode\": \"incomeinterval1\",\r\n \"answerText\": \"0-100 000 SEK\"\r\n },\r\n {\r\n \"answerCode\": \"incomeinterval2\",\r\n \"answerText\": \"100 001-200 000 SEK\"\r\n },\r\n {\r\n \"answerCode\": \"incomeinterval3\",\r\n \"answerText\": \"200 001-300 000 SEK\"\r\n },\r\n {\r\n \"answerCode\": \"incomeinterval4\",\r\n \"answerText\": \"Over 300 001 SEK\"\r\n }\r\n ]\r\n },\r\n \"questionCode\": \"income\"\r\n }\r\n ],\r\n \"operations\": []\r\n}" 363 + } 364 + } 365 + } 366 + } 367 + }, 368 + "500": { 369 + "description": "InternalServerError", 370 + "content": { 371 + "application/json": { 372 + "examples": { 373 + "internal-server-error": { 374 + "description": "The requested resource '' could not be processed. Please contact support.", 375 + "value": "{\r\n \"type\": \"internal-server-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 376 + }, 377 + "handled-exception": { 378 + "description": "The requested resource '' could not be processed. Please contact support.", 379 + "value": "{\r\n \"type\": \"handled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 380 + }, 381 + "unhandled-exception": { 382 + "description": "The requested resource '' could not be processed. Please contact support.", 383 + "value": "{\r\n \"type\": \"unhandled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 384 + } 385 + } 386 + } 387 + } 388 + }, 389 + "400": { 390 + "description": "BadRequest", 391 + "content": { 392 + "application/json": { 393 + "examples": { 394 + "general-validation-error": { 395 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 396 + "value": "{\r\n \"type\": \"general-validation-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 397 + } 398 + } 399 + } 400 + } 401 + }, 402 + "404": { 403 + "description": "NotFound", 404 + "content": { 405 + "application/json": { 406 + "examples": { 407 + "company-kyc-questions-not-configured": { 408 + "description": "The requested resource '' was not found.", 409 + "value": "{\r\n \"type\": \"company-kyc-questions-not-configured\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 410 + } 411 + } 412 + } 413 + } 414 + } 415 + } 416 + } 417 + }, 418 + "/ledger/customer/v1/{ownerNo}/customers/{customerNo}/surpluses/{surplusId}/active-disbursement-orders": { 419 + "post": { 420 + "tags": [ 421 + "Customer" 422 + ], 423 + "summary": "Add a disbursement order for surplus", 424 + "description": "Add a disbursement order. Disburses all available funds on surplus account, when disbursement batch is run", 425 + "parameters": [ 426 + { 427 + "name": "ownerNo", 428 + "in": "path", 429 + "required": true, 430 + "schema": { 431 + "type": "string" 432 + } 433 + }, 434 + { 435 + "name": "customerNo", 436 + "in": "path", 437 + "required": true, 438 + "schema": { 439 + "type": "string" 440 + } 441 + }, 442 + { 443 + "name": "surplusId", 444 + "in": "path", 445 + "required": true, 446 + "schema": { 447 + "type": "string" 448 + } 449 + } 450 + ], 451 + "requestBody": { 452 + "content": { 453 + "application/json": { 454 + "schema": { 455 + "$ref": "#/components/schemas/V1.Customers.Surpluses.Operations.AddDisbursementOrderRequest" 456 + }, 457 + "example": "{\r\n \"swedishBankAccount\": {\r\n \"accountNo\": \"NNN\",\r\n \"accountType\": \"BGSE | PGSE | BKSE | PKSE\"\r\n }\r\n}" 458 + } 459 + } 460 + }, 461 + "responses": { 462 + "204": { 463 + "description": "No Content", 464 + "content": { 465 + "application/json": { 466 + "schema": { 467 + "$ref": "#/components/schemas/PayEx.LF.Api.Common.RepositoryResources.Results.RepositoryNoContentResult" 468 + } 469 + } 470 + } 471 + } 472 + } 473 + }, 474 + "get": { 475 + "tags": [ 476 + "Customer" 477 + ], 478 + "summary": "list active surpluse disbursement orders", 479 + "description": "list active surpluse disbursement orders pending disbursement batch is run.", 480 + "parameters": [ 481 + { 482 + "name": "ownerNo", 483 + "in": "path", 484 + "required": true, 485 + "schema": { 486 + "type": "string" 487 + } 488 + }, 489 + { 490 + "name": "customerNo", 491 + "in": "path", 492 + "required": true, 493 + "schema": { 494 + "type": "string" 495 + } 496 + }, 497 + { 498 + "name": "surplusId", 499 + "in": "path", 500 + "required": true, 501 + "schema": { 502 + "type": "string" 503 + } 504 + } 505 + ], 506 + "responses": { 507 + "200": { 508 + "description": "OK", 509 + "content": { 510 + "application/json": { 511 + "schema": { 512 + "$ref": "#/components/schemas/V1.Customers.Surpluses.ActiveDisbursementOrders.ActiveDisbursementOrdersResourceListResult" 513 + }, 514 + "examples": { 515 + "OK": { 516 + "description": "Get customer billing-address", 517 + "value": "{\r\n \"items\": [\r\n {\r\n \"operations\": [],\r\n \"swedishBankAccount\": {\r\n \"accountNo\": \"1234567890\",\r\n \"accountType\": \"BGSE\"\r\n }\r\n }\r\n ],\r\n \"navigation\": {\r\n \"@id\": \"/ledger/customer/v1/xxx/customers/yyy/surpluses/zzz/active-disbursement-orders\"\r\n }\r\n}" 518 + } 519 + } 520 + } 521 + } 522 + }, 523 + "500": { 524 + "description": "InternalServerError", 525 + "content": { 526 + "application/json": { 527 + "examples": { 528 + "internal-server-error": { 529 + "description": "The requested resource '' could not be processed. Please contact support.", 530 + "value": "{\r\n \"type\": \"internal-server-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 531 + }, 532 + "handled-exception": { 533 + "description": "The requested resource '' could not be processed. Please contact support.", 534 + "value": "{\r\n \"type\": \"handled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 535 + }, 536 + "unhandled-exception": { 537 + "description": "The requested resource '' could not be processed. Please contact support.", 538 + "value": "{\r\n \"type\": \"unhandled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 539 + } 540 + } 541 + } 542 + } 543 + }, 544 + "400": { 545 + "description": "BadRequest", 546 + "content": { 547 + "application/json": { 548 + "examples": { 549 + "general-validation-error": { 550 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 551 + "value": "{\r\n \"type\": \"general-validation-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 552 + }, 553 + "validation": { 554 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 555 + "value": "{\r\n \"type\": \"validation\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 556 + } 557 + } 558 + } 559 + } 560 + }, 561 + "404": { 562 + "description": "NotFound", 563 + "content": { 564 + "application/json": { 565 + "examples": { 566 + "customer-does-not-exists": { 567 + "description": "The requested resource '' was not found.", 568 + "value": "{\r\n \"type\": \"customer-does-not-exists\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 569 + }, 570 + "customer-not-found": { 571 + "description": "The requested resource '' was not found.", 572 + "value": "{\r\n \"type\": \"customer-not-found\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 573 + } 574 + } 575 + } 576 + } 577 + } 578 + } 579 + } 580 + }, 581 + "/ledger/customer/v1/{ownerNo}/customers/{customerNo}/surpluses/{surplusId}": { 582 + "get": { 583 + "tags": [ 584 + "Customer" 585 + ], 586 + "summary": "Get single surplus", 587 + "description": "A surplus is the remaining value from a payment that was greater than the current debt, also referred as an 'overpayment'. Each instance of an overpayment will create a new surplus. A surplus will often have a connection to an account or invoice based of where the payment was placed but surpluses without connection to an account or invoice also exist. Surpluses can be used to settle upcoming debt or be disbursed. ", 588 + "operationId": "PayEx.AR.Customer.Api.Resources.Customer.V1.Customers.Surpluses.SurplusesController_Id_GetSingle", 589 + "parameters": [ 590 + { 591 + "name": "ownerNo", 592 + "in": "path", 593 + "required": true, 594 + "schema": { 595 + "type": "string" 596 + } 597 + }, 598 + { 599 + "name": "customerNo", 600 + "in": "path", 601 + "required": true, 602 + "schema": { 603 + "type": "string" 604 + } 605 + }, 606 + { 607 + "name": "surplusId", 608 + "in": "path", 609 + "required": true, 610 + "schema": { 611 + "type": "string" 612 + } 613 + } 614 + ], 615 + "responses": { 616 + "200": { 617 + "description": "OK", 618 + "content": { 619 + "application/json": { 620 + "schema": { 621 + "$ref": "#/components/schemas/V1.Customers.Surpluses.SurplusesResource" 622 + }, 623 + "examples": { 624 + "OK": { 625 + "description": "Get single surplus", 626 + "value": "{\r\n \"surplusId\": \"YYY\",\r\n \"balance\": 10,\r\n \"currency\": \"SEK\",\r\n \"date\": \"2026-06-23T00:00:00\\u002B02:00\",\r\n \"status\": \"open\",\r\n \"invoice\": \"/ledger/invoice/v1/XXX/invoices/AAA\",\r\n \"account\": \"/ledger/account/v1/XXX/accounts/BBB\",\r\n \"activeDisbursementOrders\": \"/ledger/customer/v1/xxx/customers/yyy/surpluses/yyy/active-disbursement-orders\",\r\n \"operations\": [\r\n {\r\n \"rel\": \"active-disbursement-orders\",\r\n \"method\": \"POST\",\r\n \"href\": \"/ledger/customer/v1/xxx/customers/yyy/surpluses/yyy/active-disbursement-orders\"\r\n }\r\n ],\r\n \"@id\": \"/ledger/customer/v1/XXX/customers/AAA/surpluses/YYY\"\r\n}" 627 + } 628 + } 629 + } 630 + } 631 + } 632 + } 633 + } 634 + }, 635 + "/ledger/customer/v1/{ownerNo}/customers/{customerNo}/surpluses": { 636 + "get": { 637 + "tags": [ 638 + "Customer" 639 + ], 640 + "summary": "list surpluses", 641 + "description": "List all available surpluses on the customer", 642 + "parameters": [ 643 + { 644 + "name": "ownerNo", 645 + "in": "path", 646 + "required": true, 647 + "schema": { 648 + "type": "string" 649 + } 650 + }, 651 + { 652 + "name": "customerNo", 653 + "in": "path", 654 + "required": true, 655 + "schema": { 656 + "type": "string" 657 + } 658 + } 659 + ], 660 + "responses": { 661 + "200": { 662 + "description": "OK", 663 + "content": { 664 + "application/json": { 665 + "schema": { 666 + "$ref": "#/components/schemas/V1.Customers.Surpluses.SurplusesResourceListResult" 667 + }, 668 + "examples": { 669 + "OK": { 670 + "description": "Get surpluses list", 671 + "value": "{\r\n \"items\": [\r\n {\r\n \"surplusId\": \"123\",\r\n \"balance\": 10,\r\n \"currency\": \"SEK\",\r\n \"date\": \"2026-06-23T00:00:00\\u002B02:00\",\r\n \"status\": \"open\",\r\n \"invoice\": \"/ledger/invoice/v1/XXX/invoices/AAA\",\r\n \"activeDisbursementOrders\": \"/ledger/customer/v1/xxx/customers/yyy/surpluses/123/active-disbursement-orders\",\r\n \"operations\": [\r\n {\r\n \"rel\": \"active-disbursement-orders\",\r\n \"method\": \"POST\",\r\n \"href\": \"/ledger/customer/v1/xxx/customers/yyy/surpluses/123/active-disbursement-orders\"\r\n }\r\n ],\r\n \"@id\": \"/ledger/customer/v1/xxx/customers/yyy/surpluses/123\"\r\n },\r\n {\r\n \"surplusId\": \"456\",\r\n \"balance\": 20,\r\n \"currency\": \"SEK\",\r\n \"date\": \"2026-06-21T00:00:00\\u002B02:00\",\r\n \"status\": \"pending-disbursement\",\r\n \"account\": \"/ledger/account/v1/XXX/accounts/BBB\",\r\n \"activeDisbursementOrders\": \"/ledger/customer/v1/xxx/customers/yyy/surpluses/456/active-disbursement-orders\",\r\n \"operations\": [\r\n {\r\n \"rel\": \"active-disbursement-orders\",\r\n \"method\": \"POST\",\r\n \"href\": \"/ledger/customer/v1/xxx/customers/yyy/surpluses/456/active-disbursement-orders\"\r\n }\r\n ],\r\n \"@id\": \"/ledger/customer/v1/xxx/customers/yyy/surpluses/456\"\r\n },\r\n {\r\n \"surplusId\": \"789\",\r\n \"balance\": 30,\r\n \"currency\": \"SEK\",\r\n \"date\": \"2026-06-14T00:00:00\\u002B02:00\",\r\n \"status\": \"pending-regulate\",\r\n \"invoice\": \"/ledger/invoice/v1/XXX/invoices/AAA\",\r\n \"activeDisbursementOrders\": \"/ledger/customer/v1/xxx/customers/yyy/surpluses/789/active-disbursement-orders\",\r\n \"operations\": [\r\n {\r\n \"rel\": \"active-disbursement-orders\",\r\n \"method\": \"POST\",\r\n \"href\": \"/ledger/customer/v1/xxx/customers/yyy/surpluses/789/active-disbursement-orders\"\r\n }\r\n ],\r\n \"@id\": \"/ledger/customer/v1/xxx/customers/yyy/surpluses/789\"\r\n }\r\n ],\r\n \"navigation\": {\r\n \"@id\": \"/ledger/customer/v1/xxx/customers/yyy/surpluses\"\r\n }\r\n}" 672 + } 673 + } 674 + } 675 + } 676 + } 677 + } 678 + } 679 + }, 680 + "/ledger/customer/v1/{ownerNo}/customers/{customerNo}/consent/trusted-seller-groups": { 681 + "post": { 682 + "tags": [ 683 + "Customer" 684 + ], 685 + "summary": "Save a Consent document for specific CustomerNo and ConsentType.", 686 + "description": "Save a pdf Consent document as a Base64 string for specific CustomerNo and ConsentType.", 687 + "parameters": [ 688 + { 689 + "name": "ownerNo", 690 + "in": "path", 691 + "required": true, 692 + "schema": { 693 + "type": "string" 694 + } 695 + }, 696 + { 697 + "name": "customerNo", 698 + "in": "path", 699 + "required": true, 700 + "schema": { 701 + "type": "string" 702 + } 703 + } 704 + ], 705 + "requestBody": { 706 + "content": { 707 + "application/json": { 708 + "schema": { 709 + "$ref": "#/components/schemas/V1.Customers.SingleResources.Consent.TrustedSellerGroups.TrustedSellerGroupsPostRequest" 710 + }, 711 + "example": "{\r\n \"consentType\": \"PharmaciesSE\",\r\n \"applicationDocument\": {\r\n \"content\": \"JVBERi0xLjQKJ...\",\r\n \"fileType\": \"pdf\"\r\n }\r\n}" 712 + }, 713 + "text/json": { 714 + "schema": { 715 + "$ref": "#/components/schemas/V1.Customers.SingleResources.Consent.TrustedSellerGroups.TrustedSellerGroupsPostRequest" 716 + } 717 + }, 718 + "application/*+json": { 719 + "schema": { 720 + "$ref": "#/components/schemas/V1.Customers.SingleResources.Consent.TrustedSellerGroups.TrustedSellerGroupsPostRequest" 721 + } 722 + } 723 + } 724 + }, 725 + "responses": { 726 + "200": { 727 + "description": "OK", 728 + "content": { 729 + "application/json": { 730 + "schema": { 731 + "$ref": "#/components/schemas/V1.Customers.SingleResources.Consent.TrustedSellerGroups.TrustedSellerGroupsResource" 732 + }, 733 + "examples": { 734 + "OK": { 735 + "description": "Save a consent document", 736 + "value": "{\r\n \"consentType\": \"cccc\",\r\n \"operations\": [\r\n {\r\n \"rel\": \"delete-trusted-seller-group\",\r\n \"method\": \"DELETE\",\r\n \"href\": \"/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups/cccc\"\r\n }\r\n ],\r\n \"@id\": \"/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups/cccc\"\r\n}" 737 + } 738 + } 739 + } 740 + } 741 + }, 742 + "400": { 743 + "description": "BadRequest", 744 + "content": { 745 + "application/json": { 746 + "examples": { 747 + "validation": { 748 + "description": "Occurs if the validation of the request fails, it is described in the problem why the input is invalid.", 749 + "value": "{\r\n \"type\": \"validation\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 750 + } 751 + } 752 + } 753 + } 754 + }, 755 + "404": { 756 + "description": "NotFound", 757 + "content": { 758 + "application/json": { 759 + "examples": { 760 + "not-found": { 761 + "description": "Occurs if the requested resource is not found.", 762 + "value": "{\r\n \"type\": \"not-found\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 763 + } 764 + } 765 + } 766 + } 767 + }, 768 + "409": { 769 + "description": "Conflict", 770 + "content": { 771 + "application/json": { 772 + "examples": { 773 + "conflict": { 774 + "description": "Occurs if the requested resource already exists.", 775 + "value": "{\r\n \"type\": \"conflict\",\r\n \"title\": \"Problem title\",\r\n \"status\": 409,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 776 + } 777 + } 778 + } 779 + } 780 + }, 781 + "500": { 782 + "description": "InternalServerError", 783 + "content": { 784 + "application/json": { 785 + "examples": { 786 + "fatal": { 787 + "description": "Unexpected error, logs may give details about the problem", 788 + "value": "{\r\n \"type\": \"fatal\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 789 + } 790 + } 791 + } 792 + } 793 + } 794 + } 795 + }, 796 + "get": { 797 + "tags": [ 798 + "Customer" 799 + ], 800 + "summary": "Get Customer active Consent.", 801 + "description": "Get details about the customer's active Consent.", 802 + "parameters": [ 803 + { 804 + "name": "ownerNo", 805 + "in": "path", 806 + "required": true, 807 + "schema": { 808 + "type": "string" 809 + } 810 + }, 811 + { 812 + "name": "customerNo", 813 + "in": "path", 814 + "required": true, 815 + "schema": { 816 + "type": "string" 817 + } 818 + } 819 + ], 820 + "responses": { 821 + "200": { 822 + "description": "OK", 823 + "content": { 824 + "application/json": { 825 + "schema": { 826 + "$ref": "#/components/schemas/V1.Customers.SingleResources.Consent.TrustedSellerGroups.TrustedSellerGroupsResourceListResult" 827 + }, 828 + "examples": { 829 + "OK": { 830 + "description": "Get consent list", 831 + "value": "{\r\n \"items\": [\r\n {\r\n \"consentType\": \"ccccc1\",\r\n \"operations\": [\r\n {\r\n \"rel\": \"delete-trusted-seller-group\",\r\n \"method\": \"DELETE\",\r\n \"href\": \"/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups/ccccc1\"\r\n }\r\n ],\r\n \"@id\": \"/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups/ccccc1\"\r\n },\r\n {\r\n \"consentType\": \"ccccc2\",\r\n \"operations\": [\r\n {\r\n \"rel\": \"delete-trusted-seller-group\",\r\n \"method\": \"DELETE\",\r\n \"href\": \"/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups/ccccc2\"\r\n }\r\n ],\r\n \"@id\": \"/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups/ccccc2\"\r\n }\r\n ],\r\n \"navigation\": {\r\n \"@id\": \"/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups\"\r\n }\r\n}" 832 + } 833 + } 834 + } 835 + } 836 + }, 837 + "400": { 838 + "description": "BadRequest", 839 + "content": { 840 + "application/json": { 841 + "examples": { 842 + "validation": { 843 + "description": "Occurs if the validation of the request fails, it is described in the problem why the input is invalid.", 844 + "value": "{\r\n \"type\": \"validation\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 845 + } 846 + } 847 + } 848 + } 849 + }, 850 + "404": { 851 + "description": "NotFound", 852 + "content": { 853 + "application/json": { 854 + "examples": { 855 + "not-found": { 856 + "description": "Occurs if the requested resource is not found.", 857 + "value": "{\r\n \"type\": \"not-found\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 858 + } 859 + } 860 + } 861 + } 862 + }, 863 + "409": { 864 + "description": "Conflict", 865 + "content": { 866 + "application/json": { 867 + "examples": { 868 + "conflict": { 869 + "description": "Occurs if the requested resource already exists.", 870 + "value": "{\r\n \"type\": \"conflict\",\r\n \"title\": \"Problem title\",\r\n \"status\": 409,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 871 + } 872 + } 873 + } 874 + } 875 + }, 876 + "500": { 877 + "description": "InternalServerError", 878 + "content": { 879 + "application/json": { 880 + "examples": { 881 + "fatal": { 882 + "description": "Unexpected error, logs may give details about the problem", 883 + "value": "{\r\n \"type\": \"fatal\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 884 + } 885 + } 886 + } 887 + } 888 + } 889 + } 890 + } 891 + }, 892 + "/ledger/customer/v1/{ownerNo}/customers/{customerNo}/legal-address": { 893 + "get": { 894 + "tags": [ 895 + "Customer" 896 + ], 897 + "summary": "Get the legal address of the customer", 898 + "description": "The legal address is where claims is normally sent to. It is required for a customer to have a legal address registered", 899 + "parameters": [ 900 + { 901 + "name": "ownerNo", 902 + "in": "path", 903 + "required": true, 904 + "schema": { 905 + "type": "string" 906 + } 907 + }, 908 + { 909 + "name": "customerNo", 910 + "in": "path", 911 + "required": true, 912 + "schema": { 913 + "type": "string" 914 + } 915 + } 916 + ], 917 + "responses": { 918 + "200": { 919 + "description": "OK", 920 + "content": { 921 + "application/json": { 922 + "schema": { 923 + "$ref": "#/components/schemas/V1.Customers.SingleResources.AddressResource" 924 + }, 925 + "examples": { 926 + "OK": { 927 + "description": "Get customer legal-address", 928 + "value": "{\r\n \"addressee\": \"Test Testsson\",\r\n \"streetAddress\": \"Test street 1\",\r\n \"zipCode\": \"60000\",\r\n \"city\": \"Test town\",\r\n \"coAddress\": \"Co address\",\r\n \"countryCode\": \"SE\",\r\n \"operations\": [\r\n {\r\n \"rel\": \"update-legal-address\",\r\n \"method\": \"PUT\",\r\n \"href\": \"/ledger/customer/v1/xxx/customers/yyy/legal-address\"\r\n },\r\n {\r\n \"rel\": \"update-legal-address-from-population-register\",\r\n \"method\": \"POST\",\r\n \"href\": \"/ledger/customer/v1/xxx/customers/yyy/legal-address/update-legal-address-from-population-register\"\r\n }\r\n ]\r\n}" 929 + } 930 + } 931 + } 932 + } 933 + }, 934 + "500": { 935 + "description": "InternalServerError", 936 + "content": { 937 + "application/json": { 938 + "examples": { 939 + "internal-server-error": { 940 + "description": "The requested resource '' could not be processed. Please contact support.", 941 + "value": "{\r\n \"type\": \"internal-server-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 942 + }, 943 + "handled-exception": { 944 + "description": "The requested resource '' could not be processed. Please contact support.", 945 + "value": "{\r\n \"type\": \"handled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 946 + }, 947 + "unhandled-exception": { 948 + "description": "The requested resource '' could not be processed. Please contact support.", 949 + "value": "{\r\n \"type\": \"unhandled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 950 + } 951 + } 952 + } 953 + } 954 + }, 955 + "400": { 956 + "description": "BadRequest", 957 + "content": { 958 + "application/json": { 959 + "examples": { 960 + "general-validation-error": { 961 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 962 + "value": "{\r\n \"type\": \"general-validation-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 963 + }, 964 + "validation": { 965 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 966 + "value": "{\r\n \"type\": \"validation\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 967 + } 968 + } 969 + } 970 + } 971 + }, 972 + "404": { 973 + "description": "NotFound", 974 + "content": { 975 + "application/json": { 976 + "examples": { 977 + "customer-does-not-exists": { 978 + "description": "The requested resource '' was not found.", 979 + "value": "{\r\n \"type\": \"customer-does-not-exists\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 980 + }, 981 + "customer-not-found": { 982 + "description": "The requested resource '' was not found.", 983 + "value": "{\r\n \"type\": \"customer-not-found\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 984 + } 985 + } 986 + } 987 + } 988 + } 989 + } 990 + }, 991 + "put": { 992 + "tags": [ 993 + "Customer" 994 + ], 995 + "summary": "Update customer legal-address", 996 + "description": "this \"PUT\" operation will replace the existing legal-address with the address specified in the request body.", 997 + "parameters": [ 998 + { 999 + "name": "ownerNo", 1000 + "in": "path", 1001 + "required": true, 1002 + "schema": { 1003 + "type": "string" 1004 + } 1005 + }, 1006 + { 1007 + "name": "customerNo", 1008 + "in": "path", 1009 + "required": true, 1010 + "schema": { 1011 + "type": "string" 1012 + } 1013 + } 1014 + ], 1015 + "requestBody": { 1016 + "content": { 1017 + "application/json": { 1018 + "schema": { 1019 + "$ref": "#/components/schemas/V1.Customers.SingleResources.AddressRequest" 1020 + }, 1021 + "example": "{\r\n \"addressee\": \"Test Testsson\",\r\n \"streetAddress\": \"Test street 1\",\r\n \"zipCode\": \"60000\",\r\n \"city\": \"Test town\",\r\n \"coAddress\": \"Co address\",\r\n \"countryCode\": \"SE\"\r\n}" 1022 + } 1023 + } 1024 + }, 1025 + "responses": { 1026 + "204": { 1027 + "description": "No Content", 1028 + "content": { 1029 + "application/json": { 1030 + "schema": { 1031 + "$ref": "#/components/schemas/PayEx.LF.Api.Common.RepositoryResources.Results.RepositoryNoContentResult" 1032 + } 1033 + } 1034 + } 1035 + }, 1036 + "500": { 1037 + "description": "InternalServerError", 1038 + "content": { 1039 + "application/json": { 1040 + "examples": { 1041 + "internal-server-error": { 1042 + "description": "The requested resource '' could not be processed. Please contact support.", 1043 + "value": "{\r\n \"type\": \"internal-server-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1044 + }, 1045 + "handled-exception": { 1046 + "description": "The requested resource '' could not be processed. Please contact support.", 1047 + "value": "{\r\n \"type\": \"handled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1048 + }, 1049 + "unhandled-exception": { 1050 + "description": "The requested resource '' could not be processed. Please contact support.", 1051 + "value": "{\r\n \"type\": \"unhandled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1052 + } 1053 + } 1054 + } 1055 + } 1056 + }, 1057 + "400": { 1058 + "description": "BadRequest", 1059 + "content": { 1060 + "application/json": { 1061 + "examples": { 1062 + "general-validation-error": { 1063 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 1064 + "value": "{\r\n \"type\": \"general-validation-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1065 + }, 1066 + "validation": { 1067 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 1068 + "value": "{\r\n \"type\": \"validation\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1069 + } 1070 + } 1071 + } 1072 + } 1073 + }, 1074 + "404": { 1075 + "description": "NotFound", 1076 + "content": { 1077 + "application/json": { 1078 + "examples": { 1079 + "customer-does-not-exists": { 1080 + "description": "The requested resource '' was not found.", 1081 + "value": "{\r\n \"type\": \"customer-does-not-exists\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1082 + }, 1083 + "customer-not-found": { 1084 + "description": "The requested resource '' was not found.", 1085 + "value": "{\r\n \"type\": \"customer-not-found\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1086 + } 1087 + } 1088 + } 1089 + } 1090 + } 1091 + } 1092 + } 1093 + }, 1094 + "/ledger/customer/v1/{ownerNo}/customers/{customerNo}/consent/trusted-seller-groups/{consentType}": { 1095 + "get": { 1096 + "tags": [ 1097 + "Customer" 1098 + ], 1099 + "summary": "Get Customer active Consent.", 1100 + "description": "Get details about the customer's active Consent.", 1101 + "operationId": "PayEx.AR.Customer.Api.Resources.Customer.V1.Customers.SingleResources.Consent.TrustedSellerGroups.TrustedSellerGroupsController_Id_GetSingle", 1102 + "parameters": [ 1103 + { 1104 + "name": "ownerNo", 1105 + "in": "path", 1106 + "required": true, 1107 + "schema": { 1108 + "type": "string" 1109 + } 1110 + }, 1111 + { 1112 + "name": "customerNo", 1113 + "in": "path", 1114 + "required": true, 1115 + "schema": { 1116 + "type": "string" 1117 + } 1118 + }, 1119 + { 1120 + "name": "consentType", 1121 + "in": "path", 1122 + "required": true, 1123 + "schema": { 1124 + "type": "string" 1125 + } 1126 + } 1127 + ], 1128 + "responses": { 1129 + "200": { 1130 + "description": "OK", 1131 + "content": { 1132 + "application/json": { 1133 + "schema": { 1134 + "$ref": "#/components/schemas/V1.Customers.SingleResources.Consent.TrustedSellerGroups.TrustedSellerGroupsResource" 1135 + }, 1136 + "examples": { 1137 + "OK": { 1138 + "description": "Get single consent", 1139 + "value": "{\r\n \"consentType\": \"ccccc\",\r\n \"operations\": [\r\n {\r\n \"rel\": \"delete-trusted-seller-group\",\r\n \"method\": \"DELETE\",\r\n \"href\": \"/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups/ccccc\"\r\n }\r\n ]\r\n}" 1140 + } 1141 + } 1142 + } 1143 + } 1144 + }, 1145 + "400": { 1146 + "description": "BadRequest", 1147 + "content": { 1148 + "application/json": { 1149 + "examples": { 1150 + "validation": { 1151 + "description": "Occurs if the validation of the request fails, it is described in the problem why the input is invalid.", 1152 + "value": "{\r\n \"type\": \"validation\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1153 + } 1154 + } 1155 + } 1156 + } 1157 + }, 1158 + "404": { 1159 + "description": "NotFound", 1160 + "content": { 1161 + "application/json": { 1162 + "examples": { 1163 + "not-found": { 1164 + "description": "Occurs if the requested resource is not found.", 1165 + "value": "{\r\n \"type\": \"not-found\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1166 + } 1167 + } 1168 + } 1169 + } 1170 + }, 1171 + "409": { 1172 + "description": "Conflict", 1173 + "content": { 1174 + "application/json": { 1175 + "examples": { 1176 + "conflict": { 1177 + "description": "Occurs if the requested resource already exists.", 1178 + "value": "{\r\n \"type\": \"conflict\",\r\n \"title\": \"Problem title\",\r\n \"status\": 409,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1179 + } 1180 + } 1181 + } 1182 + } 1183 + }, 1184 + "500": { 1185 + "description": "InternalServerError", 1186 + "content": { 1187 + "application/json": { 1188 + "examples": { 1189 + "fatal": { 1190 + "description": "Unexpected error, logs may give details about the problem", 1191 + "value": "{\r\n \"type\": \"fatal\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1192 + } 1193 + } 1194 + } 1195 + } 1196 + } 1197 + } 1198 + }, 1199 + "delete": { 1200 + "tags": [ 1201 + "Customer" 1202 + ], 1203 + "summary": "Delete a consent from customer.", 1204 + "description": "Delete a active consent from customer.", 1205 + "operationId": "PayEx.AR.Customer.Api.Resources.Customer.V1.Customers.SingleResources.Consent.TrustedSellerGroups.TrustedSellerGroupsController_Id_Delete", 1206 + "parameters": [ 1207 + { 1208 + "name": "ownerNo", 1209 + "in": "path", 1210 + "required": true, 1211 + "schema": { 1212 + "type": "string" 1213 + } 1214 + }, 1215 + { 1216 + "name": "customerNo", 1217 + "in": "path", 1218 + "required": true, 1219 + "schema": { 1220 + "type": "string" 1221 + } 1222 + }, 1223 + { 1224 + "name": "consentType", 1225 + "in": "path", 1226 + "required": true, 1227 + "schema": { 1228 + "type": "string" 1229 + } 1230 + } 1231 + ], 1232 + "responses": { 1233 + "204": { 1234 + "description": "No Content", 1235 + "content": { 1236 + "application/json": { 1237 + "schema": { 1238 + "$ref": "#/components/schemas/PayEx.LF.Api.Common.RepositoryResources.Results.RepositoryNoContentResult" 1239 + } 1240 + } 1241 + } 1242 + }, 1243 + "400": { 1244 + "description": "BadRequest", 1245 + "content": { 1246 + "application/json": { 1247 + "examples": { 1248 + "validation": { 1249 + "description": "Occurs if the validation of the request fails, it is described in the problem why the input is invalid.", 1250 + "value": "{\r\n \"type\": \"validation\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1251 + } 1252 + } 1253 + } 1254 + } 1255 + }, 1256 + "404": { 1257 + "description": "NotFound", 1258 + "content": { 1259 + "application/json": { 1260 + "examples": { 1261 + "not-found": { 1262 + "description": "Occurs if the requested resource is not found.", 1263 + "value": "{\r\n \"type\": \"not-found\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1264 + } 1265 + } 1266 + } 1267 + } 1268 + }, 1269 + "409": { 1270 + "description": "Conflict", 1271 + "content": { 1272 + "application/json": { 1273 + "examples": { 1274 + "conflict": { 1275 + "description": "Occurs if the requested resource already exists.", 1276 + "value": "{\r\n \"type\": \"conflict\",\r\n \"title\": \"Problem title\",\r\n \"status\": 409,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1277 + } 1278 + } 1279 + } 1280 + } 1281 + }, 1282 + "500": { 1283 + "description": "InternalServerError", 1284 + "content": { 1285 + "application/json": { 1286 + "examples": { 1287 + "fatal": { 1288 + "description": "Unexpected error, logs may give details about the problem", 1289 + "value": "{\r\n \"type\": \"fatal\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1290 + } 1291 + } 1292 + } 1293 + } 1294 + } 1295 + } 1296 + } 1297 + }, 1298 + "/ledger/customer/v1/{ownerNo}/customers/{customerNo}/update-kyc-answers": { 1299 + "post": { 1300 + "tags": [ 1301 + "Customer" 1302 + ], 1303 + "summary": "Add new KYC answers", 1304 + "description": "When exposed on customer resources operations list it's a indication previous KYC answers up for renewal. Able to update KYC with this operation even if current aren't expired but won't be suggested on the customer resource", 1305 + "parameters": [ 1306 + { 1307 + "name": "ownerNo", 1308 + "in": "path", 1309 + "required": true, 1310 + "schema": { 1311 + "type": "string" 1312 + } 1313 + }, 1314 + { 1315 + "name": "customerNo", 1316 + "in": "path", 1317 + "required": true, 1318 + "schema": { 1319 + "type": "string" 1320 + } 1321 + } 1322 + ], 1323 + "requestBody": { 1324 + "content": { 1325 + "application/json": { 1326 + "schema": { 1327 + "$ref": "#/components/schemas/V1.Customers.Operations.UpdateKycAnswers.UpdateKycAnswersRequest" 1328 + }, 1329 + "example": "{\r\n \"answers\": [\r\n {\r\n \"questionCode\": \"taxable_outside_sweden\",\r\n \"answerCode\": \"no\"\r\n },\r\n {\r\n \"questionCode\": \"multiple_citizenship\",\r\n \"answerCode\": \"yes\"\r\n },\r\n {\r\n \"questionCode\": \"citizen_ship_country_codes\",\r\n \"answerCode\": \"SWE\"\r\n },\r\n {\r\n \"questionCode\": \"citizen_ship_country_codes\",\r\n \"answerCode\": \"NOR\"\r\n }\r\n ]\r\n}" 1330 + }, 1331 + "text/json": { 1332 + "schema": { 1333 + "$ref": "#/components/schemas/V1.Customers.Operations.UpdateKycAnswers.UpdateKycAnswersRequest" 1334 + } 1335 + }, 1336 + "application/*+json": { 1337 + "schema": { 1338 + "$ref": "#/components/schemas/V1.Customers.Operations.UpdateKycAnswers.UpdateKycAnswersRequest" 1339 + } 1340 + } 1341 + } 1342 + }, 1343 + "responses": { 1344 + "204": { 1345 + "description": "No Content", 1346 + "content": { 1347 + "application/json": { 1348 + "schema": { 1349 + "$ref": "#/components/schemas/PayEx.LF.Api.Common.RepositoryResources.Results.RepositoryNoContentResult" 1350 + } 1351 + } 1352 + } 1353 + }, 1354 + "400": { 1355 + "description": "BadRequest", 1356 + "content": { 1357 + "application/json": { 1358 + "examples": { 1359 + "validation": { 1360 + "description": "Occurs if the validation of the request fails, it is described in the problem why the input is invalid.", 1361 + "value": "{\r\n \"type\": \"validation\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1362 + } 1363 + } 1364 + } 1365 + } 1366 + }, 1367 + "404": { 1368 + "description": "NotFound", 1369 + "content": { 1370 + "application/json": { 1371 + "examples": { 1372 + "not-found": { 1373 + "description": "Occurs if the customer not found or if KYC is not configured on this ledger.", 1374 + "value": "{\r\n \"type\": \"not-found\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1375 + } 1376 + } 1377 + } 1378 + } 1379 + }, 1380 + "409": { 1381 + "description": "Conflict", 1382 + "content": { 1383 + "application/json": { 1384 + "examples": { 1385 + "company-kyc-questions-not-configured": { 1386 + "description": "Occurs if ledger is not currently configured for KYC", 1387 + "value": "{\r\n \"type\": \"company-kyc-questions-not-configured\",\r\n \"title\": \"Problem title\",\r\n \"status\": 409,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1388 + } 1389 + } 1390 + } 1391 + } 1392 + }, 1393 + "500": { 1394 + "description": "InternalServerError", 1395 + "content": { 1396 + "application/json": { 1397 + "examples": { 1398 + "fatal": { 1399 + "description": "Unexpected error, logs may give details about the problem", 1400 + "value": "{\r\n \"type\": \"fatal\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1401 + } 1402 + } 1403 + } 1404 + } 1405 + } 1406 + } 1407 + } 1408 + }, 1409 + "/ledger/customer/v1/{ownerNo}/customers/{customerNo}/legal-address/update-legal-address-from-population-register": { 1410 + "post": { 1411 + "tags": [ 1412 + "Customer" 1413 + ], 1414 + "summary": "Operation for replacing customer's legal address from the population registry", 1415 + "description": "Execution of this operation will result in an attempt to retrieve (and replace) the customer's legal address from the population registry.", 1416 + "parameters": [ 1417 + { 1418 + "name": "ownerNo", 1419 + "in": "path", 1420 + "required": true, 1421 + "schema": { 1422 + "type": "string" 1423 + } 1424 + }, 1425 + { 1426 + "name": "customerNo", 1427 + "in": "path", 1428 + "required": true, 1429 + "schema": { 1430 + "type": "string" 1431 + } 1432 + } 1433 + ], 1434 + "responses": { 1435 + "204": { 1436 + "description": "No Content", 1437 + "content": { 1438 + "application/json": { 1439 + "schema": { 1440 + "$ref": "#/components/schemas/PayEx.LF.Api.Common.RepositoryResources.Results.RepositoryNoContentResult" 1441 + } 1442 + } 1443 + } 1444 + }, 1445 + "500": { 1446 + "description": "InternalServerError", 1447 + "content": { 1448 + "application/json": { 1449 + "examples": { 1450 + "internal-server-error": { 1451 + "description": "The requested resource '' could not be processed. Please contact support.", 1452 + "value": "{\r\n \"type\": \"internal-server-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1453 + }, 1454 + "handled-exception": { 1455 + "description": "The requested resource '' could not be processed. Please contact support.", 1456 + "value": "{\r\n \"type\": \"handled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1457 + }, 1458 + "unhandled-exception": { 1459 + "description": "The requested resource '' could not be processed. Please contact support.", 1460 + "value": "{\r\n \"type\": \"unhandled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1461 + } 1462 + } 1463 + } 1464 + } 1465 + }, 1466 + "400": { 1467 + "description": "BadRequest", 1468 + "content": { 1469 + "application/json": { 1470 + "examples": { 1471 + "general-validation-error": { 1472 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 1473 + "value": "{\r\n \"type\": \"general-validation-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1474 + }, 1475 + "validation": { 1476 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 1477 + "value": "{\r\n \"type\": \"validation\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1478 + } 1479 + } 1480 + } 1481 + } 1482 + }, 1483 + "404": { 1484 + "description": "NotFound", 1485 + "content": { 1486 + "application/json": { 1487 + "examples": { 1488 + "customer-does-not-exists": { 1489 + "description": "The requested resource '' was not found.", 1490 + "value": "{\r\n \"type\": \"customer-does-not-exists\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1491 + }, 1492 + "customer-not-found": { 1493 + "description": "The requested resource '' was not found.", 1494 + "value": "{\r\n \"type\": \"customer-not-found\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1495 + } 1496 + } 1497 + } 1498 + } 1499 + } 1500 + } 1501 + } 1502 + }, 1503 + "/ledger/customer/v1/{ownerNo}/customers/{customerNo}/billing-address": { 1504 + "get": { 1505 + "tags": [ 1506 + "Customer" 1507 + ], 1508 + "summary": "Get the billing address of the customer", 1509 + "description": "The billing address is where invoices/bills/letters etc. is normally sent to. This address is optional", 1510 + "parameters": [ 1511 + { 1512 + "name": "ownerNo", 1513 + "in": "path", 1514 + "required": true, 1515 + "schema": { 1516 + "type": "string" 1517 + } 1518 + }, 1519 + { 1520 + "name": "customerNo", 1521 + "in": "path", 1522 + "required": true, 1523 + "schema": { 1524 + "type": "string" 1525 + } 1526 + } 1527 + ], 1528 + "responses": { 1529 + "200": { 1530 + "description": "OK", 1531 + "content": { 1532 + "application/json": { 1533 + "schema": { 1534 + "$ref": "#/components/schemas/V1.Customers.SingleResources.AddressResource" 1535 + }, 1536 + "examples": { 1537 + "OK": { 1538 + "description": "Get customer billing-address", 1539 + "value": "{\r\n \"addressee\": \"Test Testsson\",\r\n \"streetAddress\": \"Test street 1\",\r\n \"zipCode\": \"60000\",\r\n \"city\": \"Test town\",\r\n \"coAddress\": \"Co address\",\r\n \"countryCode\": \"SE\",\r\n \"operations\": [\r\n {\r\n \"rel\": \"update-billing-address\",\r\n \"method\": \"PUT\",\r\n \"href\": \"/ledger/customer/v1/xxx/customers/yyy/billing-address\"\r\n },\r\n {\r\n \"rel\": \"delete-billing-address\",\r\n \"method\": \"DELETE\",\r\n \"href\": \"/ledger/customer/v1/xxx/customers/yyy/billing-address\"\r\n }\r\n ]\r\n}" 1540 + } 1541 + } 1542 + } 1543 + } 1544 + }, 1545 + "500": { 1546 + "description": "InternalServerError", 1547 + "content": { 1548 + "application/json": { 1549 + "examples": { 1550 + "internal-server-error": { 1551 + "description": "The requested resource '' could not be processed. Please contact support.", 1552 + "value": "{\r\n \"type\": \"internal-server-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1553 + }, 1554 + "handled-exception": { 1555 + "description": "The requested resource '' could not be processed. Please contact support.", 1556 + "value": "{\r\n \"type\": \"handled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1557 + }, 1558 + "unhandled-exception": { 1559 + "description": "The requested resource '' could not be processed. Please contact support.", 1560 + "value": "{\r\n \"type\": \"unhandled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1561 + } 1562 + } 1563 + } 1564 + } 1565 + }, 1566 + "400": { 1567 + "description": "BadRequest", 1568 + "content": { 1569 + "application/json": { 1570 + "examples": { 1571 + "general-validation-error": { 1572 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 1573 + "value": "{\r\n \"type\": \"general-validation-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1574 + }, 1575 + "validation": { 1576 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 1577 + "value": "{\r\n \"type\": \"validation\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1578 + } 1579 + } 1580 + } 1581 + } 1582 + }, 1583 + "404": { 1584 + "description": "NotFound", 1585 + "content": { 1586 + "application/json": { 1587 + "examples": { 1588 + "customer-does-not-exists": { 1589 + "description": "The requested resource '' was not found.", 1590 + "value": "{\r\n \"type\": \"customer-does-not-exists\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1591 + }, 1592 + "customer-not-found": { 1593 + "description": "The requested resource '' was not found.", 1594 + "value": "{\r\n \"type\": \"customer-not-found\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1595 + } 1596 + } 1597 + } 1598 + } 1599 + } 1600 + } 1601 + }, 1602 + "post": { 1603 + "tags": [ 1604 + "Customer" 1605 + ], 1606 + "summary": "Add a billing-address", 1607 + "description": "Add a billing address to customer. The billing address is where invoices/bills/letters etc. is normally sent to. This address is optional", 1608 + "parameters": [ 1609 + { 1610 + "name": "ownerNo", 1611 + "in": "path", 1612 + "required": true, 1613 + "schema": { 1614 + "type": "string" 1615 + } 1616 + }, 1617 + { 1618 + "name": "customerNo", 1619 + "in": "path", 1620 + "required": true, 1621 + "schema": { 1622 + "type": "string" 1623 + } 1624 + } 1625 + ], 1626 + "requestBody": { 1627 + "content": { 1628 + "application/json": { 1629 + "schema": { 1630 + "$ref": "#/components/schemas/V1.Customers.SingleResources.AddressRequest" 1631 + }, 1632 + "example": "{\r\n \"addressee\": \"Test Testsson\",\r\n \"streetAddress\": \"Test street 1\",\r\n \"zipCode\": \"60000\",\r\n \"city\": \"Test town\",\r\n \"coAddress\": \"Co address\",\r\n \"countryCode\": \"SE\"\r\n}" 1633 + } 1634 + } 1635 + }, 1636 + "responses": { 1637 + "204": { 1638 + "description": "No Content", 1639 + "content": { 1640 + "application/json": { 1641 + "schema": { 1642 + "$ref": "#/components/schemas/PayEx.LF.Api.Common.RepositoryResources.Results.RepositoryNoContentResult" 1643 + } 1644 + } 1645 + } 1646 + }, 1647 + "500": { 1648 + "description": "InternalServerError", 1649 + "content": { 1650 + "application/json": { 1651 + "examples": { 1652 + "internal-server-error": { 1653 + "description": "The requested resource '' could not be processed. Please contact support.", 1654 + "value": "{\r\n \"type\": \"internal-server-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1655 + }, 1656 + "handled-exception": { 1657 + "description": "The requested resource '' could not be processed. Please contact support.", 1658 + "value": "{\r\n \"type\": \"handled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1659 + }, 1660 + "unhandled-exception": { 1661 + "description": "The requested resource '' could not be processed. Please contact support.", 1662 + "value": "{\r\n \"type\": \"unhandled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1663 + } 1664 + } 1665 + } 1666 + } 1667 + }, 1668 + "400": { 1669 + "description": "BadRequest", 1670 + "content": { 1671 + "application/json": { 1672 + "examples": { 1673 + "general-validation-error": { 1674 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 1675 + "value": "{\r\n \"type\": \"general-validation-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1676 + }, 1677 + "validation": { 1678 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 1679 + "value": "{\r\n \"type\": \"validation\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1680 + } 1681 + } 1682 + } 1683 + } 1684 + }, 1685 + "404": { 1686 + "description": "NotFound", 1687 + "content": { 1688 + "application/json": { 1689 + "examples": { 1690 + "customer-does-not-exists": { 1691 + "description": "The requested resource '' was not found.", 1692 + "value": "{\r\n \"type\": \"customer-does-not-exists\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1693 + }, 1694 + "customer-not-found": { 1695 + "description": "The requested resource '' was not found.", 1696 + "value": "{\r\n \"type\": \"customer-not-found\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1697 + } 1698 + } 1699 + } 1700 + } 1701 + } 1702 + } 1703 + }, 1704 + "put": { 1705 + "tags": [ 1706 + "Customer" 1707 + ], 1708 + "summary": "Update billing-address", 1709 + "description": "Use this operation to update the address, the \"PUT\" body of the request should be according to the properties of the resource.", 1710 + "parameters": [ 1711 + { 1712 + "name": "ownerNo", 1713 + "in": "path", 1714 + "required": true, 1715 + "schema": { 1716 + "type": "string" 1717 + } 1718 + }, 1719 + { 1720 + "name": "customerNo", 1721 + "in": "path", 1722 + "required": true, 1723 + "schema": { 1724 + "type": "string" 1725 + } 1726 + } 1727 + ], 1728 + "requestBody": { 1729 + "content": { 1730 + "application/json": { 1731 + "schema": { 1732 + "$ref": "#/components/schemas/V1.Customers.SingleResources.AddressRequest" 1733 + }, 1734 + "example": "{\r\n \"addressee\": \"Test Testsson\",\r\n \"streetAddress\": \"Test street 1\",\r\n \"zipCode\": \"60000\",\r\n \"city\": \"Test town\",\r\n \"coAddress\": \"Co address\",\r\n \"countryCode\": \"SE\"\r\n}" 1735 + } 1736 + } 1737 + }, 1738 + "responses": { 1739 + "204": { 1740 + "description": "No Content", 1741 + "content": { 1742 + "application/json": { 1743 + "schema": { 1744 + "$ref": "#/components/schemas/PayEx.LF.Api.Common.RepositoryResources.Results.RepositoryNoContentResult" 1745 + } 1746 + } 1747 + } 1748 + }, 1749 + "500": { 1750 + "description": "InternalServerError", 1751 + "content": { 1752 + "application/json": { 1753 + "examples": { 1754 + "internal-server-error": { 1755 + "description": "The requested resource '' could not be processed. Please contact support.", 1756 + "value": "{\r\n \"type\": \"internal-server-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1757 + }, 1758 + "handled-exception": { 1759 + "description": "The requested resource '' could not be processed. Please contact support.", 1760 + "value": "{\r\n \"type\": \"handled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1761 + }, 1762 + "unhandled-exception": { 1763 + "description": "The requested resource '' could not be processed. Please contact support.", 1764 + "value": "{\r\n \"type\": \"unhandled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1765 + } 1766 + } 1767 + } 1768 + } 1769 + }, 1770 + "400": { 1771 + "description": "BadRequest", 1772 + "content": { 1773 + "application/json": { 1774 + "examples": { 1775 + "general-validation-error": { 1776 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 1777 + "value": "{\r\n \"type\": \"general-validation-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1778 + }, 1779 + "validation": { 1780 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 1781 + "value": "{\r\n \"type\": \"validation\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1782 + } 1783 + } 1784 + } 1785 + } 1786 + }, 1787 + "404": { 1788 + "description": "NotFound", 1789 + "content": { 1790 + "application/json": { 1791 + "examples": { 1792 + "customer-does-not-exists": { 1793 + "description": "The requested resource '' was not found.", 1794 + "value": "{\r\n \"type\": \"customer-does-not-exists\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1795 + }, 1796 + "customer-not-found": { 1797 + "description": "The requested resource '' was not found.", 1798 + "value": "{\r\n \"type\": \"customer-not-found\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1799 + } 1800 + } 1801 + } 1802 + } 1803 + } 1804 + } 1805 + }, 1806 + "delete": { 1807 + "tags": [ 1808 + "Customer" 1809 + ], 1810 + "summary": "Delete billing-address", 1811 + "description": "Use this operation to delete the billing address.", 1812 + "parameters": [ 1813 + { 1814 + "name": "ownerNo", 1815 + "in": "path", 1816 + "required": true, 1817 + "schema": { 1818 + "type": "string" 1819 + } 1820 + }, 1821 + { 1822 + "name": "customerNo", 1823 + "in": "path", 1824 + "required": true, 1825 + "schema": { 1826 + "maxLength": 255, 1827 + "minLength": 0, 1828 + "type": "string" 1829 + } 1830 + } 1831 + ], 1832 + "responses": { 1833 + "204": { 1834 + "description": "No Content", 1835 + "content": { 1836 + "application/json": { 1837 + "schema": { 1838 + "$ref": "#/components/schemas/PayEx.LF.Api.Common.RepositoryResources.Results.RepositoryNoContentResult" 1839 + } 1840 + } 1841 + } 1842 + }, 1843 + "500": { 1844 + "description": "InternalServerError", 1845 + "content": { 1846 + "application/json": { 1847 + "examples": { 1848 + "internal-server-error": { 1849 + "description": "The requested resource '' could not be processed. Please contact support.", 1850 + "value": "{\r\n \"type\": \"internal-server-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1851 + }, 1852 + "handled-exception": { 1853 + "description": "The requested resource '' could not be processed. Please contact support.", 1854 + "value": "{\r\n \"type\": \"handled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1855 + }, 1856 + "unhandled-exception": { 1857 + "description": "The requested resource '' could not be processed. Please contact support.", 1858 + "value": "{\r\n \"type\": \"unhandled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1859 + } 1860 + } 1861 + } 1862 + } 1863 + }, 1864 + "400": { 1865 + "description": "BadRequest", 1866 + "content": { 1867 + "application/json": { 1868 + "examples": { 1869 + "general-validation-error": { 1870 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 1871 + "value": "{\r\n \"type\": \"general-validation-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1872 + }, 1873 + "validation": { 1874 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 1875 + "value": "{\r\n \"type\": \"validation\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1876 + } 1877 + } 1878 + } 1879 + } 1880 + }, 1881 + "404": { 1882 + "description": "NotFound", 1883 + "content": { 1884 + "application/json": { 1885 + "examples": { 1886 + "customer-does-not-exists": { 1887 + "description": "The requested resource '' was not found.", 1888 + "value": "{\r\n \"type\": \"customer-does-not-exists\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1889 + }, 1890 + "customer-not-found": { 1891 + "description": "The requested resource '' was not found.", 1892 + "value": "{\r\n \"type\": \"customer-not-found\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1893 + } 1894 + } 1895 + } 1896 + } 1897 + } 1898 + } 1899 + } 1900 + }, 1901 + "/ledger/customer/v1/{ownerNo}/customers/{customerNo}/consent": { 1902 + "get": { 1903 + "tags": [ 1904 + "Customer" 1905 + ], 1906 + "summary": "Get the underlying Consent resources.", 1907 + "description": "Underlying resources that display information or enable registration of a customer's consent.", 1908 + "parameters": [ 1909 + { 1910 + "name": "ownerNo", 1911 + "in": "path", 1912 + "required": true, 1913 + "schema": { 1914 + "type": "string" 1915 + } 1916 + }, 1917 + { 1918 + "name": "customerNo", 1919 + "in": "path", 1920 + "required": true, 1921 + "schema": { 1922 + "type": "string" 1923 + } 1924 + } 1925 + ], 1926 + "responses": { 1927 + "200": { 1928 + "description": "OK", 1929 + "content": { 1930 + "application/json": { 1931 + "schema": { 1932 + "$ref": "#/components/schemas/V1.Customers.SingleResources.Consent.ConsentResource" 1933 + }, 1934 + "examples": { 1935 + "OK": { 1936 + "description": "Get customer consent", 1937 + "value": "{\r\n \"recurringCard\": \"/ledger/customer/v1/xxx/customers/yyy/consent/recurring-card\",\r\n \"recurringCardRedirectRegistration\": \"/ledger/customer/v1/xxx/customers/yyy/consent/recurring-card-redirect-registration\",\r\n \"trustedSellerGroups\": \"/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups\",\r\n \"availableTrustedSellerGroupConsents\": [],\r\n \"operations\": [\r\n {\r\n \"rel\": \"add-trusted-seller-group\",\r\n \"method\": \"POST\",\r\n \"href\": \"/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups\"\r\n },\r\n {\r\n \"rel\": \"add-recurring-card-redirect-registration\",\r\n \"method\": \"POST\",\r\n \"href\": \"/ledger/customer/v1/xxx/customers/yyy/consent/recurring-card-redirect-registration\"\r\n }\r\n ]\r\n}" 1938 + } 1939 + } 1940 + } 1941 + } 1942 + } 1943 + } 1944 + } 1945 + }, 1946 + "/ledger/customer/v1/{ownerNo}/find-customer": { 1947 + "post": { 1948 + "tags": [ 1949 + "Customer" 1950 + ], 1951 + "summary": "Find customer by nationalIdentifier", 1952 + "description": " It is used to find customer with nationalIdentifier.", 1953 + "parameters": [ 1954 + { 1955 + "name": "ownerNo", 1956 + "in": "path", 1957 + "required": true, 1958 + "schema": { 1959 + "type": "string" 1960 + } 1961 + } 1962 + ], 1963 + "requestBody": { 1964 + "content": { 1965 + "application/json": { 1966 + "schema": { 1967 + "$ref": "#/components/schemas/PayEx.AR.Customer.Api.Domain.FindCustomer.External.ApiResources.FindCustomerResource" 1968 + }, 1969 + "example": "{\r\n \"nationalIdentifier\": {\r\n \"regNo\": \"YYYYMMDD-NNNN\",\r\n \"countryCode\": \"SE\"\r\n }\r\n}" 1970 + } 1971 + } 1972 + }, 1973 + "responses": { 1974 + "200": { 1975 + "description": "OK", 1976 + "content": { 1977 + "application/json": { 1978 + "schema": { 1979 + "$ref": "#/components/schemas/PayEx.AR.Customer.Api.Domain.FindCustomer.External.ApiResources.Results.FindCustomerResult" 1980 + }, 1981 + "examples": { 1982 + "OK": { 1983 + "description": "Find customer with nationalIdentifier, regno and countrycode, returns CustomerNo = YYY", 1984 + "value": "{\r\n \"customerNo\": \"YYY\"\r\n}" 1985 + } 1986 + } 1987 + } 1988 + } 1989 + }, 1990 + "500": { 1991 + "description": "InternalServerError", 1992 + "content": { 1993 + "application/json": { 1994 + "examples": { 1995 + "internal-server-error": { 1996 + "description": "The requested resource '' could not be processed. Please contact support.", 1997 + "value": "{\r\n \"type\": \"internal-server-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 1998 + }, 1999 + "handled-exception": { 2000 + "description": "The requested resource '' could not be processed. Please contact support.", 2001 + "value": "{\r\n \"type\": \"handled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 2002 + }, 2003 + "unhandled-exception": { 2004 + "description": "The requested resource '' could not be processed. Please contact support.", 2005 + "value": "{\r\n \"type\": \"unhandled-exception\",\r\n \"title\": \"Problem title\",\r\n \"status\": 500,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 2006 + } 2007 + } 2008 + } 2009 + } 2010 + }, 2011 + "400": { 2012 + "description": "BadRequest", 2013 + "content": { 2014 + "application/json": { 2015 + "examples": { 2016 + "general-validation-error": { 2017 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 2018 + "value": "{\r\n \"type\": \"general-validation-error\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 2019 + }, 2020 + "validation": { 2021 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 2022 + "value": "{\r\n \"type\": \"validation\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 2023 + }, 2024 + "invalid-reg-no": { 2025 + "description": "Validation error when accessing resource . Please refer to the problems property for additional details.", 2026 + "value": "{\r\n \"type\": \"invalid-reg-no\",\r\n \"title\": \"Problem title\",\r\n \"status\": 400,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 2027 + } 2028 + } 2029 + } 2030 + } 2031 + }, 2032 + "404": { 2033 + "description": "NotFound", 2034 + "content": { 2035 + "application/json": { 2036 + "examples": { 2037 + "customer-does-not-exists": { 2038 + "description": "The requested resource '' was not found.", 2039 + "value": "{\r\n \"type\": \"customer-does-not-exists\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 2040 + }, 2041 + "customer-not-found": { 2042 + "description": "The requested resource '' was not found.", 2043 + "value": "{\r\n \"type\": \"customer-not-found\",\r\n \"title\": \"Problem title\",\r\n \"status\": 404,\r\n \"detail\": \"Problem details\",\r\n \"instance\": \"/traceId/e7e47c48-4a22-426e-9746-0dc0ea21d73a\"\r\n}" 2044 + } 2045 + } 2046 + } 2047 + } 2048 + } 2049 + } 2050 + } 2051 + }, 2052 + "/ledger/customer/v1/{ownerNo}/customers/{customerNo}/consent/recurring-card": { 2053 + "get": { 2054 + "tags": [ 2055 + "Customer" 2056 + ], 2057 + "summary": "Get customer active Recurring Card Consent.", 2058 + "description": "Get details about the customer's active Recurring Card Consent.", 2059 + "parameters": [ 2060 + { 2061 + "name": "ownerNo", 2062 + "in": "path", 2063 + "required": true, 2064 + "schema": { 2065 + "type": "string" 2066 + } 2067 + }, 2068 + { 2069 + "name": "customerNo", 2070 + "in": "path", 2071 + "required": true, 2072 + "schema": { 2073 + "type": "string" 2074 + } 2075 + } 2076 + ], 2077 + "responses": { 2078 + "200": { 2079 + "description": "OK", 2080 + "content": { 2081 + "application/json": { 2082 + "schema": { 2083 + "$ref": "#/components/schemas/V1.Customers.SingleResources.Consent.SingleResources.RecurringCard.RecurringCardResource" 2084 + }, 2085 + "examples": { 2086 + "OK": { 2087 + "description": "Get customer active Recurring Card Consent.", 2088 + "value": "{\r\n \"cardToken\": \"2eb28854-07ec-4e88-b672-7c61cc54b461\",\r\n \"consentExpiryDate\": \"04-2035\",\r\n \"instrumentDisplayName\": \"551000******1232\",\r\n \"cardExpiryDate\": \"04/2035\",\r\n \"cardBrand\": \"Visa\",\r\n \"operations\": [\r\n {\r\n \"rel\": \"delete-recurring-card\",\r\n \"method\": \"DELETE\",\r\n \"href\": \"/ledger/customer/v1/xxx/customers/yyy/consent/recurring-card\"\r\n }\r\n ]\r\n}" 2089 + } 2090 + } 2091 + } 2092 + } 2093 + } 2094 + } 2095 + }, 2096 + "delete": { 2097 + "tags": [ 2098 + "Customer" 2099 + ], 2100 + "summary": "Delete customer active Recurring Card Consent.", 2101 + "description": "Delete the customer's active Recurring Card Consent.", 2102 + "parameters": [ 2103 + { 2104 + "name": "ownerNo", 2105 + "in": "path", 2106 + "required": true, 2107 + "schema": { 2108 + "type": "string" 2109 + } 2110 + }, 2111 + { 2112 + "name": "customerNo", 2113 + "in": "path", 2114 + "required": true, 2115 + "schema": { 2116 + "type": "string" 2117 + } 2118 + } 2119 + ], 2120 + "responses": { 2121 + "204": { 2122 + "description": "No Content", 2123 + "content": { 2124 + "application/json": { 2125 + "schema": { 2126 + "$ref": "#/components/schemas/PayEx.LF.Api.Common.RepositoryResources.Results.RepositoryNoContentResult" 2127 + } 2128 + } 2129 + } 2130 + } 2131 + } 2132 + } 2133 + }, 2134 + "/ledger/customer/v1/{ownerNo}/customers/{customerNo}/consent/recurring-card-redirect-registration": { 2135 + "get": { 2136 + "tags": [ 2137 + "Customer" 2138 + ], 2139 + "summary": "Get Recurring Card registration.", 2140 + "description": "Get details about the customer's ongoing Recurring Card registration.", 2141 + "parameters": [ 2142 + { 2143 + "name": "ownerNo", 2144 + "in": "path", 2145 + "required": true, 2146 + "schema": { 2147 + "type": "string" 2148 + } 2149 + }, 2150 + { 2151 + "name": "customerNo", 2152 + "in": "path", 2153 + "required": true, 2154 + "schema": { 2155 + "type": "string" 2156 + } 2157 + } 2158 + ], 2159 + "responses": { 2160 + "200": { 2161 + "description": "OK", 2162 + "content": { 2163 + "application/json": { 2164 + "schema": { 2165 + "$ref": "#/components/schemas/V1.Customers.SingleResources.Consent.SingleResources.RecurringCardRedirectRegistration.RecurringCardRedirectRegistrationResource" 2166 + }, 2167 + "examples": { 2168 + "OK": { 2169 + "description": "Customer's ongoing Recurring Card Registration.", 2170 + "value": "{\r\n \"redirectUrl\": \"https://ecom.externalintegration.payex.com/checkout/abc123\",\r\n \"status\": \"Initialized\",\r\n \"operations\": []\r\n}" 2171 + } 2172 + } 2173 + } 2174 + } 2175 + } 2176 + } 2177 + }, 2178 + "post": { 2179 + "tags": [ 2180 + "Customer" 2181 + ], 2182 + "summary": "Start a Recurring Card registration.", 2183 + "description": "Initializes the customer's Recurring Card registration with redirect to SwedbankPay.", 2184 + "parameters": [ 2185 + { 2186 + "name": "ownerNo", 2187 + "in": "path", 2188 + "required": true, 2189 + "schema": { 2190 + "type": "string" 2191 + } 2192 + }, 2193 + { 2194 + "name": "customerNo", 2195 + "in": "path", 2196 + "required": true, 2197 + "schema": { 2198 + "type": "string" 2199 + } 2200 + } 2201 + ], 2202 + "requestBody": { 2203 + "content": { 2204 + "application/json": { 2205 + "schema": { 2206 + "$ref": "#/components/schemas/V1.Customers.SingleResources.Consent.SingleResources.RecurringCardRedirectRegistration.RecurringCardRedirectRegistrationRequest" 2207 + }, 2208 + "example": "{\r\n \"completeUrl\": \"https://www.google.com/search?q=cancelurl\",\r\n \"cancelUrl\": \"https://www.google.com/search?q=completeurl\",\r\n \"language\": \"en-US\"\r\n}" 2209 + }, 2210 + "text/json": { 2211 + "schema": { 2212 + "$ref": "#/components/schemas/V1.Customers.SingleResources.Consent.SingleResources.RecurringCardRedirectRegistration.RecurringCardRedirectRegistrationRequest" 2213 + } 2214 + }, 2215 + "application/*+json": { 2216 + "schema": { 2217 + "$ref": "#/components/schemas/V1.Customers.SingleResources.Consent.SingleResources.RecurringCardRedirectRegistration.RecurringCardRedirectRegistrationRequest" 2218 + } 2219 + } 2220 + } 2221 + }, 2222 + "responses": { 2223 + "200": { 2224 + "description": "OK", 2225 + "content": { 2226 + "application/json": { 2227 + "schema": { 2228 + "$ref": "#/components/schemas/V1.Customers.SingleResources.Consent.SingleResources.RecurringCardRedirectRegistration.RecurringCardRedirectRegistrationResource" 2229 + }, 2230 + "examples": { 2231 + "OK": { 2232 + "description": "Customer's ongoing Recurring Card Registration.", 2233 + "value": "{\r\n \"redirectUrl\": \"https://ecom.externalintegration.payex.com/checkout/abc123\",\r\n \"status\": \"Initialized\",\r\n \"operations\": [],\r\n \"@id\": \"/ledger/customer/v1/xxx/customers/yyy/consent/recurring-card-redirect-registration\"\r\n}" 2234 + } 2235 + } 2236 + } 2237 + } 2238 + } 2239 + } 2240 + } 2241 + } 2242 + }, 2243 + "components": { 2244 + "schemas": { 2245 + "PayEx.AR.Customer.Api.Domain.FindCustomer.External.ApiResources.ComplexTypes.NationalIdentifier": { 2246 + "required": [ 2247 + "regNo" 2248 + ], 2249 + "type": "object", 2250 + "properties": { 2251 + "regNo": { 2252 + "minLength": 1, 2253 + "type": "string" 2254 + }, 2255 + "countryCode": { 2256 + "type": "string", 2257 + "nullable": true 2258 + } 2259 + }, 2260 + "additionalProperties": false 2261 + }, 2262 + "PayEx.AR.Customer.Api.Domain.FindCustomer.External.ApiResources.FindCustomerResource": { 2263 + "type": "object", 2264 + "properties": { 2265 + "@id": { 2266 + "type": "string", 2267 + "nullable": true 2268 + }, 2269 + "nationalIdentifier": { 2270 + "$ref": "#/components/schemas/PayEx.AR.Customer.Api.Domain.FindCustomer.External.ApiResources.ComplexTypes.NationalIdentifier" 2271 + } 2272 + }, 2273 + "additionalProperties": false 2274 + }, 2275 + "PayEx.AR.Customer.Api.Domain.FindCustomer.External.ApiResources.Results.FindCustomerResult": { 2276 + "type": "object", 2277 + "properties": { 2278 + "@id": { 2279 + "type": "string", 2280 + "nullable": true 2281 + }, 2282 + "customerNo": { 2283 + "type": "string", 2284 + "nullable": true 2285 + } 2286 + }, 2287 + "additionalProperties": false 2288 + }, 2289 + "PayEx.AR.Customer.Api.Entity.Answer": { 2290 + "required": [ 2291 + "answerCode", 2292 + "questionCode" 2293 + ], 2294 + "type": "object", 2295 + "properties": { 2296 + "questionCode": { 2297 + "minLength": 1, 2298 + "type": "string", 2299 + "description": "The code definition of the question" 2300 + }, 2301 + "answerCode": { 2302 + "minLength": 1, 2303 + "type": "string", 2304 + "description": "The code definition of the answer" 2305 + } 2306 + }, 2307 + "additionalProperties": false 2308 + }, 2309 + "PayEx.AR.Customer.Api.Entity.AnswerBase": { 2310 + "required": [ 2311 + "possibleAnswers", 2312 + "required", 2313 + "textValidationRegEx", 2314 + "type" 2315 + ], 2316 + "type": "object", 2317 + "properties": { 2318 + "type": { 2319 + "minLength": 1, 2320 + "type": "string", 2321 + "description": "The type of the expected answer: single | multi | text" 2322 + }, 2323 + "required": { 2324 + "type": "boolean", 2325 + "description": "If the answer is required" 2326 + }, 2327 + "textValidationRegEx": { 2328 + "minLength": 1, 2329 + "type": "string", 2330 + "description": "The regex the answer should match" 2331 + }, 2332 + "possibleAnswers": { 2333 + "type": "array", 2334 + "items": { 2335 + "$ref": "#/components/schemas/PayEx.AR.Customer.Api.Entity.PossibleAnswer" 2336 + }, 2337 + "description": "The definitions of possible answers" 2338 + } 2339 + }, 2340 + "additionalProperties": false 2341 + }, 2342 + "PayEx.AR.Customer.Api.Entity.PossibleAnswer": { 2343 + "required": [ 2344 + "answerCode", 2345 + "answerText" 2346 + ], 2347 + "type": "object", 2348 + "properties": { 2349 + "answerCode": { 2350 + "minLength": 1, 2351 + "type": "string", 2352 + "description": "The code definition of the answer" 2353 + }, 2354 + "answerText": { 2355 + "minLength": 1, 2356 + "type": "string", 2357 + "description": "The translated text of the answer" 2358 + }, 2359 + "subQuestions": { 2360 + "type": "array", 2361 + "items": { 2362 + "$ref": "#/components/schemas/PayEx.AR.Customer.Api.Entity.Question" 2363 + }, 2364 + "description": "The subquestions connected to an answer", 2365 + "nullable": true 2366 + } 2367 + }, 2368 + "additionalProperties": false 2369 + }, 2370 + "PayEx.AR.Customer.Api.Entity.Question": { 2371 + "required": [ 2372 + "answer", 2373 + "questionCode", 2374 + "questionText" 2375 + ], 2376 + "type": "object", 2377 + "properties": { 2378 + "questionCode": { 2379 + "minLength": 1, 2380 + "type": "string", 2381 + "description": "The code definition of the question" 2382 + }, 2383 + "questionText": { 2384 + "minLength": 1, 2385 + "type": "string", 2386 + "description": "The translated text of the question" 2387 + }, 2388 + "answer": { 2389 + "$ref": "#/components/schemas/PayEx.AR.Customer.Api.Entity.AnswerBase" 2390 + } 2391 + }, 2392 + "additionalProperties": false 2393 + }, 2394 + "PayEx.LF.Api.Common.RepositoryResources.IOperation": { 2395 + "type": "object", 2396 + "properties": { 2397 + "rel": { 2398 + "type": "string", 2399 + "nullable": true, 2400 + "readOnly": true 2401 + }, 2402 + "method": { 2403 + "type": "string", 2404 + "nullable": true, 2405 + "readOnly": true 2406 + }, 2407 + "href": { 2408 + "type": "string", 2409 + "nullable": true 2410 + } 2411 + }, 2412 + "additionalProperties": false 2413 + }, 2414 + "PayEx.LF.Api.Common.RepositoryResources.NavigationView": { 2415 + "required": [ 2416 + "@id", 2417 + "first", 2418 + "next", 2419 + "previous" 2420 + ], 2421 + "type": "object", 2422 + "properties": { 2423 + "@id": { 2424 + "minLength": 1, 2425 + "type": "string", 2426 + "description": "The current result view.", 2427 + "format": "uri" 2428 + }, 2429 + "first": { 2430 + "minLength": 1, 2431 + "type": "string", 2432 + "description": "Link to the first results.", 2433 + "format": "uri" 2434 + }, 2435 + "previous": { 2436 + "minLength": 1, 2437 + "type": "string", 2438 + "description": "Link to the previous results.", 2439 + "format": "uri" 2440 + }, 2441 + "next": { 2442 + "minLength": 1, 2443 + "type": "string", 2444 + "description": "Link to the next results.", 2445 + "format": "uri" 2446 + } 2447 + }, 2448 + "additionalProperties": false 2449 + }, 2450 + "PayEx.LF.Api.Common.RepositoryResources.Results.RepositoryNoContentResult": { 2451 + "type": "object", 2452 + "additionalProperties": false 2453 + }, 2454 + "V1.Customers.CreateAddressResource": { 2455 + "type": "object", 2456 + "properties": { 2457 + "addressee": { 2458 + "type": "string", 2459 + "nullable": true 2460 + }, 2461 + "streetAddress": { 2462 + "type": "string", 2463 + "nullable": true 2464 + }, 2465 + "zipCode": { 2466 + "type": "string", 2467 + "nullable": true 2468 + }, 2469 + "city": { 2470 + "type": "string", 2471 + "nullable": true 2472 + }, 2473 + "coAddress": { 2474 + "type": "string", 2475 + "nullable": true 2476 + }, 2477 + "countryCode": { 2478 + "type": "string", 2479 + "nullable": true 2480 + } 2481 + }, 2482 + "additionalProperties": false 2483 + }, 2484 + "V1.Customers.CreateCustomerResource": { 2485 + "type": "object", 2486 + "properties": { 2487 + "customerNo": { 2488 + "type": "string", 2489 + "nullable": true 2490 + }, 2491 + "ediAddressInfo": { 2492 + "$ref": "#/components/schemas/V1.Customers.EDIAddressInfo" 2493 + }, 2494 + "emailAddress": { 2495 + "type": "string", 2496 + "nullable": true 2497 + }, 2498 + "legalAddress": { 2499 + "$ref": "#/components/schemas/V1.Customers.CreateAddressResource" 2500 + }, 2501 + "billingAddress": { 2502 + "$ref": "#/components/schemas/V1.Customers.CreateAddressResource" 2503 + }, 2504 + "legalEntity": { 2505 + "type": "string", 2506 + "nullable": true 2507 + }, 2508 + "msisdn": { 2509 + "type": "string", 2510 + "nullable": true 2511 + }, 2512 + "name": { 2513 + "type": "string", 2514 + "nullable": true 2515 + }, 2516 + "nationalIdentifier": { 2517 + "$ref": "#/components/schemas/V1.Customers.NationalIdentifier" 2518 + }, 2519 + "protectedIdentity": { 2520 + "type": "boolean" 2521 + }, 2522 + "preferredLanguageCode": { 2523 + "type": "string", 2524 + "nullable": true 2525 + }, 2526 + "vatNo": { 2527 + "type": "string", 2528 + "nullable": true 2529 + }, 2530 + "distributionType": { 2531 + "type": "string", 2532 + "nullable": true 2533 + }, 2534 + "taxIdentificationNumber": { 2535 + "type": "string", 2536 + "nullable": true 2537 + } 2538 + }, 2539 + "additionalProperties": false 2540 + }, 2541 + "V1.Customers.CustomersCreatedResource": { 2542 + "type": "object", 2543 + "properties": { 2544 + "@id": { 2545 + "type": "string", 2546 + "nullable": true 2547 + }, 2548 + "customerNo": { 2549 + "type": "string", 2550 + "nullable": true 2551 + } 2552 + }, 2553 + "additionalProperties": false 2554 + }, 2555 + "V1.Customers.CustomersResource": { 2556 + "type": "object", 2557 + "properties": { 2558 + "@id": { 2559 + "type": "string", 2560 + "nullable": true 2561 + }, 2562 + "customerNo": { 2563 + "type": "string", 2564 + "nullable": true 2565 + }, 2566 + "nationalIdentifier": { 2567 + "$ref": "#/components/schemas/V1.Customers.NationalIdentifier" 2568 + }, 2569 + "vatNo": { 2570 + "type": "string", 2571 + "nullable": true 2572 + }, 2573 + "legalEntity": { 2574 + "type": "string", 2575 + "nullable": true 2576 + }, 2577 + "name": { 2578 + "type": "string", 2579 + "nullable": true 2580 + }, 2581 + "emailAddress": { 2582 + "type": "string", 2583 + "nullable": true 2584 + }, 2585 + "protectedIdentity": { 2586 + "type": "boolean" 2587 + }, 2588 + "preferredLanguageCode": { 2589 + "type": "string", 2590 + "nullable": true 2591 + }, 2592 + "legalStatus": { 2593 + "type": "string", 2594 + "nullable": true 2595 + }, 2596 + "msisdn": { 2597 + "type": "string", 2598 + "nullable": true 2599 + }, 2600 + "activeConsents": { 2601 + "type": "array", 2602 + "items": { 2603 + "type": "string" 2604 + }, 2605 + "nullable": true 2606 + }, 2607 + "ediAddressInfo": { 2608 + "$ref": "#/components/schemas/V1.Customers.EDIAddressInfo" 2609 + }, 2610 + "surpluses": { 2611 + "nullable": true 2612 + }, 2613 + "legalAddress": { 2614 + "nullable": true 2615 + }, 2616 + "billingAddress": { 2617 + "nullable": true 2618 + }, 2619 + "consent": { 2620 + "nullable": true 2621 + }, 2622 + "distributionType": { 2623 + "type": "string", 2624 + "nullable": true 2625 + }, 2626 + "operations": { 2627 + "type": "array", 2628 + "items": { 2629 + "$ref": "#/components/schemas/PayEx.LF.Api.Common.RepositoryResources.IOperation" 2630 + }, 2631 + "nullable": true 2632 + }, 2633 + "taxIdentificationNumber": { 2634 + "type": "string", 2635 + "nullable": true 2636 + } 2637 + }, 2638 + "additionalProperties": false 2639 + }, 2640 + "V1.Customers.EDIAddressInfo": { 2641 + "type": "object", 2642 + "properties": { 2643 + "van": { 2644 + "type": "string", 2645 + "nullable": true 2646 + }, 2647 + "interChangeRecipient": { 2648 + "type": "string", 2649 + "nullable": true 2650 + }, 2651 + "buyerId": { 2652 + "type": "string", 2653 + "nullable": true 2654 + } 2655 + }, 2656 + "additionalProperties": false 2657 + }, 2658 + "V1.Customers.NationalIdentifier": { 2659 + "required": [ 2660 + "countryCode", 2661 + "regNo" 2662 + ], 2663 + "type": "object", 2664 + "properties": { 2665 + "regNo": { 2666 + "minLength": 1, 2667 + "type": "string" 2668 + }, 2669 + "countryCode": { 2670 + "minLength": 1, 2671 + "pattern": "^[A-Z]{2}$", 2672 + "type": "string" 2673 + } 2674 + }, 2675 + "additionalProperties": false 2676 + }, 2677 + "V1.Customers.Operations.UpdateKycAnswers.UpdateKycAnswersRequest": { 2678 + "required": [ 2679 + "answers" 2680 + ], 2681 + "type": "object", 2682 + "properties": { 2683 + "answers": { 2684 + "type": "array", 2685 + "items": { 2686 + "$ref": "#/components/schemas/PayEx.AR.Customer.Api.Entity.Answer" 2687 + }, 2688 + "description": "The answers to corresponding questions" 2689 + } 2690 + }, 2691 + "additionalProperties": false 2692 + }, 2693 + "V1.Customers.SingleResources.AddressRequest": { 2694 + "type": "object", 2695 + "properties": { 2696 + "addressee": { 2697 + "type": "string", 2698 + "nullable": true 2699 + }, 2700 + "streetAddress": { 2701 + "type": "string", 2702 + "nullable": true 2703 + }, 2704 + "zipCode": { 2705 + "type": "string", 2706 + "nullable": true 2707 + }, 2708 + "city": { 2709 + "type": "string", 2710 + "nullable": true 2711 + }, 2712 + "coAddress": { 2713 + "type": "string", 2714 + "nullable": true 2715 + }, 2716 + "countryCode": { 2717 + "type": "string", 2718 + "nullable": true 2719 + } 2720 + }, 2721 + "additionalProperties": false 2722 + }, 2723 + "V1.Customers.SingleResources.AddressResource": { 2724 + "type": "object", 2725 + "properties": { 2726 + "@id": { 2727 + "type": "string", 2728 + "nullable": true 2729 + }, 2730 + "addressee": { 2731 + "type": "string", 2732 + "nullable": true 2733 + }, 2734 + "streetAddress": { 2735 + "type": "string", 2736 + "nullable": true 2737 + }, 2738 + "zipCode": { 2739 + "type": "string", 2740 + "nullable": true 2741 + }, 2742 + "city": { 2743 + "type": "string", 2744 + "nullable": true 2745 + }, 2746 + "coAddress": { 2747 + "type": "string", 2748 + "nullable": true 2749 + }, 2750 + "countryCode": { 2751 + "type": "string", 2752 + "nullable": true 2753 + }, 2754 + "operations": { 2755 + "type": "array", 2756 + "items": { 2757 + "$ref": "#/components/schemas/PayEx.LF.Api.Common.RepositoryResources.IOperation" 2758 + }, 2759 + "nullable": true 2760 + } 2761 + }, 2762 + "additionalProperties": false 2763 + }, 2764 + "V1.Customers.SingleResources.Consent.ConsentResource": { 2765 + "type": "object", 2766 + "properties": { 2767 + "@id": { 2768 + "type": "string", 2769 + "nullable": true 2770 + }, 2771 + "recurringCard": { 2772 + "nullable": true 2773 + }, 2774 + "recurringCardRedirectRegistration": { 2775 + "nullable": true 2776 + }, 2777 + "trustedSellerGroups": { 2778 + "nullable": true 2779 + }, 2780 + "availableTrustedSellerGroupConsents": { 2781 + "type": "array", 2782 + "items": { 2783 + "type": "string" 2784 + }, 2785 + "nullable": true 2786 + }, 2787 + "operations": { 2788 + "type": "array", 2789 + "items": { 2790 + "$ref": "#/components/schemas/PayEx.LF.Api.Common.RepositoryResources.IOperation" 2791 + }, 2792 + "nullable": true 2793 + } 2794 + }, 2795 + "additionalProperties": false 2796 + }, 2797 + "V1.Customers.SingleResources.Consent.SingleResources.RecurringCard.RecurringCardResource": { 2798 + "type": "object", 2799 + "properties": { 2800 + "@id": { 2801 + "type": "string", 2802 + "nullable": true 2803 + }, 2804 + "cardToken": { 2805 + "type": "string", 2806 + "nullable": true 2807 + }, 2808 + "consentExpiryDate": { 2809 + "type": "string", 2810 + "nullable": true 2811 + }, 2812 + "instrumentDisplayName": { 2813 + "type": "string", 2814 + "nullable": true 2815 + }, 2816 + "cardExpiryDate": { 2817 + "type": "string", 2818 + "nullable": true 2819 + }, 2820 + "cardBrand": { 2821 + "type": "string", 2822 + "nullable": true 2823 + }, 2824 + "operations": { 2825 + "type": "array", 2826 + "items": { 2827 + "$ref": "#/components/schemas/PayEx.LF.Api.Common.RepositoryResources.IOperation" 2828 + }, 2829 + "nullable": true 2830 + } 2831 + }, 2832 + "additionalProperties": false 2833 + }, 2834 + "V1.Customers.SingleResources.Consent.SingleResources.RecurringCardRedirectRegistration.RecurringCardRedirectRegistrationRequest": { 2835 + "required": [ 2836 + "cancelUrl", 2837 + "completeUrl", 2838 + "language" 2839 + ], 2840 + "type": "object", 2841 + "properties": { 2842 + "completeUrl": { 2843 + "minLength": 1, 2844 + "type": "string", 2845 + "format": "uri" 2846 + }, 2847 + "cancelUrl": { 2848 + "minLength": 1, 2849 + "type": "string", 2850 + "format": "uri" 2851 + }, 2852 + "language": { 2853 + "minLength": 1, 2854 + "type": "string" 2855 + } 2856 + }, 2857 + "additionalProperties": false 2858 + }, 2859 + "V1.Customers.SingleResources.Consent.SingleResources.RecurringCardRedirectRegistration.RecurringCardRedirectRegistrationResource": { 2860 + "type": "object", 2861 + "properties": { 2862 + "@id": { 2863 + "type": "string", 2864 + "nullable": true 2865 + }, 2866 + "redirectUrl": { 2867 + "type": "string", 2868 + "nullable": true 2869 + }, 2870 + "status": { 2871 + "type": "string", 2872 + "nullable": true 2873 + }, 2874 + "operations": { 2875 + "type": "array", 2876 + "items": { 2877 + "$ref": "#/components/schemas/PayEx.LF.Api.Common.RepositoryResources.IOperation" 2878 + }, 2879 + "nullable": true 2880 + } 2881 + }, 2882 + "additionalProperties": false 2883 + }, 2884 + "V1.Customers.SingleResources.Consent.TrustedSellerGroups.ApplicationDocument": { 2885 + "required": [ 2886 + "content", 2887 + "fileType" 2888 + ], 2889 + "type": "object", 2890 + "properties": { 2891 + "content": { 2892 + "minLength": 1, 2893 + "type": "string", 2894 + "description": "A base64 encoded string representing the content of the document." 2895 + }, 2896 + "fileType": { 2897 + "minLength": 1, 2898 + "pattern": "(?i)^(pdf|txt|json|xml)$", 2899 + "type": "string", 2900 + "description": "The file type of the document. Supported file types are: pdf, txt, json and xml. The validation is case insensitive." 2901 + } 2902 + }, 2903 + "additionalProperties": false 2904 + }, 2905 + "V1.Customers.SingleResources.Consent.TrustedSellerGroups.TrustedSellerGroupsPostRequest": { 2906 + "required": [ 2907 + "applicationDocument", 2908 + "consentType" 2909 + ], 2910 + "type": "object", 2911 + "properties": { 2912 + "consentType": { 2913 + "minLength": 1, 2914 + "type": "string", 2915 + "description": "Name of the Consent Type" 2916 + }, 2917 + "applicationDocument": { 2918 + "$ref": "#/components/schemas/V1.Customers.SingleResources.Consent.TrustedSellerGroups.ApplicationDocument" 2919 + } 2920 + }, 2921 + "additionalProperties": false 2922 + }, 2923 + "V1.Customers.SingleResources.Consent.TrustedSellerGroups.TrustedSellerGroupsResource": { 2924 + "type": "object", 2925 + "properties": { 2926 + "@id": { 2927 + "type": "string", 2928 + "nullable": true 2929 + }, 2930 + "consentType": { 2931 + "type": "string", 2932 + "nullable": true 2933 + }, 2934 + "operations": { 2935 + "type": "array", 2936 + "items": { 2937 + "$ref": "#/components/schemas/PayEx.LF.Api.Common.RepositoryResources.IOperation" 2938 + }, 2939 + "nullable": true 2940 + } 2941 + }, 2942 + "additionalProperties": false 2943 + }, 2944 + "V1.Customers.SingleResources.Consent.TrustedSellerGroups.TrustedSellerGroupsResourceListResult": { 2945 + "type": "object", 2946 + "properties": { 2947 + "items": { 2948 + "type": "array", 2949 + "items": { 2950 + "$ref": "#/components/schemas/V1.Customers.SingleResources.Consent.TrustedSellerGroups.TrustedSellerGroupsResource" 2951 + }, 2952 + "nullable": true 2953 + }, 2954 + "navigation": { 2955 + "$ref": "#/components/schemas/PayEx.LF.Api.Common.RepositoryResources.NavigationView" 2956 + } 2957 + }, 2958 + "additionalProperties": false 2959 + }, 2960 + "V1.Customers.Surpluses.ActiveDisbursementOrders.ActiveDisbursementOrdersResource": { 2961 + "type": "object", 2962 + "properties": { 2963 + "@id": { 2964 + "type": "string", 2965 + "nullable": true 2966 + }, 2967 + "activeDisbursementOrdersId": { 2968 + "type": "string", 2969 + "nullable": true 2970 + }, 2971 + "operations": { 2972 + "type": "array", 2973 + "items": { 2974 + "$ref": "#/components/schemas/PayEx.LF.Api.Common.RepositoryResources.IOperation" 2975 + }, 2976 + "nullable": true 2977 + }, 2978 + "norwegianBankAccount": { 2979 + "$ref": "#/components/schemas/V1.Customers.Surpluses.ActiveDisbursementOrders.NorwegianBankAccount" 2980 + }, 2981 + "swedishBankAccount": { 2982 + "$ref": "#/components/schemas/V1.Customers.Surpluses.ActiveDisbursementOrders.SwedishBankAccount" 2983 + }, 2984 + "international": { 2985 + "$ref": "#/components/schemas/V1.Customers.Surpluses.ActiveDisbursementOrders.International" 2986 + }, 2987 + "swedishSus": { 2988 + "$ref": "#/components/schemas/V1.Customers.Surpluses.ActiveDisbursementOrders.SwedishSus" 2989 + } 2990 + }, 2991 + "additionalProperties": false 2992 + }, 2993 + "V1.Customers.Surpluses.ActiveDisbursementOrders.ActiveDisbursementOrdersResourceListResult": { 2994 + "type": "object", 2995 + "properties": { 2996 + "items": { 2997 + "type": "array", 2998 + "items": { 2999 + "$ref": "#/components/schemas/V1.Customers.Surpluses.ActiveDisbursementOrders.ActiveDisbursementOrdersResource" 3000 + }, 3001 + "nullable": true 3002 + }, 3003 + "navigation": { 3004 + "$ref": "#/components/schemas/PayEx.LF.Api.Common.RepositoryResources.NavigationView" 3005 + } 3006 + }, 3007 + "additionalProperties": false 3008 + }, 3009 + "V1.Customers.Surpluses.ActiveDisbursementOrders.Address": { 3010 + "type": "object", 3011 + "properties": { 3012 + "addressee": { 3013 + "type": "string", 3014 + "nullable": true 3015 + }, 3016 + "streetAddress": { 3017 + "type": "string", 3018 + "nullable": true 3019 + }, 3020 + "city": { 3021 + "type": "string", 3022 + "nullable": true 3023 + }, 3024 + "zipCode": { 3025 + "type": "string", 3026 + "nullable": true 3027 + }, 3028 + "countryCode": { 3029 + "type": "string", 3030 + "nullable": true 3031 + }, 3032 + "coAddress": { 3033 + "type": "string", 3034 + "nullable": true 3035 + } 3036 + }, 3037 + "additionalProperties": false 3038 + }, 3039 + "V1.Customers.Surpluses.ActiveDisbursementOrders.International": { 3040 + "required": [ 3041 + "bic", 3042 + "iban" 3043 + ], 3044 + "type": "object", 3045 + "properties": { 3046 + "iban": { 3047 + "maxLength": 34, 3048 + "minLength": 0, 3049 + "type": "string" 3050 + }, 3051 + "bic": { 3052 + "maxLength": 11, 3053 + "minLength": 0, 3054 + "type": "string" 3055 + } 3056 + }, 3057 + "additionalProperties": false 3058 + }, 3059 + "V1.Customers.Surpluses.ActiveDisbursementOrders.NationalIdentifier": { 3060 + "type": "object", 3061 + "properties": { 3062 + "regNo": { 3063 + "type": "string", 3064 + "nullable": true 3065 + }, 3066 + "countryCode": { 3067 + "type": "string", 3068 + "nullable": true 3069 + } 3070 + }, 3071 + "additionalProperties": false 3072 + }, 3073 + "V1.Customers.Surpluses.ActiveDisbursementOrders.NorwegianBankAccount": { 3074 + "required": [ 3075 + "accountNo" 3076 + ], 3077 + "type": "object", 3078 + "properties": { 3079 + "accountNo": { 3080 + "maxLength": 11, 3081 + "minLength": 0, 3082 + "type": "string" 3083 + } 3084 + }, 3085 + "additionalProperties": false 3086 + }, 3087 + "V1.Customers.Surpluses.ActiveDisbursementOrders.SwedishBankAccount": { 3088 + "required": [ 3089 + "accountNo", 3090 + "accountType" 3091 + ], 3092 + "type": "object", 3093 + "properties": { 3094 + "accountNo": { 3095 + "maxLength": 20, 3096 + "minLength": 0, 3097 + "type": "string" 3098 + }, 3099 + "accountType": { 3100 + "maxLength": 4, 3101 + "minLength": 0, 3102 + "type": "string" 3103 + } 3104 + }, 3105 + "additionalProperties": false 3106 + }, 3107 + "V1.Customers.Surpluses.ActiveDisbursementOrders.SwedishSus": { 3108 + "type": "object", 3109 + "properties": { 3110 + "nationalIdentifier": { 3111 + "$ref": "#/components/schemas/V1.Customers.Surpluses.ActiveDisbursementOrders.NationalIdentifier" 3112 + }, 3113 + "address": { 3114 + "$ref": "#/components/schemas/V1.Customers.Surpluses.ActiveDisbursementOrders.Address" 3115 + } 3116 + }, 3117 + "additionalProperties": false 3118 + }, 3119 + "V1.Customers.Surpluses.Operations.AddDisbursementOrderRequest": { 3120 + "type": "object", 3121 + "properties": { 3122 + "@id": { 3123 + "type": "string", 3124 + "nullable": true 3125 + }, 3126 + "activeDisbursementOrdersId": { 3127 + "type": "string", 3128 + "nullable": true 3129 + }, 3130 + "norwegianBankAccount": { 3131 + "$ref": "#/components/schemas/V1.Customers.Surpluses.ActiveDisbursementOrders.NorwegianBankAccount" 3132 + }, 3133 + "swedishBankAccount": { 3134 + "$ref": "#/components/schemas/V1.Customers.Surpluses.ActiveDisbursementOrders.SwedishBankAccount" 3135 + }, 3136 + "international": { 3137 + "$ref": "#/components/schemas/V1.Customers.Surpluses.ActiveDisbursementOrders.International" 3138 + }, 3139 + "swedishSus": { 3140 + "$ref": "#/components/schemas/V1.Customers.Surpluses.ActiveDisbursementOrders.SwedishSus" 3141 + } 3142 + }, 3143 + "additionalProperties": false 3144 + }, 3145 + "V1.Customers.Surpluses.SurplusesResource": { 3146 + "type": "object", 3147 + "properties": { 3148 + "@id": { 3149 + "type": "string", 3150 + "nullable": true 3151 + }, 3152 + "surplusId": { 3153 + "type": "string", 3154 + "nullable": true 3155 + }, 3156 + "balance": { 3157 + "type": "number", 3158 + "format": "double" 3159 + }, 3160 + "currency": { 3161 + "type": "string", 3162 + "nullable": true 3163 + }, 3164 + "date": { 3165 + "type": "string", 3166 + "format": "date-time" 3167 + }, 3168 + "status": { 3169 + "type": "string", 3170 + "nullable": true 3171 + }, 3172 + "invoice": { 3173 + "type": "string", 3174 + "nullable": true 3175 + }, 3176 + "account": { 3177 + "type": "string", 3178 + "nullable": true 3179 + }, 3180 + "activeDisbursementOrders": { 3181 + "nullable": true 3182 + }, 3183 + "operations": { 3184 + "type": "array", 3185 + "items": { 3186 + "$ref": "#/components/schemas/PayEx.LF.Api.Common.RepositoryResources.IOperation" 3187 + }, 3188 + "nullable": true 3189 + } 3190 + }, 3191 + "additionalProperties": false 3192 + }, 3193 + "V1.Customers.Surpluses.SurplusesResourceListResult": { 3194 + "type": "object", 3195 + "properties": { 3196 + "items": { 3197 + "type": "array", 3198 + "items": { 3199 + "$ref": "#/components/schemas/V1.Customers.Surpluses.SurplusesResource" 3200 + }, 3201 + "nullable": true 3202 + }, 3203 + "navigation": { 3204 + "$ref": "#/components/schemas/PayEx.LF.Api.Common.RepositoryResources.NavigationView" 3205 + } 3206 + }, 3207 + "additionalProperties": false 3208 + }, 3209 + "V1.GenerateConsumerCustomerByRegNo.GenerateConsumerResource": { 3210 + "type": "object", 3211 + "properties": { 3212 + "@id": { 3213 + "type": "string", 3214 + "nullable": true 3215 + }, 3216 + "nationalIdentifier": { 3217 + "$ref": "#/components/schemas/V1.Customers.NationalIdentifier" 3218 + }, 3219 + "emailAddress": { 3220 + "type": "string", 3221 + "nullable": true 3222 + }, 3223 + "emailAddressSpecified": { 3224 + "type": "boolean" 3225 + }, 3226 + "msisdn": { 3227 + "type": "string", 3228 + "nullable": true 3229 + }, 3230 + "msisdnSpecified": { 3231 + "type": "boolean" 3232 + }, 3233 + "customerNo": { 3234 + "type": "string", 3235 + "nullable": true 3236 + }, 3237 + "customerNoSpecified": { 3238 + "type": "boolean" 3239 + }, 3240 + "taxIdentificationNumber": { 3241 + "type": "string", 3242 + "nullable": true 3243 + }, 3244 + "taxIdentificationNumberSpecified": { 3245 + "type": "boolean" 3246 + } 3247 + }, 3248 + "additionalProperties": false 3249 + }, 3250 + "V1.GenerateConsumerCustomerByRegNo.GenerateConsumerResult": { 3251 + "type": "object", 3252 + "properties": { 3253 + "@id": { 3254 + "type": "string", 3255 + "nullable": true 3256 + }, 3257 + "customerNo": { 3258 + "type": "string", 3259 + "nullable": true 3260 + } 3261 + }, 3262 + "additionalProperties": false 3263 + }, 3264 + "V1.RootResource.SingleResources.KycQuestions.KycQuestionsResource": { 3265 + "type": "object", 3266 + "properties": { 3267 + "@id": { 3268 + "type": "string", 3269 + "nullable": true 3270 + }, 3271 + "kycQuestions": { 3272 + "type": "array", 3273 + "items": { 3274 + "$ref": "#/components/schemas/PayEx.AR.Customer.Api.Entity.Question" 3275 + }, 3276 + "description": "kyc (know your customer). The questions and answers in the example are just examples of what it might look like. ", 3277 + "nullable": true 3278 + }, 3279 + "operations": { 3280 + "type": "array", 3281 + "items": { 3282 + "$ref": "#/components/schemas/PayEx.LF.Api.Common.RepositoryResources.IOperation" 3283 + }, 3284 + "nullable": true 3285 + } 3286 + }, 3287 + "additionalProperties": false 3288 + } 3289 + } 3290 + } 3291 +}
- customerapi-2025-02.PNG
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.djr - Size
-
... ... @@ -1,0 +1,1 @@ 1 +0 bytes - Content