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