Changes for page 2. Customer

Last modified by Jenny Eklund on 2026/08/19 11:28
From empty
To version 245.1
edited by thomas hedstrom
on 2026/07/08 15:00
Change comment: There is no comment for this version

Summary

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