Changes for page account-onboarding

Last modified by Pablo Vivar-Gonzalez on 2026/06/03 15:40
From empty
To version 87.1
edited by Pablo Vivar-Gonzalez
on 2026/06/03 15:37
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,0 +1,1 @@
1 +account-onboarding
Parent
... ... @@ -1,0 +1,1 @@
1 +Main.WebHome
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.XWikiGuest
1 +xwiki:XWiki.PabloVivarGonzalez
Default language
... ... @@ -1,0 +1,1 @@
1 +en
Tags
... ... @@ -1,0 +1,1 @@
1 +px-custom-page-content
Content
... ... @@ -1,0 +1,2121 @@
1 +== 1. Offers ==
2 +
3 +
4 +List all offers
5 +
6 +==== 1.1 Get list of Offers ====
7 +
8 +{{code language="http" title="**Request**"}}
9 +GET /ledger/account-onboarding/v1/{ownerNo}/offers HTTP/1.1
10 +Host: -
11 +Authorization: Bearer<Token>
12 +Content-Type: application/json
13 +
14 +{{/code}}
15 +
16 +Example of response on successfully retrieved offers
17 +
18 +{{code language="http" title="**Response**"}}
19 +HTTP/1.1 200 OK
20 +Content-Type: application/json
21 +
22 +{
23 + "items": [
24 + {
25 + "accountProfile": "kontotyp-1",
26 + "title": "kontotyp 1",
27 + "currency": "SEK",
28 + "maxCreditLimit": 50000.00,
29 + "reminderFee": 35.00,
30 + "penaltyInterestRate": 18.00,
31 + "termsAndConditions": {
32 + "standardEuropeanAgreements": "https://www.payex.com/term-and-conditions/no/-----.pdf",
33 + "accountTerms": "https://www.payex.com/term-and-conditions/no/-----.pdf"
34 + },
35 + "operations": []
36 + },
37 + {
38 + "accountProfile": "kontotyp-2",
39 + "title": "kontotyp 2",
40 + "currency": "SEK",
41 + "maxCreditLimit": 50000.00,
42 + "reminderFee": 35.00,
43 + "penaltyInterestRate": 20.00,
44 + "termsAndConditions": {
45 + "standardEuropeanAgreements": "https://www.payex.com/term-and-conditions/no/-----.pdf",
46 + "accountTerms": "https://www.payex.com/term-and-conditions/no/-----.pdf"
47 + },
48 + "operations": []
49 + }
50 + ],
51 + "navigation": {
52 + "@id": "/ledger/account-onboarding/v1/xxx/offers"
53 + }
54 +}
55 +{{/code}}
56 +
57 +
58 +
59 +**Possible problems**
60 +
61 +(% class="table-bordered table-striped" %)
62 +|=Http status |=Problem type |=Description
63 +|404 |validation |occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
64 +|404 |resource-unavailable |Occurs if the requested profile is not available.
65 +|409 |validation |Occurs if the validation of the resource's state fails.
66 +|500 |fatal |Unexpected error, logs may give details about the problem
67 +
68 +
69 +View a specific offer
70 +
71 +==== 1.2 Get specific Offer ====
72 +
73 +{{code language="http" title="**Request**"}}
74 +GET /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile} HTTP/1.1
75 +Host: -
76 +Authorization: Bearer<Token>
77 +Content-Type: application/json
78 +
79 +{{/code}}
80 +
81 +Example of response on successfully retrieved offer
82 +
83 +{{code language="http" title="**Response**"}}
84 +HTTP/1.1 200 OK
85 +Content-Type: application/json
86 +
87 +{
88 + "accountProfile": "kontotyp-1",
89 + "title": "kontotyp 1",
90 + "currency": "SEK",
91 + "maxCreditLimit": 50000.00,
92 + "reminderFee": 35.00,
93 + "penaltyInterestRate": 18.00,
94 + "termsAndConditions": {
95 + "standardEuropeanAgreements": "https://www.payex.com/term-and-conditions/no/-----.pdf",
96 + "accountTerms": "https://www.payex.com/term-and-conditions/no/-----.pdf"
97 + },
98 + "operations": []
99 +}
100 +{{/code}}
101 +
102 +
103 +
104 +**Possible problems**
105 +
106 +(% class="table-bordered table-striped" %)
107 +|=Http status |=Problem type |=Description
108 +|404 |validation |occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
109 +|404 |resource-unavailable |Occurs if the requested profile is not available.
110 +|409 |validation |Occurs if the validation of the resource's state fails.
111 +|500 |fatal |Unexpected error, logs may give details about the problem
112 +
113 +
114 +
115 +**Response object specification**
116 +
117 +(% class="table-bordered table-striped" %)
118 +|=Property |=Data type|=Format|=Description
119 +|@id |string | |Uri identifier of the current resource
120 +|accountProfile |string | |
121 +|title |string | |Name of the offer
122 +|currency |string |(((
123 +* SEK
124 +* NOK
125 +* DKK
126 +* EUR
127 +))) |
128 +|maxCreditLimit |number |Type: double
129 +Max: 100000000
130 +Min: 0 |Max credit limit for account profile, can't have more than 2 decimal places
131 +|reminderFee |number |Type: double
132 +Max: 100000000
133 +Min: 0 |Reminder fee
134 +|penaltyInterestRate |number |Type: double
135 +Max: 100000000
136 +Min: 0 |Penalty interest rate
137 +|=termsAndConditions |object | |
138 +| standardEuropeanAgreements |string | |Standard european agreements
139 +| accountTerms |string | |Account terms
140 +|applications |dynamic | |
141 +|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]]
142 +== 2. Applications ==
143 +
144 +
145 +Get existing application
146 +
147 +==== 2.1 Get specific Application ====
148 +
149 +{{code language="http" title="**Request**"}}
150 +GET /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId} HTTP/1.1
151 +Host: -
152 +Authorization: Bearer<Token>
153 +Content-Type: application/json
154 +
155 +{{/code}}
156 +
157 +Example of response on successfully retrieved application
158 +
159 +{{code language="http" title="**Response**"}}
160 +HTTP/1.1 200 OK
161 +Content-Type: application/json
162 +
163 +{
164 + "applicationId": "123e4567-e89b-12d3-a456-426614174000",
165 + "status": "AwaitingSign",
166 + "createdAccount": {
167 + "accountNo": "1234567"
168 + },
169 + "creditLimit": 5000.00,
170 + "nationalConsumerIdentifier": {
171 + "value": "19101010-1010",
172 + "countryCode": "SE"
173 + },
174 + "customerNo": "951753456",
175 + "emailAddress": "test@testshop.se",
176 + "msisdn": "46701234456",
177 + "ipAddress": "1.1.1.X",
178 + "languageCode": "Sv",
179 + "specialIntent": "new-account-for-invoice-conversion",
180 + "applicationOptions": {
181 + "customerPreAuthenticated": false,
182 + "preAuthorizationAmount": 5000.00
183 + },
184 + "sellerNo": "123456",
185 + "pointOfSale": "Example Point of Sale",
186 + "kycQuestions": [
187 + {
188 + "questionText": "What is your current employment?",
189 + "answer": {
190 + "type": "single",
191 + "required": true,
192 + "possibleAnswers": [
193 + {
194 + "answerCode": "selfemployed",
195 + "answerText": "Own business"
196 + },
197 + {
198 + "answerCode": "private_employee",
199 + "answerText": "Private employee"
200 + },
201 + {
202 + "answerCode": "goverment_employee",
203 + "answerText": "Government employee"
204 + }
205 + ]
206 + },
207 + "questionCode": "employment"
208 + },
209 + {
210 + "questionText": "What is your yearly income",
211 + "answer": {
212 + "type": "single",
213 + "required": true,
214 + "possibleAnswers": [
215 + {
216 + "answerCode": "incomeinterval1",
217 + "answerText": "0-100 000 SEK"
218 + },
219 + {
220 + "answerCode": "incomeinterval2",
221 + "answerText": "100 001-200 000 SEK"
222 + },
223 + {
224 + "answerCode": "incomeinterval3",
225 + "answerText": "200 001-300 000 SEK"
226 + },
227 + {
228 + "answerCode": "incomeinterval4",
229 + "answerText": "Over 300 001 SEK"
230 + }
231 + ]
232 + },
233 + "questionCode": "income"
234 + }
235 + ],
236 + "operations": []
237 +}
238 +{{/code}}
239 +
240 +
241 +
242 +**Possible problems**
243 +
244 +(% class="table-bordered table-striped" %)
245 +|=Http status |=Problem type |=Description
246 +|404 |not-found |Occurs if the requested application isn't found.
247 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache.
248 +|500 |fatal |Unexpected error, logs may give details about the problem
249 +
250 +
251 +==== 2.2 Create Application ====
252 +
253 +Add application to offer
254 +
255 +{{code language="http" title="**Request**"}}
256 +POST /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications HTTP/1.1
257 +Host: -
258 +Authorization: Bearer<Token>
259 +Content-Type: application/json
260 +
261 +{
262 + "creditLimit": 5000.00,
263 + "nationalConsumerIdentifier": {
264 + "value": "19101010-1010",
265 + "countryCode": "SE"
266 + },
267 + "customerNo": "951753456",
268 + "emailAddress": "test@testshop.se",
269 + "msisdn": "46701234456",
270 + "ipAddress": "1.1.1.X",
271 + "languageCode": "Sv",
272 + "specialIntent": "new-account-for-invoice-conversion",
273 + "applicationOptions": {
274 + "customerPreAuthenticated": false,
275 + "preAuthorizationAmount": 5000.00
276 + },
277 + "sellerNo": "123456",
278 + "pointOfSale": "Example Point of Sale"
279 +}
280 +{{/code}}
281 +
282 +
283 +**Request object specification**
284 +
285 +(% class="table-bordered table-striped" %)
286 +|=Property |=Data type|=Format|=Required|=Description
287 +|creditLimit |number |Type: double
288 +Pattern: ^\d+.?(\d{1,2})?$
289 +Max: 100000000
290 +Min: 0 |Yes |Credit limit on account applied for, can't have more than 2 decimal places
291 +|=nationalConsumerIdentifier |object | |Yes |
292 +| value |string | |Yes |
293 +| countryCode |string |Pattern: SE~|NO~|DK~|FI |Yes |
294 +|customerNo |string | |No |The identifier of the customer
295 +|emailAddress |string |Pattern: ^~[^;\xA0\xD0\─@<>\p{Cc}]+@(?!\.)(?!.*\.\.)(?:~[^;\xA0\xD0\─@<>\p{Cc}]+\.~[^;\xA0\xD0\─@<>\p{Cc}]+~|\~[~[A-Fa-f\d\:]+\])(?<!\.)$ |No |The customers Email
296 +|msisdn |string |Pattern: ^~[+]{1}\d{4,14}$ |No |Mobile communications number starting with '+' followed with up to 14 numbers from 0-9. Length between 5 and 15 including the starting '+'
297 +|ipAddress |string |Pattern: ~[a-z0-9.:/]* |No |Senders ip address
298 +|languageCode |string |(((
299 +* Sv
300 +* En
301 +* No
302 +* Da
303 +))) |Yes |
304 +|specialIntent |string | |No |Optional instruction used in special cases. Possible values: new-account-for-invoice-conversion, standalone-account-onboarding, standalone-account-onboarding-manual
305 +|=applicationOptions |object | |No |
306 +| customerPreAuthenticated |boolean | |Yes |Optional flag used when the customer is pre-authenticated. Defaults to false
307 +| preAuthorizationAmount |number |Type: double |No |Optional field to support including information about the expected authorization amount in junction with the onboarding. The inclusion of this value may differ based fom company configurations.
308 +|sellerNo |string | |No |Only necessary if the account profile is configured to create an account alias using an alias template that requires sellerNo
309 +|pointOfSale |string |Pattern: ^~[\u0020-\u003A \u003C-\u007E \u00A0-\u00FF \u2019]*$ |No |Only necessary if the account profile is configured to create an account alias using an alias template that requires pointOfSale
310 +
311 +
312 +Example of response on successfully created application
313 +
314 +{{code language="http" title="**Response**"}}
315 +HTTP/1.1 201 Created
316 +Content-Type: application/json
317 +
318 +{
319 + "applicationId": "123e4567-e89b-12d3-a456-426614174000",
320 + "status": "AwaitingSign",
321 + "creditLimit": 5000.00,
322 + "nationalConsumerIdentifier": {
323 + "value": "19101010-1010",
324 + "countryCode": "SE"
325 + },
326 + "customerNo": "951753456",
327 + "emailAddress": "test@testshop.se",
328 + "msisdn": "46701234456",
329 + "ipAddress": "1.1.1.X",
330 + "languageCode": "Sv",
331 + "specialIntent": "new-account-for-invoice-conversion",
332 + "applicationOptions": {
333 + "customerPreAuthenticated": false,
334 + "preAuthorizationAmount": 5000.00
335 + },
336 + "sellerNo": "123456",
337 + "pointOfSale": "Example Point of Sale",
338 + "kycQuestions": [
339 + {
340 + "questionText": "What is your current employment?",
341 + "answer": {
342 + "type": "single",
343 + "required": true,
344 + "possibleAnswers": [
345 + {
346 + "answerCode": "selfemployed",
347 + "answerText": "Own business"
348 + },
349 + {
350 + "answerCode": "private_employee",
351 + "answerText": "Private employee"
352 + },
353 + {
354 + "answerCode": "goverment_employee",
355 + "answerText": "Government employee"
356 + }
357 + ]
358 + },
359 + "questionCode": "employment"
360 + },
361 + {
362 + "questionText": "What is your yearly income",
363 + "answer": {
364 + "type": "single",
365 + "required": true,
366 + "possibleAnswers": [
367 + {
368 + "answerCode": "incomeinterval1",
369 + "answerText": "0-100 000 SEK"
370 + },
371 + {
372 + "answerCode": "incomeinterval2",
373 + "answerText": "100 001-200 000 SEK"
374 + },
375 + {
376 + "answerCode": "incomeinterval3",
377 + "answerText": "200 001-300 000 SEK"
378 + },
379 + {
380 + "answerCode": "incomeinterval4",
381 + "answerText": "Over 300 001 SEK"
382 + }
383 + ]
384 + },
385 + "questionCode": "income"
386 + }
387 + ],
388 + "operations": []
389 +}
390 +{{/code}}
391 +
392 +
393 +**Possible problems**
394 +
395 +(% class="table-bordered table-striped" %)
396 +|=Http status |=Problem type |=Description
397 +|400 |validation |Occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
398 +|404 |not-found |Occurs if the requested application isn't found.
399 +|409 |customer-mismatch |Occurs if the customer NationalIdentifier value doesn't match with the provided CustomerNo value.
400 +|409 |customer-missing |Occurs if the customer with the provided customerNo isn't found and the company doesn't support creating a customer on requested CustomerNo.
401 +|409 |account-profile-exists |Occurs if an account with the provided accountProfile already exists.
402 +|409 |account-already-exists-for-standalone-intent |Occurs if an active account for the requested account profile already exists for the customer when using a standalone account onboarding intent.
403 +|409 |not-valid-for-intent |Occurs if the account profile is not valid for the provided SpecialIntent.
404 +|422 |invalid-special-intent |Occurs if the provided special intent is invalid.
405 +|500 |fatal |Unexpected error, logs may give details about the problem
406 +
407 +
408 +
409 +**Response object specification**
410 +
411 +(% class="table-bordered table-striped" %)
412 +|=Property |=Data type|=Format|=Description
413 +|@id |string | |Uri identifier of the current resource
414 +|creditLimit |number |Type: double
415 +Pattern: ^\d+.?(\d{1,2})?$
416 +Max: 100000000
417 +Min: 0 |Credit limit on account applied for, can't have more than 2 decimal places
418 +|=nationalConsumerIdentifier |object | |
419 +| value |string | |
420 +| countryCode |string |Pattern: SE~|NO~|DK~|FI |
421 +|customerNo |string | |The identifier of the customer
422 +|emailAddress |string |Pattern: ^~[^;\xA0\xD0\─@<>\p{Cc}]+@(?!\.)(?!.*\.\.)(?:~[^;\xA0\xD0\─@<>\p{Cc}]+\.~[^;\xA0\xD0\─@<>\p{Cc}]+~|\~[~[A-Fa-f\d\:]+\])(?<!\.)$ |The customers Email
423 +|msisdn |string |Pattern: ^~[+]{1}\d{4,14}$ |Mobile communications number starting with '+' followed with up to 14 numbers from 0-9. Length between 5 and 15 including the starting '+'
424 +|ipAddress |string |Pattern: ~[a-z0-9.:/]* |Senders ip address
425 +|languageCode |string |(((
426 +* Sv
427 +* En
428 +* No
429 +* Da
430 +))) |
431 +|specialIntent |string | |Optional instruction used in special cases. Possible values: new-account-for-invoice-conversion, standalone-account-onboarding, standalone-account-onboarding-manual
432 +|=applicationOptions |object | |
433 +| customerPreAuthenticated |boolean | |Optional flag used when the customer is pre-authenticated. Defaults to false
434 +| preAuthorizationAmount |number |Type: double |Optional field to support including information about the expected authorization amount in junction with the onboarding. The inclusion of this value may differ based fom company configurations.
435 +|sellerNo |string | |Only necessary if the account profile is configured to create an account alias using an alias template that requires sellerNo
436 +|pointOfSale |string |Pattern: ^~[\u0020-\u003A \u003C-\u007E \u00A0-\u00FF \u2019]*$ |Only necessary if the account profile is configured to create an account alias using an alias template that requires pointOfSale
437 +|applicationId |string | |ApplicationId
438 +|status |string |(((
439 +* AwaitingComplementaryInfo
440 +* AwaitingVerification
441 +* AwaitingSign
442 +* Rejected
443 +* InitializedDigitalSign
444 +* SignRejectedOrFailed
445 +* SignMismatch
446 +* Approved
447 +* InitializedKalp
448 +))) |
449 +|=createdAccount |object | |
450 +| accountNo |string | |Account number
451 +|=kycQuestions |array | |
452 +| questionCode |string | |The code definition of the question
453 +| questionText |string | |The translated text of the question
454 +|= answer |object | |
455 +| type |string | |The type of the expected answer: single ~| multi ~| text
456 +| required |boolean | |If the answer is required
457 +| textValidationRegEx |string | |The regex the answer should match
458 +|= possibleAnswers |array | |
459 +| answerCode |string | |The code definition of the answer
460 +| answerText |string | |The translated text of the answer
461 +|= subQuestions |array | |
462 +|kycAnswers |dynamic | |The kyc resource
463 +|signBankidSe |dynamic | |The sign bankid se resource
464 +|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]]
465 +== 3. Kyc-answers ==
466 +
467 +
468 +Get the submited answers to kyc questions
469 +
470 +==== 3.1 Get list of Kyc-answers ====
471 +
472 +{{code language="http" title="**Request**"}}
473 +GET /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/kyc-answers HTTP/1.1
474 +Host: -
475 +Authorization: Bearer<Token>
476 +Content-Type: application/json
477 +
478 +{{/code}}
479 +
480 +Example of response on successfully retrieved kyc answers
481 +
482 +{{code language="http" title="**Response**"}}
483 +HTTP/1.1 200 OK
484 +Content-Type: application/json
485 +
486 +{
487 + "answers": [
488 + {
489 + "questionCode": "employment",
490 + "answerCode": "selfemployed"
491 + },
492 + {
493 + "questionCode": "monthlyincome",
494 + "answerCode": "monthlyincomeinterval2"
495 + },
496 + {
497 + "questionCode": "ispep",
498 + "answerCode": "false"
499 + }
500 + ]
501 +}
502 +{{/code}}
503 +
504 +
505 +
506 +**Possible problems**
507 +
508 +(% class="table-bordered table-striped" %)
509 +|=Http status |=Problem type |=Description
510 +|404 |not-found |Occurs if the requested resource isn't found.
511 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache.
512 +|409 |kyc-not-configured |Occurs if the application does not support KYC answers due to the account profile not being configured with any.
513 +|500 |fatal |Unexpected error, logs may give details about the problem
514 +
515 +
516 +==== 3.2 Create Kyc-answer ====
517 +
518 +Submit answers to kyc questions
519 +
520 +{{code language="http" title="**Request**"}}
521 +POST /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/kyc-answers HTTP/1.1
522 +Host: -
523 +Authorization: Bearer<Token>
524 +Content-Type: application/json
525 +
526 +{
527 + "answers": [
528 + {
529 + "questionCode": "employment",
530 + "answerCode": "selfemployed"
531 + },
532 + {
533 + "questionCode": "monthlyincome",
534 + "answerCode": "monthlyincomeinterval2"
535 + },
536 + {
537 + "questionCode": "ispep",
538 + "answerCode": "false"
539 + }
540 + ]
541 +}
542 +{{/code}}
543 +
544 +
545 +**Request object specification**
546 +
547 +(% class="table-bordered table-striped" %)
548 +|=Property |=Data type|=Format|=Required|=Description
549 +|=answers |array | |Yes |
550 +| questionCode |string | |Yes |The code definition of the question
551 +| answerCode |string | |Yes |The code definition of the answer
552 +
553 +
554 +Example of response on successfully created kyc answers
555 +
556 +{{code language="http" title="**Response**"}}
557 +HTTP/1.1 201 Created
558 +Content-Type: application/json
559 +
560 +{
561 + "answers": [
562 + {
563 + "questionCode": "employment",
564 + "answerCode": "selfemployed"
565 + },
566 + {
567 + "questionCode": "monthlyincome",
568 + "answerCode": "monthlyincomeinterval2"
569 + },
570 + {
571 + "questionCode": "ispep",
572 + "answerCode": "false"
573 + }
574 + ]
575 +}
576 +{{/code}}
577 +
578 +
579 +**Possible problems**
580 +
581 +(% class="table-bordered table-striped" %)
582 +|=Http status |=Problem type |=Description
583 +|400 |validation |Occurs if the validation of the request fails, it is described in the problem why the input is invalid.
584 +|404 |not-found |Occurs if the requested resource isn't found.
585 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache.
586 +|409 |validation |Occurs if the validation of the resource's state fails.
587 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made.
588 +|409 |kyc-not-configured |Occurs if the application does not support KYC answers due to the account profile not being configured with any.
589 +|500 |fatal |Unexpected error, logs may give details about the problem
590 +
591 +
592 +
593 +**Response object specification**
594 +
595 +(% class="table-bordered table-striped" %)
596 +|=Property |=Data type|=Format|=Description
597 +|@id |string | |Uri identifier of the current resource
598 +|=answers |array | |
599 +| questionCode |string | |The code definition of the question
600 +| answerCode |string | |The code definition of the answer
601 +== 4. Verify-application ==
602 +
603 +
604 +==== 4.1 Create Verify-application ====
605 +
606 +Verify the application and does a credit check if needed
607 +
608 +{{code language="http" title="**Request**"}}
609 +POST /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/verify-application HTTP/1.1
610 +Host: -
611 +Authorization: Bearer<Token>
612 +Content-Type: application/json
613 +
614 +{}
615 +{{/code}}
616 +
617 +
618 +
619 +{{code language="http" title="**Response**"}}
620 +HTTP/1.1 201 CREATED
621 +Content-Type: application/json
622 +
623 +{
624 +}
625 +{{/code}}
626 +
627 +
628 +**Possible problems**
629 +
630 +(% class="table-bordered table-striped" %)
631 +|=Http status |=Problem type |=Description
632 +|404 |not-found |Occurs if the requested application isn't found.
633 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache.
634 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made.
635 +|422 |credit-check-declined |Occurs if the credit check is denied.
636 +|500 |fatal |Unexpected error, logs may give details about the problem
637 +
638 +
639 +== 5. Approve-paper-application ==
640 +
641 +
642 +==== 5.1 Create Approve-paper-application ====
643 +
644 +Approves a paper onboarding application by performing a credit check, creating the customer and account, and archiving the scanned application document. Used exclusively for the standalone-account-onboarding-manual intent via Effecte.
645 +
646 +{{code language="http" title="**Request**"}}
647 +POST /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/approve-paper-application HTTP/1.1
648 +Host: -
649 +Authorization: Bearer<Token>
650 +Content-Type: application/json
651 +
652 +{
653 + "applicationDocument": {
654 + "content": "JVBERi0xLjQKJ...",
655 + "fileType": "pdf"
656 + },
657 + "trusteeCertificateIncluded": false
658 +}
659 +{{/code}}
660 +
661 +
662 +**Request object specification**
663 +
664 +(% class="table-bordered table-striped" %)
665 +|=Property |=Data type|=Format|=Required|=Description
666 +|=applicationDocument |object | |Yes |
667 +| content |string | |Yes |Base64-encoded content of the application document.
668 +| fileType |string |Pattern: ^pdf$ |Yes |File type of the document. Currently only 'pdf' is supported.
669 +|trusteeCertificateIncluded |boolean | |Yes |Whether a trustee certificate is included in the application. Sent to credit check as applicantParameters.trusteeCertificateIncluded. Defaults to false.
670 +
671 +
672 +Example of response on successfully approved paper application
673 +
674 +{{code language="http" title="**Response**"}}
675 +HTTP/1.1 200 OK
676 +Content-Type: application/json
677 +
678 +{
679 + "accountNo": "1234567",
680 + "customerNo": "951753456"
681 +}
682 +{{/code}}
683 +
684 +
685 +**Possible problems**
686 +
687 +(% class="table-bordered table-striped" %)
688 +|=Http status |=Problem type |=Description
689 +|400 |validation |Occurs if any of the input validation fails.
690 +|409 |not-valid-for-intent |Occurs if the application was not created with the standalone-account-onboarding-manual intent.
691 +|409 |invalid-application-state |Occurs if the application is not in AwaitingSign state.
692 +|422 |credit-check-declined |Occurs if the credit check was denied. Application status is set to Rejected.
693 +|404 |not-found |Occurs if the requested application isn't found.
694 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache.
695 +|500 |fatal |Unexpected error, logs may give details about the problem
696 +
697 +
698 +
699 +**Response object specification**
700 +
701 +(% class="table-bordered table-striped" %)
702 +|=Property |=Data type|=Format|=Description
703 +|accountNo |string | |The account number of the created account.
704 +|customerNo |string | |The customer number used for this account.
705 +== 6. Sign-bankid-se ==
706 +
707 +
708 +Retrieve bankid signing process data
709 +
710 +==== 6.1 Get list of Sign-bankid-se ====
711 +
712 +{{code language="http" title="**Request**"}}
713 +GET /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/sign-bankid-se HTTP/1.1
714 +Host: -
715 +Authorization: Bearer<Token>
716 +Content-Type: application/json
717 +
718 +{{/code}}
719 +
720 +Example of response on successfully retrieved sign bankid se. This should be polled. The resource is updated in the signing process running in the background.
721 +
722 +{{code language="http" title="**Response**"}}
723 +HTTP/1.1 200 OK
724 +Content-Type: application/json
725 +
726 +{
727 + "autostartToken": "7c40b5c9-fa74-49cf-b98c-bfe651f9a7c6",
728 + "qrCodeImageDataUrl": "data:image/png;base64,VeryLongBase64String",
729 + "status": "Pending",
730 + "hintCode": "OutstandingTransaction",
731 + "maxExtends": 0,
732 + "currentExtend": 0,
733 + "secondsLeftThirtySecondsInterval": 0,
734 + "endUserIp": "194.168.2.25",
735 + "callbackUrl": "https://myCallbackUrl",
736 + "operations": []
737 +}
738 +{{/code}}
739 +
740 +
741 +
742 +**Possible problems**
743 +
744 +(% class="table-bordered table-striped" %)
745 +|=Http status |=Problem type |=Description
746 +|404 |not-found |Occurs if the requested resource isn't found.
747 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache.
748 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made.
749 +|500 |fatal |Unexpected error, logs may give details about the problem
750 +
751 +
752 +==== 6.2 Create Sign-bankid-se ====
753 +
754 +Initiate bankid signing process
755 +
756 +{{code language="http" title="**Request**"}}
757 +POST /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/sign-bankid-se HTTP/1.1
758 +Host: -
759 +Authorization: Bearer<Token>
760 +Content-Type: application/json
761 +
762 +{
763 + "endUserIp": "194.168.2.25",
764 + "callbackUrl": "https://myCallbackUrl"
765 +}
766 +{{/code}}
767 +
768 +
769 +**Request object specification**
770 +
771 +(% class="table-bordered table-striped" %)
772 +|=Property |=Data type|=Format|=Required|=Description
773 +|endUserIp |string | |Yes |IP address of the end user.
774 +|callbackUrl |string | |No |If callback should be done on status change, it is done to the callback url. If empty no callback is done.
775 +
776 +
777 +Example of response on successfully created sign bankid se. The signing process is carried out in a background process even after the response is returned.
778 +
779 +{{code language="http" title="**Response**"}}
780 +HTTP/1.1 201 Created
781 +Content-Type: application/json
782 +
783 +{
784 + "autostartToken": "7c40b5c9-fa74-49cf-b98c-bfe651f9a7c6",
785 + "qrCodeImageDataUrl": "data:image/png;base64,VeryLongBase64String",
786 + "status": "Pending",
787 + "hintCode": "OutstandingTransaction",
788 + "maxExtends": 0,
789 + "currentExtend": 0,
790 + "secondsLeftThirtySecondsInterval": 0,
791 + "endUserIp": "194.168.2.25",
792 + "callbackUrl": "https://myCallbackUrl",
793 + "operations": []
794 +}
795 +{{/code}}
796 +
797 +
798 +**Possible problems**
799 +
800 +(% class="table-bordered table-striped" %)
801 +|=Http status |=Problem type |=Description
802 +|400 |validation |occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
803 +|404 |not-found |Occurs if the requested application isn't found.
804 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache.
805 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made.
806 +|409 |company-not-configured |Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable.
807 +|500 |fatal |Unexpected error, logs may give details about the problem
808 +
809 +
810 +
811 +**Response object specification**
812 +
813 +(% class="table-bordered table-striped" %)
814 +|=Property |=Data type|=Format|=Description
815 +|@id |string | |Uri identifier of the current resource
816 +|endUserIp |string | |IP address of the end user.
817 +|callbackUrl |string | |If callback should be done on status change, it is done to the callback url. If empty no callback is done.
818 +|autostartToken |string |Type: uuid |Autostart token to start BankId on the device client's current device.
819 +|qrCodeImageDataUrl |string | |QR code in Base64 that the end user needs to scan on another device than the one used to initiate.
820 +|status |string |(((
821 +* Pending
822 +* Complete
823 +* Failed
824 +))) |
825 +|hintCode |string |(((
826 +* OutstandingTransaction
827 +* NoClient
828 +* Started
829 +* UserMrtd
830 +* UserCallConfirm
831 +* UserSign
832 +* ExpiredTransaction
833 +* CertificateErr
834 +* UserCancel
835 +* Cancelled
836 +* StartFailed
837 +* UserDeclinedCall
838 +))) |
839 +|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]]
840 +|maxExtends |number |Type: int32 |Maximum Extend operation calls that are allowed.
841 +|currentExtend |number |Type: int32 |The amount of extend operations that have been made on this resource.
842 +|secondsLeftThirtySecondsInterval |number |Type: int32 |Time left in seconds for end user to complete signing. Only updated every 30 seconds.
843 +== 7. Cancel ==
844 +
845 +
846 +==== 7.1 Create Cancel ====
847 +
848 +Cancel bankid signing process
849 +
850 +{{code language="http" title="**Request**"}}
851 +POST /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/sign-bankid-se/cancel HTTP/1.1
852 +Host: -
853 +Authorization: Bearer<Token>
854 +Content-Type: application/json
855 +
856 +{}
857 +{{/code}}
858 +
859 +
860 +
861 +{{code language="http" title="**Response**"}}
862 +HTTP/1.1 201 CREATED
863 +Content-Type: application/json
864 +
865 +{
866 +}
867 +{{/code}}
868 +
869 +
870 +**Possible problems**
871 +
872 +(% class="table-bordered table-striped" %)
873 +|=Http status |=Problem type |=Description
874 +|404 |not-found |Occurs if the requested application isn't found.
875 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache.
876 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made.
877 +|409 |invalid-bank-id-state |Occurs if the bankId state is invalid for the request to be made.
878 +|500 |fatal |Unexpected error, logs may give details about the problem
879 +
880 +
881 +== 8. Extend ==
882 +
883 +
884 +==== 8.1 Create Extend ====
885 +
886 +Extend the time period for an ongoing bankid signing process
887 +
888 +{{code language="http" title="**Request**"}}
889 +POST /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/sign-bankid-se/extend HTTP/1.1
890 +Host: -
891 +Authorization: Bearer<Token>
892 +Content-Type: application/json
893 +
894 +{
895 +}
896 +{{/code}}
897 +
898 +
899 +
900 +Example of a response where Extend has been called once before (currentExtend 1), and some time has elapsed (90 seconds left).
901 +
902 +{{code language="http" title="**Response**"}}
903 +HTTP/1.1 200 OK
904 +Content-Type: application/json
905 +
906 +{
907 + "maxExtends": 10,
908 + "currentExtend": 1,
909 + "secondsLeftThirtySecondsInterval": 90
910 +}
911 +{{/code}}
912 +
913 +
914 +**Possible problems**
915 +
916 +(% class="table-bordered table-striped" %)
917 +|=Http status |=Problem type |=Description
918 +|404 |not-found |Occurs if the requested application isn't found.
919 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache.
920 +|409 |conflict |Occurs if the application state is invalid, see message for details.
921 +|500 |fatal |Unexpected error, logs may give details about the problem.
922 +
923 +
924 +
925 +**Response object specification**
926 +
927 +(% class="table-bordered table-striped" %)
928 +|=Property |=Data type|=Format|=Description
929 +|maxExtends |number |Type: int32 |
930 +|currentExtend |number |Type: int32 |
931 +|secondsLeftThirtySecondsInterval |number |Type: int32 |
932 +== 9. Limit-upgrade-applications ==
933 +
934 +
935 +Get existing limit upgrade application
936 +
937 +==== 9.1 Get specific Limit-upgrade-application ====
938 +
939 +{{code language="http" title="**Request**"}}
940 +GET /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId} HTTP/1.1
941 +Host: -
942 +Authorization: Bearer<Token>
943 +Content-Type: application/json
944 +
945 +{{/code}}
946 +
947 +Example of response on successfully created limit upgrade application
948 +
949 +{{code language="http" title="**Response**"}}
950 +HTTP/1.1 200 OK
951 +Content-Type: application/json
952 +
953 +{
954 + "limitUpgradeApplicationId": "123e4567-e89b-12d3-a456-426614174000",
955 + "status": "AwaitingSign",
956 + "creditLimit": 5000.00,
957 + "accountNo": "123456",
958 + "languageCode": "Sv",
959 + "specialIntent": "limit-upgrade-for-invoice-conversion",
960 + "applicationOptions": {
961 + "customerPreAuthenticated": false,
962 + "preAuthorizationAmount": 5000.00
963 + },
964 + "kycQuestions": [
965 + {
966 + "questionText": "What is your current employment?",
967 + "answer": {
968 + "type": "single",
969 + "required": true,
970 + "possibleAnswers": [
971 + {
972 + "answerCode": "selfemployed",
973 + "answerText": "Own business"
974 + },
975 + {
976 + "answerCode": "private_employee",
977 + "answerText": "Private employee"
978 + },
979 + {
980 + "answerCode": "goverment_employee",
981 + "answerText": "Government employee"
982 + }
983 + ]
984 + },
985 + "questionCode": "employment"
986 + },
987 + {
988 + "questionText": "What is your yearly income",
989 + "answer": {
990 + "type": "single",
991 + "required": true,
992 + "possibleAnswers": [
993 + {
994 + "answerCode": "incomeinterval1",
995 + "answerText": "0-100 000 SEK"
996 + },
997 + {
998 + "answerCode": "incomeinterval2",
999 + "answerText": "100 001-200 000 SEK"
1000 + },
1001 + {
1002 + "answerCode": "incomeinterval3",
1003 + "answerText": "200 001-300 000 SEK"
1004 + },
1005 + {
1006 + "answerCode": "incomeinterval4",
1007 + "answerText": "Over 300 001 SEK"
1008 + }
1009 + ]
1010 + },
1011 + "questionCode": "income"
1012 + }
1013 + ],
1014 + "operations": []
1015 +}
1016 +{{/code}}
1017 +
1018 +
1019 +
1020 +**Possible problems**
1021 +
1022 +(% class="table-bordered table-striped" %)
1023 +|=Http status |=Problem type |=Description
1024 +|404 |not-found |Occurs if the requested resource isn't found.
1025 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache.
1026 +|500 |fatal |Unexpected error, logs may give details about the problem
1027 +
1028 +
1029 +==== 9.2 Create Limit-upgrade-application ====
1030 +
1031 +Add limit upgrade application
1032 +
1033 +{{code language="http" title="**Request**"}}
1034 +POST /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications HTTP/1.1
1035 +Host: -
1036 +Authorization: Bearer<Token>
1037 +Content-Type: application/json
1038 +
1039 +{
1040 + "creditLimit": 5000.00,
1041 + "accountNo": "123456",
1042 + "languageCode": "Sv",
1043 + "specialIntent": "limit-upgrade-for-invoice-conversion",
1044 + "applicationOptions": {
1045 + "customerPreAuthenticated": false,
1046 + "preAuthorizationAmount": 5000.00
1047 + }
1048 +}
1049 +{{/code}}
1050 +
1051 +
1052 +**Request object specification**
1053 +
1054 +(% class="table-bordered table-striped" %)
1055 +|=Property |=Data type|=Format|=Required|=Description
1056 +|creditLimit |number |Type: double
1057 +Pattern: ^\d+.?(\d{1,2})?$
1058 +Max: 100000000
1059 +Min: 0 |Yes |Credit limit on account applied for, can't have more than 2 decimal places
1060 +|accountNo |string | |Yes |The identifier of the account
1061 +|ipAddress |string |Pattern: ~[a-z0-9.:/]* |No |Senders ip address
1062 +|languageCode |string |(((
1063 +* Sv
1064 +* En
1065 +* No
1066 +* Da
1067 +))) |Yes |
1068 +|specialIntent |string | |No |Optional instruction used in special cases. Possible values (IncreaseLimitForInvoiceConversion)
1069 +|=applicationOptions |object | |No |
1070 +| customerPreAuthenticated |boolean | |Yes |Optional flag used when the customer is pre-authenticated. Defaults to false
1071 +| preAuthorizationAmount |number |Type: double |No |Optional field to support including information about the expected authorization amount in junction with the onboarding. The inclusion of this value may differ based fom company configurations.
1072 +
1073 +
1074 +Example of response on successfully created limit upgrade application
1075 +
1076 +{{code language="http" title="**Response**"}}
1077 +HTTP/1.1 201 Created
1078 +Content-Type: application/json
1079 +
1080 +{
1081 + "limitUpgradeApplicationId": "123e4567-e89b-12d3-a456-426614174000",
1082 + "status": "AwaitingSign",
1083 + "creditLimit": 5000.00,
1084 + "accountNo": "123456",
1085 + "languageCode": "Sv",
1086 + "specialIntent": "limit-upgrade-for-invoice-conversion",
1087 + "applicationOptions": {
1088 + "customerPreAuthenticated": false,
1089 + "preAuthorizationAmount": 5000.00
1090 + },
1091 + "kycQuestions": [
1092 + {
1093 + "questionText": "What is your current employment?",
1094 + "answer": {
1095 + "type": "single",
1096 + "required": true,
1097 + "possibleAnswers": [
1098 + {
1099 + "answerCode": "selfemployed",
1100 + "answerText": "Own business"
1101 + },
1102 + {
1103 + "answerCode": "private_employee",
1104 + "answerText": "Private employee"
1105 + },
1106 + {
1107 + "answerCode": "goverment_employee",
1108 + "answerText": "Government employee"
1109 + }
1110 + ]
1111 + },
1112 + "questionCode": "employment"
1113 + },
1114 + {
1115 + "questionText": "What is your yearly income",
1116 + "answer": {
1117 + "type": "single",
1118 + "required": true,
1119 + "possibleAnswers": [
1120 + {
1121 + "answerCode": "incomeinterval1",
1122 + "answerText": "0-100 000 SEK"
1123 + },
1124 + {
1125 + "answerCode": "incomeinterval2",
1126 + "answerText": "100 001-200 000 SEK"
1127 + },
1128 + {
1129 + "answerCode": "incomeinterval3",
1130 + "answerText": "200 001-300 000 SEK"
1131 + },
1132 + {
1133 + "answerCode": "incomeinterval4",
1134 + "answerText": "Over 300 001 SEK"
1135 + }
1136 + ]
1137 + },
1138 + "questionCode": "income"
1139 + }
1140 + ],
1141 + "operations": []
1142 +}
1143 +{{/code}}
1144 +
1145 +
1146 +**Possible problems**
1147 +
1148 +(% class="table-bordered table-striped" %)
1149 +|=Http status |=Problem type |=Description
1150 +|400 |validation |Occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
1151 +|404 |not-found |Occurs if the requested resource isn't found.
1152 +|404 |resource-unavailable |Occurs if a valid account is not available.
1153 +|409 |account-status |Occurs if the account status is invalid for the request to be made.
1154 +|409 |credit-limit-already-sufficient |Occurs if the requested credit limit is invalid because it is already sufficient.
1155 +|422 |invalid-special-intent |Occurs if the provided special intent is invalid.
1156 +|500 |fatal |Unexpected error, logs may give details about the problem
1157 +
1158 +
1159 +
1160 +**Response object specification**
1161 +
1162 +(% class="table-bordered table-striped" %)
1163 +|=Property |=Data type|=Format|=Description
1164 +|@id |string | |Uri identifier of the current resource
1165 +|creditLimit |number |Type: double
1166 +Pattern: ^\d+.?(\d{1,2})?$
1167 +Max: 100000000
1168 +Min: 0 |Credit limit on account applied for, can't have more than 2 decimal places
1169 +|accountNo |string | |The identifier of the account
1170 +|ipAddress |string |Pattern: ~[a-z0-9.:/]* |Senders ip address
1171 +|languageCode |string |(((
1172 +* Sv
1173 +* En
1174 +* No
1175 +* Da
1176 +))) |
1177 +|specialIntent |string | |Optional instruction used in special cases. Possible values (IncreaseLimitForInvoiceConversion)
1178 +|=applicationOptions |object | |
1179 +| customerPreAuthenticated |boolean | |Optional flag used when the customer is pre-authenticated. Defaults to false
1180 +| preAuthorizationAmount |number |Type: double |Optional field to support including information about the expected authorization amount in junction with the onboarding. The inclusion of this value may differ based fom company configurations.
1181 +|limitUpgradeApplicationId |string | |LimitUpgradeApplicationId
1182 +|status |string |(((
1183 +* AwaitingComplementaryInfo
1184 +* AwaitingVerification
1185 +* AwaitingSign
1186 +* Rejected
1187 +* InitializedDigitalSign
1188 +* SignRejectedOrFailed
1189 +* SignMismatch
1190 +* Approved
1191 +* InitializedKalp
1192 +))) |
1193 +|kycAnswers |dynamic | |The kyc resource
1194 +|signBankidSe |dynamic | |The sign bankid se resource
1195 +|=kycQuestions |array | |
1196 +| questionCode |string | |The code definition of the question
1197 +| questionText |string | |The translated text of the question
1198 +|= answer |object | |
1199 +| type |string | |The type of the expected answer: single ~| multi ~| text
1200 +| required |boolean | |If the answer is required
1201 +| textValidationRegEx |string | |The regex the answer should match
1202 +|= possibleAnswers |array | |
1203 +| answerCode |string | |The code definition of the answer
1204 +| answerText |string | |The translated text of the answer
1205 +|= subQuestions |array | |
1206 +|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]]
1207 +== 10. Monthio ==
1208 +
1209 +
1210 +==== 10.1 Create Monthio ====
1211 +
1212 +Post Monthio Callback
1213 +
1214 +{{code language="http" title="**Request**"}}
1215 +POST /ledger/public-account-onboarding-callback/v1/{ownerNo}/monthio HTTP/1.1
1216 +Host: -
1217 +Authorization: Bearer<Token>
1218 +Content-Type: application/json
1219 +
1220 +
1221 +{{/code}}
1222 +
1223 +
1224 +**Request object specification**
1225 +
1226 +(% class="table-bordered table-striped" %)
1227 +|=Property |=Data type|=Format|=Required|=Description
1228 +|id |string | |No |
1229 +|href |string | |No |
1230 +|eventType |string | |No |
1231 +|name |string | |No |
1232 +|type |string | |No |
1233 +|=additionalData |object | |No |
1234 +| applicantId |string | |No |
1235 +| caseId |string | |No |
1236 +
1237 +
1238 +{{code language="http" title="**Response**"}}
1239 +HTTP/1.1 201 Created
1240 +Content-Type: application/json
1241 +
1242 +
1243 +{{/code}}
1244 +
1245 +
1246 +**Response object specification**
1247 +
1248 +(% class="table-bordered table-striped" %)
1249 +|=Property |=Data type|=Format|=Description
1250 +|@id |string | |Uri identifier of the current resource
1251 +|id |string | |
1252 +|href |string | |
1253 +|eventType |string | |
1254 +|name |string | |
1255 +|type |string | |
1256 +|=additionalData |object | |
1257 +| applicantId |string | |
1258 +| caseId |string | |
1259 +== 11. Kyc-answers ==
1260 +
1261 +
1262 +Get the submited answers to kyc questions
1263 +
1264 +==== 11.1 Get list of Kyc-answers ====
1265 +
1266 +{{code language="http" title="**Request**"}}
1267 +GET /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/kyc-answers HTTP/1.1
1268 +Host: -
1269 +Authorization: Bearer<Token>
1270 +Content-Type: application/json
1271 +
1272 +{{/code}}
1273 +
1274 +Example of response on successfully retrieved kyc answers
1275 +
1276 +{{code language="http" title="**Response**"}}
1277 +HTTP/1.1 200 OK
1278 +Content-Type: application/json
1279 +
1280 +{
1281 + "answers": [
1282 + {
1283 + "questionCode": "employment",
1284 + "answerCode": "selfemployed"
1285 + },
1286 + {
1287 + "questionCode": "monthlyincome",
1288 + "answerCode": "monthlyincomeinterval2"
1289 + },
1290 + {
1291 + "questionCode": "ispep",
1292 + "answerCode": "false"
1293 + }
1294 + ]
1295 +}
1296 +{{/code}}
1297 +
1298 +
1299 +
1300 +**Possible problems**
1301 +
1302 +(% class="table-bordered table-striped" %)
1303 +|=Http status |=Problem type |=Description
1304 +|404 |not-found |Occurs if the requested resource isn't found.
1305 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache.
1306 +|409 |kyc-not-configured |Occurs if the application does not support KYC answers due to the account profile not being configured with any.
1307 +|500 |fatal |Unexpected error, logs may give details about the problem
1308 +
1309 +
1310 +==== 11.2 Create Kyc-answer ====
1311 +
1312 +Submit answers to kyc questions
1313 +
1314 +{{code language="http" title="**Request**"}}
1315 +POST /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/kyc-answers HTTP/1.1
1316 +Host: -
1317 +Authorization: Bearer<Token>
1318 +Content-Type: application/json
1319 +
1320 +{
1321 + "answers": [
1322 + {
1323 + "questionCode": "employment",
1324 + "answerCode": "selfemployed"
1325 + },
1326 + {
1327 + "questionCode": "monthlyincome",
1328 + "answerCode": "monthlyincomeinterval2"
1329 + },
1330 + {
1331 + "questionCode": "ispep",
1332 + "answerCode": "false"
1333 + }
1334 + ]
1335 +}
1336 +{{/code}}
1337 +
1338 +
1339 +**Request object specification**
1340 +
1341 +(% class="table-bordered table-striped" %)
1342 +|=Property |=Data type|=Format|=Required|=Description
1343 +|=answers |array | |Yes |
1344 +| questionCode |string | |Yes |The code definition of the question
1345 +| answerCode |string | |Yes |The code definition of the answer
1346 +
1347 +
1348 +Example of response on successfully created kyc answers
1349 +
1350 +{{code language="http" title="**Response**"}}
1351 +HTTP/1.1 201 Created
1352 +Content-Type: application/json
1353 +
1354 +{
1355 + "answers": [
1356 + {
1357 + "questionCode": "employment",
1358 + "answerCode": "selfemployed"
1359 + },
1360 + {
1361 + "questionCode": "monthlyincome",
1362 + "answerCode": "monthlyincomeinterval2"
1363 + },
1364 + {
1365 + "questionCode": "ispep",
1366 + "answerCode": "false"
1367 + }
1368 + ]
1369 +}
1370 +{{/code}}
1371 +
1372 +
1373 +**Possible problems**
1374 +
1375 +(% class="table-bordered table-striped" %)
1376 +|=Http status |=Problem type |=Description
1377 +|400 |validation |Occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
1378 +|404 |not-found |Occurs if the requested resource isn't found.
1379 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache.
1380 +|409 |validation |Occurs if the validation of the resource's state fails.
1381 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made.
1382 +|409 |kyc-not-configured |Occurs if the application does not support KYC answers due to the account profile not being configured with any.
1383 +|500 |fatal |Unexpected error, logs may give details about the problem
1384 +
1385 +
1386 +
1387 +**Response object specification**
1388 +
1389 +(% class="table-bordered table-striped" %)
1390 +|=Property |=Data type|=Format|=Description
1391 +|@id |string | |Uri identifier of the current resource
1392 +|=answers |array | |
1393 +| questionCode |string | |The code definition of the question
1394 +| answerCode |string | |The code definition of the answer
1395 +== 12. Verify-application ==
1396 +
1397 +
1398 +==== 12.1 Create Verify-application ====
1399 +
1400 +Verify the application and does a credit check if needed
1401 +
1402 +{{code language="http" title="**Request**"}}
1403 +POST /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/verify-application HTTP/1.1
1404 +Host: -
1405 +Authorization: Bearer<Token>
1406 +Content-Type: application/json
1407 +
1408 +{}
1409 +{{/code}}
1410 +
1411 +
1412 +
1413 +{{code language="http" title="**Response**"}}
1414 +HTTP/1.1 201 CREATED
1415 +Content-Type: application/json
1416 +
1417 +{
1418 +}
1419 +{{/code}}
1420 +
1421 +
1422 +**Possible problems**
1423 +
1424 +(% class="table-bordered table-striped" %)
1425 +|=Http status |=Problem type |=Description
1426 +|404 |not-found |Occurs if the requested application isn't found.
1427 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache.
1428 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made.
1429 +|422 |credit-check-declined |Occurs if the credit check is denied.
1430 +|500 |fatal |Unexpected error, logs may give details about the problem
1431 +
1432 +
1433 +== 13. Begin-sign-bankid-no ==
1434 +
1435 +
1436 +==== 13.1 Create Begin-sign-bankid-no ====
1437 +
1438 +Initiate Norwegain bankid signing process
1439 +
1440 +{{code language="http" title="**Request**"}}
1441 +POST /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/begin-sign-bankid-no HTTP/1.1
1442 +Host: -
1443 +Authorization: Bearer<Token>
1444 +Content-Type: application/json
1445 +
1446 +{
1447 + "completeUrl": "https://sucessful-page?id=123",
1448 + "cancelUrl": "https://unsucessful-page?id=123",
1449 + "callbackUrl": "https://my-callback-url?id=123"
1450 +}
1451 +{{/code}}
1452 +
1453 +
1454 +**Request object specification**
1455 +
1456 +(% class="table-bordered table-striped" %)
1457 +|=Property |=Data type|=Format|=Required|=Description
1458 +|completeUrl |string | |No |Url to redirect the user from Signicat Signing when signing has been completed
1459 +|cancelUrl |string | |No |Url to redirect the user from Signicat Signing when user choose to cancel the ongoing signing
1460 +|callbackUrl |string | |No |Specify a callback url that will be called to notify about status change. If empty no callback is done. Supported HTTP request methods ~[GET]
1461 +
1462 +
1463 +Example of successful response. This response has started a background process that begin polling for update about the signing for a limited time.
1464 +
1465 +{{code language="http" title="**Response**"}}
1466 +HTTP/1.1 200 OK
1467 +Content-Type: application/json
1468 +
1469 +{
1470 + "signingUrl": "https://example-signicat.com/std/docaction/profile-identify?request_id=123456abcdefg"
1471 +}
1472 +{{/code}}
1473 +
1474 +
1475 +**Possible problems**
1476 +
1477 +(% class="table-bordered table-striped" %)
1478 +|=Http status |=Problem type |=Description
1479 +|400 |validation |Occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
1480 +|404 |not-found |Occurs if the requested application isn't found.
1481 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache.
1482 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made.
1483 +|409 |company-not-configured |Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable.
1484 +|500 |fatal |Unexpected error, logs may give details about the problem
1485 +
1486 +
1487 +
1488 +**Response object specification**
1489 +
1490 +(% class="table-bordered table-striped" %)
1491 +|=Property |=Data type|=Format|=Description
1492 +|signingUrl |string | |Url to Signicat Signing. The url to the signing order can be signed by who ever has Norwegian BankId so be sure it's the customer of the account that signs else the onboarding will fail later on
1493 +== 14. Begin-sign-bankid-no ==
1494 +
1495 +
1496 +==== 14.1 Create Begin-sign-bankid-no ====
1497 +
1498 +Initiate Norwegain bankid signing process
1499 +
1500 +{{code language="http" title="**Request**"}}
1501 +POST /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/begin-sign-bankid-no HTTP/1.1
1502 +Host: -
1503 +Authorization: Bearer<Token>
1504 +Content-Type: application/json
1505 +
1506 +{
1507 + "completeUrl": "https://sucessful-page?id=123",
1508 + "cancelUrl": "https://unsucessful-page?id=123",
1509 + "callbackUrl": "https://my-callback-url?id=123"
1510 +}
1511 +{{/code}}
1512 +
1513 +
1514 +**Request object specification**
1515 +
1516 +(% class="table-bordered table-striped" %)
1517 +|=Property |=Data type|=Format|=Required|=Description
1518 +|completeUrl |string | |No |Url to redirect the user from Signicat Signing when signing has been completed
1519 +|cancelUrl |string | |No |Url to redirect the user from Signicat Signing when user choose to cancel the ongoing signing
1520 +|callbackUrl |string | |No |Specify a callback url that will be called to notify about status change. If empty no callback is done. Supported HTTP request methods ~[GET]
1521 +
1522 +
1523 +Example of successful response. This response has started a background process that begin polling for update about the signing for a limited time.
1524 +
1525 +{{code language="http" title="**Response**"}}
1526 +HTTP/1.1 200 OK
1527 +Content-Type: application/json
1528 +
1529 +{
1530 + "signingUrl": "https://example-signicat.com/std/docaction/profile-identify?request_id=123456abcdefg"
1531 +}
1532 +{{/code}}
1533 +
1534 +
1535 +**Possible problems**
1536 +
1537 +(% class="table-bordered table-striped" %)
1538 +|=Http status |=Problem type |=Description
1539 +|400 |validation |Occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
1540 +|404 |not-found |Occurs if the requested application isn't found.
1541 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache.
1542 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made.
1543 +|409 |company-not-configured |Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable.
1544 +|500 |fatal |Unexpected error, logs may give details about the problem
1545 +
1546 +
1547 +
1548 +**Response object specification**
1549 +
1550 +(% class="table-bordered table-striped" %)
1551 +|=Property |=Data type|=Format|=Description
1552 +|signingUrl |string | |Url to Signicat Signing. The url to the signing order can be signed by who ever has Norwegian BankId so be sure it's the customer of the account that signs else the onboarding will fail later on
1553 +== 15. Sign-bankid-se ==
1554 +
1555 +
1556 +Retrieve bankid signing process data
1557 +
1558 +==== 15.1 Get list of Sign-bankid-se ====
1559 +
1560 +{{code language="http" title="**Request**"}}
1561 +GET /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/sign-bankid-se HTTP/1.1
1562 +Host: -
1563 +Authorization: Bearer<Token>
1564 +Content-Type: application/json
1565 +
1566 +{{/code}}
1567 +
1568 +Example of response on successfully retrieved sign bankid se. This should be polled. The resource is updated in the signing process running in the background.
1569 +
1570 +{{code language="http" title="**Response**"}}
1571 +HTTP/1.1 200 OK
1572 +Content-Type: application/json
1573 +
1574 +{
1575 + "autostartToken": "7c40b5c9-fa74-49cf-b98c-bfe651f9a7c6",
1576 + "qrCodeImageDataUrl": "data:image/png;base64,VeryLongBase64String",
1577 + "status": "Pending",
1578 + "hintCode": "OutstandingTransaction",
1579 + "maxExtends": 0,
1580 + "currentExtend": 0,
1581 + "secondsLeftThirtySecondsInterval": 0,
1582 + "endUserIp": "194.168.2.25",
1583 + "callbackUrl": "https://myCallbackUrl",
1584 + "operations": []
1585 +}
1586 +{{/code}}
1587 +
1588 +
1589 +
1590 +**Possible problems**
1591 +
1592 +(% class="table-bordered table-striped" %)
1593 +|=Http status |=Problem type |=Description
1594 +|404 |not-found |Occurs if the requested resource isn't found.
1595 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache.
1596 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made.
1597 +|500 |fatal |Unexpected error, logs may give details about the problem
1598 +
1599 +
1600 +==== 15.2 Create Sign-bankid-se ====
1601 +
1602 +Initiate bankid signing process
1603 +
1604 +{{code language="http" title="**Request**"}}
1605 +POST /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/sign-bankid-se HTTP/1.1
1606 +Host: -
1607 +Authorization: Bearer<Token>
1608 +Content-Type: application/json
1609 +
1610 +{
1611 + "endUserIp": "194.168.2.25",
1612 + "callbackUrl": "https://myCallbackUrl"
1613 +}
1614 +{{/code}}
1615 +
1616 +
1617 +**Request object specification**
1618 +
1619 +(% class="table-bordered table-striped" %)
1620 +|=Property |=Data type|=Format|=Required|=Description
1621 +|endUserIp |string | |Yes |IP address of the end user.
1622 +|callbackUrl |string | |No |If callback should be done on status change, it is done to the callback url. If empty no callback is done.
1623 +
1624 +
1625 +Example of response on successfully created sign bankid se. The signing process is carried out in a background process even after the response is returned.
1626 +
1627 +{{code language="http" title="**Response**"}}
1628 +HTTP/1.1 201 Created
1629 +Content-Type: application/json
1630 +
1631 +{
1632 + "autostartToken": "7c40b5c9-fa74-49cf-b98c-bfe651f9a7c6",
1633 + "qrCodeImageDataUrl": "data:image/png;base64,VeryLongBase64String",
1634 + "status": "Pending",
1635 + "hintCode": "OutstandingTransaction",
1636 + "maxExtends": 0,
1637 + "currentExtend": 0,
1638 + "secondsLeftThirtySecondsInterval": 0,
1639 + "endUserIp": "194.168.2.25",
1640 + "callbackUrl": "https://myCallbackUrl",
1641 + "operations": []
1642 +}
1643 +{{/code}}
1644 +
1645 +
1646 +**Possible problems**
1647 +
1648 +(% class="table-bordered table-striped" %)
1649 +|=Http status |=Problem type |=Description
1650 +|400 |validation |occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
1651 +|404 |not-found |Occurs if the requested application isn't found.
1652 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache.
1653 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made.
1654 +|409 |company-not-configured |Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable.
1655 +|500 |fatal |Unexpected error, logs may give details about the problem
1656 +
1657 +
1658 +
1659 +**Response object specification**
1660 +
1661 +(% class="table-bordered table-striped" %)
1662 +|=Property |=Data type|=Format|=Description
1663 +|@id |string | |Uri identifier of the current resource
1664 +|endUserIp |string | |IP address of the end user.
1665 +|callbackUrl |string | |If callback should be done on status change, it is done to the callback url. If empty no callback is done.
1666 +|autostartToken |string |Type: uuid |Autostart token to start BankId on the device client's current device.
1667 +|qrCodeImageDataUrl |string | |QR code in Base64 that the end user needs to scan on another device than the one used to initiate.
1668 +|status |string |(((
1669 +* Pending
1670 +* Complete
1671 +* Failed
1672 +))) |
1673 +|hintCode |string |(((
1674 +* OutstandingTransaction
1675 +* NoClient
1676 +* Started
1677 +* UserMrtd
1678 +* UserCallConfirm
1679 +* UserSign
1680 +* ExpiredTransaction
1681 +* CertificateErr
1682 +* UserCancel
1683 +* Cancelled
1684 +* StartFailed
1685 +* UserDeclinedCall
1686 +))) |
1687 +|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]]
1688 +|maxExtends |number |Type: int32 |Maximum Extend operation calls that are allowed.
1689 +|currentExtend |number |Type: int32 |The amount of extend operations that have been made on this resource.
1690 +|secondsLeftThirtySecondsInterval |number |Type: int32 |Time left in seconds for end user to complete signing. Only updated every 30 seconds.
1691 +== 16. Begin-sign-mitid-dk ==
1692 +
1693 +
1694 +==== 16.1 Create Begin-sign-mitid-dk ====
1695 +
1696 +Initiate Danish mitid signing process
1697 +
1698 +{{code language="http" title="**Request**"}}
1699 +POST /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/begin-sign-mitid-dk HTTP/1.1
1700 +Host: -
1701 +Authorization: Bearer<Token>
1702 +Content-Type: application/json
1703 +
1704 +{}
1705 +{{/code}}
1706 +
1707 +
1708 +**Request object specification**
1709 +
1710 +(% class="table-bordered table-striped" %)
1711 +|=Property |=Data type|=Format|=Required|=Description
1712 +|completeUrl |string | |No |Url to redirect the user from Signicat Signing when signing has been completed
1713 +|cancelUrl |string | |No |Url to redirect the user from Signicat Signing when user choose to cancel the ongoing signing
1714 +|callbackUrl |string | |No |Specify a callback url that will be called to notify about status change. If empty no callback is done. Supported HTTP request methods ~[GET]
1715 +
1716 +
1717 +Example of successful response. This response has started a background process that begins polling for update about the signing for a limited time.
1718 +
1719 +{{code language="http" title="**Response**"}}
1720 +HTTP/1.1 200 OK
1721 +Content-Type: application/json
1722 +
1723 +{}
1724 +{{/code}}
1725 +
1726 +
1727 +**Possible problems**
1728 +
1729 +(% class="table-bordered table-striped" %)
1730 +|=Http status |=Problem type |=Description
1731 +|400 |validation |Occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
1732 +|404 |not-found |Occurs if the requested application isn't found.
1733 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache.
1734 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made.
1735 +|409 |company-not-configured |Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable.
1736 +|500 |fatal |Unexpected error, logs may give details about the problem
1737 +
1738 +
1739 +
1740 +**Response object specification**
1741 +
1742 +(% class="table-bordered table-striped" %)
1743 +|=Property |=Data type|=Format|=Description
1744 +|signingUrl |string | |Url to Signicat Signing. The url to the signing order can be signed by who ever has Danish BankId so be sure it's the customer of the account that signs else the onboarding will fail later on
1745 +== 17. Begin-sign-mitid-dk ==
1746 +
1747 +
1748 +==== 17.1 Create Begin-sign-mitid-dk ====
1749 +
1750 +Initiate Danish mitid signing process
1751 +
1752 +{{code language="http" title="**Request**"}}
1753 +POST /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/begin-sign-mitid-dk HTTP/1.1
1754 +Host: -
1755 +Authorization: Bearer<Token>
1756 +Content-Type: application/json
1757 +
1758 +{}
1759 +{{/code}}
1760 +
1761 +
1762 +**Request object specification**
1763 +
1764 +(% class="table-bordered table-striped" %)
1765 +|=Property |=Data type|=Format|=Required|=Description
1766 +|completeUrl |string | |No |Url to redirect the user from Signicat Signing when signing has been completed
1767 +|cancelUrl |string | |No |Url to redirect the user from Signicat Signing when user choose to cancel the ongoing signing
1768 +|callbackUrl |string | |No |Specify a callback url that will be called to notify about status change. If empty no callback is done. Supported HTTP request methods ~[GET]
1769 +
1770 +
1771 +Example of successful response. This response has started a background process that begins polling for update about the signing for a limited time.
1772 +
1773 +{{code language="http" title="**Response**"}}
1774 +HTTP/1.1 200 OK
1775 +Content-Type: application/json
1776 +
1777 +{}
1778 +{{/code}}
1779 +
1780 +
1781 +**Possible problems**
1782 +
1783 +(% class="table-bordered table-striped" %)
1784 +|=Http status |=Problem type |=Description
1785 +|400 |validation |Occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
1786 +|404 |not-found |Occurs if the requested application isn't found.
1787 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache.
1788 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made.
1789 +|409 |company-not-configured |Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable.
1790 +|500 |fatal |Unexpected error, logs may give details about the problem
1791 +
1792 +
1793 +
1794 +**Response object specification**
1795 +
1796 +(% class="table-bordered table-striped" %)
1797 +|=Property |=Data type|=Format|=Description
1798 +|signingUrl |string | |Url to Signicat Signing. The url to the signing order can be signed by who ever has Danish BankId so be sure it's the customer of the account that signs else the onboarding will fail later on
1799 +== 18. Redirect-kalp-dk ==
1800 +
1801 +
1802 +==== 18.1 Create Redirect-kalp-dk ====
1803 +
1804 +Creates or gets a url for the Kalp page that the customer need to fill out to continue the application process
1805 +
1806 +{{code language="http" title="**Request**"}}
1807 +POST /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/redirect-kalp-dk HTTP/1.1
1808 +Host: -
1809 +Authorization: Bearer<Token>
1810 +Content-Type: application/json
1811 +
1812 +{}
1813 +{{/code}}
1814 +
1815 +
1816 +
1817 +===== Example of a response from the Application RedirectKalpDk operation =====
1818 +
1819 +NO DESCRIPTION SET
1820 +
1821 +{{code language="http" title="**Response**"}}
1822 +HTTP/1.1 200 OK
1823 +Content-Type: application/json
1824 +
1825 +{
1826 + "redirectUrl": "https://flow.monthio.com/?sessionId=kalpid"
1827 +}
1828 +{{/code}}
1829 +
1830 +
1831 +**Possible problems**
1832 +
1833 +(% class="table-bordered table-striped" %)
1834 +|=Http status |=Problem type |=Description
1835 +|404 |not-found |Occurs if the requested application isn't found.
1836 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache.
1837 +|409 |conflict |Occurs if the application state is invalid for the request to be made.
1838 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made.
1839 +|409 |company-not-configured |Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable.
1840 +|409 |kalp-not-configured |Occurs when account profile is not configured for Kalp.
1841 +|500 |fatal |Unexpected error, logs may give details about the problem
1842 +
1843 +
1844 +
1845 +**Response object specification**
1846 +
1847 +(% class="table-bordered table-striped" %)
1848 +|=Property |=Data type|=Format|=Description
1849 +|redirectUrl |string | |
1850 +== 19. Redirect-kalp-dk ==
1851 +
1852 +
1853 +==== 19.1 Create Redirect-kalp-dk ====
1854 +
1855 +Creates or gets a url for the Kalp page that the customer need to fill out to continue the limit upgrade application process
1856 +
1857 +{{code language="http" title="**Request**"}}
1858 +POST /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/redirect-kalp-dk HTTP/1.1
1859 +Host: -
1860 +Authorization: Bearer<Token>
1861 +Content-Type: application/json
1862 +
1863 +{}
1864 +{{/code}}
1865 +
1866 +
1867 +
1868 +Example of a response from the Limit Upgrade Application RedirectKalpDk operation
1869 +
1870 +{{code language="http" title="**Response**"}}
1871 +HTTP/1.1 200 OK
1872 +Content-Type: application/json
1873 +
1874 +{
1875 + "redirectUrl": "https://flow.monthio.com/?sessionId=kalpid"
1876 +}
1877 +{{/code}}
1878 +
1879 +
1880 +**Possible problems**
1881 +
1882 +(% class="table-bordered table-striped" %)
1883 +|=Http status |=Problem type |=Description
1884 +|404 |not-found |Occurs if the requested application isn't found.
1885 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache.
1886 +|409 |conflict |Occurs if the application state is invalid for the request to be made.
1887 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made.
1888 +|409 |company-not-configured |Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable.
1889 +|409 |kalp-not-configured |Occurs when account profile is not configured for Kalp.
1890 +|500 |fatal |Unexpected error, logs may give details about the problem
1891 +
1892 +
1893 +
1894 +**Response object specification**
1895 +
1896 +(% class="table-bordered table-striped" %)
1897 +|=Property |=Data type|=Format|=Description
1898 +|redirectUrl |string | |
1899 +== 20. Cancel ==
1900 +
1901 +
1902 +==== 20.1 Create Cancel ====
1903 +
1904 +Cancel bankid signing process
1905 +
1906 +{{code language="http" title="**Request**"}}
1907 +POST /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/sign-bankid-se/cancel HTTP/1.1
1908 +Host: -
1909 +Authorization: Bearer<Token>
1910 +Content-Type: application/json
1911 +
1912 +{}
1913 +{{/code}}
1914 +
1915 +
1916 +
1917 +{{code language="http" title="**Response**"}}
1918 +HTTP/1.1 201 CREATED
1919 +Content-Type: application/json
1920 +
1921 +{
1922 +}
1923 +{{/code}}
1924 +
1925 +
1926 +**Possible problems**
1927 +
1928 +(% class="table-bordered table-striped" %)
1929 +|=Http status |=Problem type |=Description
1930 +|404 |not-found |Occurs if the requested application isn't found.
1931 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache.
1932 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made.
1933 +|409 |invalid-bank-id-state |Occurs if the bankId state is invalid for the request to be made.
1934 +|500 |fatal |Unexpected error, logs may give details about the problem
1935 +
1936 +
1937 +== 21. Extend ==
1938 +
1939 +
1940 +==== 21.1 Create Extend ====
1941 +
1942 +Extend the time period for an ongoing bankid signing process
1943 +
1944 +{{code language="http" title="**Request**"}}
1945 +POST /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/sign-bankid-se/extend HTTP/1.1
1946 +Host: -
1947 +Authorization: Bearer<Token>
1948 +Content-Type: application/json
1949 +
1950 +{
1951 +}
1952 +{{/code}}
1953 +
1954 +
1955 +
1956 +Example of a response where Extend has been called once before (currentExtend 1), and some time has elapsed (90 seconds left).
1957 +
1958 +{{code language="http" title="**Response**"}}
1959 +HTTP/1.1 200 OK
1960 +Content-Type: application/json
1961 +
1962 +{
1963 + "maxExtends": 10,
1964 + "currentExtend": 1,
1965 + "secondsLeftThirtySecondsInterval": 90
1966 +}
1967 +{{/code}}
1968 +
1969 +
1970 +**Possible problems**
1971 +
1972 +(% class="table-bordered table-striped" %)
1973 +|=Http status |=Problem type |=Description
1974 +|404 |not-found |Occurs if the requested application isn't found.
1975 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache.
1976 +|409 |conflict |Occurs if the application state is invalid, see message for details.
1977 +|500 |fatal |Unexpected error, logs may give details about the problem.
1978 +
1979 +
1980 +
1981 +**Response object specification**
1982 +
1983 +(% class="table-bordered table-striped" %)
1984 +|=Property |=Data type|=Format|=Description
1985 +|maxExtends |number |Type: int32 |
1986 +|currentExtend |number |Type: int32 |
1987 +|secondsLeftThirtySecondsInterval |number |Type: int32 |
1988 +== 22. Create-account-without-application ==
1989 +
1990 +
1991 +==== 22.1 Create Create-account-without-application ====
1992 +
1993 +Create a new account for a consumer, with the selected offer. Only one account i permitted for a combination of consumer and offer
1994 +
1995 +{{code language="http" title="**Request**"}}
1996 +POST /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/create-account-without-application HTTP/1.1
1997 +Host: -
1998 +Authorization: Bearer<Token>
1999 +Content-Type: application/json
2000 +
2001 +{
2002 + "customerNo": "951753456",
2003 + "creditLimit": 5000.00
2004 +}
2005 +{{/code}}
2006 +
2007 +
2008 +**Request object specification**
2009 +
2010 +(% class="table-bordered table-striped" %)
2011 +|=Property |=Data type|=Format|=Required|=Description
2012 +|customerNo |string | |Yes |The identifier of the customer
2013 +|creditLimit |number |Type: double
2014 +Pattern: ^\d+.?(\d{1,2})?$
2015 +Max: 100000000
2016 +Min: 0 |Yes |Credit limit on account applied for, can't have more than 2 decimal places
2017 +
2018 +
2019 +Example of response on successfully created account.
2020 +
2021 +{{code language="http" title="**Response**"}}
2022 +HTTP/1.1 200 OK
2023 +Content-Type: application/json
2024 +
2025 +{
2026 + "accountNo": "123456",
2027 + "customerNo": "951753456",
2028 + "creditLimit": 5000.00
2029 +}
2030 +{{/code}}
2031 +
2032 +
2033 +**Possible problems**
2034 +
2035 +(% class="table-bordered table-striped" %)
2036 +|=Http status |=Problem type |=Description
2037 +|400 |validation |occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
2038 +|400 |not-found |occurs if the customer supplied does not exist
2039 +|500 |fatal |Unexpected error, logs may give details about the problem
2040 +
2041 +
2042 +
2043 +**Response object specification**
2044 +
2045 +(% class="table-bordered table-striped" %)
2046 +|=Property |=Data type|=Format|=Description
2047 +|@id |string | |Uri identifier of the current resource
2048 +|customerNo |string | |The identifier of the customer
2049 +|creditLimit |number |Type: double
2050 +Pattern: ^\d+.?(\d{1,2})?$
2051 +Max: 100000000
2052 +Min: 0 |Credit limit on account applied for, can't have more than 2 decimal places
2053 +|accountNo |string | |Account number
2054 +== 23. Limit-upgrade-without-application ==
2055 +
2056 +
2057 +==== 23.1 Create Limit-upgrade-without-application ====
2058 +
2059 +Update limit for a account, it's possible to both lower and increase the amount.
2060 +
2061 +{{code language="http" title="**Request**"}}
2062 +POST /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-without-application HTTP/1.1
2063 +Host: -
2064 +Authorization: Bearer<Token>
2065 +Content-Type: application/json
2066 +
2067 +{
2068 + "accountNo": "123456",
2069 + "creditLimit": 5000.00
2070 +}
2071 +{{/code}}
2072 +
2073 +
2074 +**Request object specification**
2075 +
2076 +(% class="table-bordered table-striped" %)
2077 +|=Property |=Data type|=Format|=Required|=Description
2078 +|accountNo |string | |Yes |The identifier of the account
2079 +|creditLimit |number |Type: double
2080 +Pattern: ^\d+.?(\d{1,2})?$
2081 +Max: 100000000
2082 +Min: 0 |Yes |Credit limit on account applied for, can't have more than 2 decimal places
2083 +
2084 +
2085 +Example of response on successfully updated account limit.
2086 +
2087 +{{code language="http" title="**Response**"}}
2088 +HTTP/1.1 200 OK
2089 +Content-Type: application/json
2090 +
2091 +{
2092 + "accountNo": "123456",
2093 + "creditLimit": 5000.00
2094 +}
2095 +{{/code}}
2096 +
2097 +
2098 +**Possible problems**
2099 +
2100 +(% class="table-bordered table-striped" %)
2101 +|=Http status |=Problem type |=Description
2102 +|400 |validation |occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
2103 +|400 |account-name-not-found |occurs if account isn't found.
2104 +|409 |company-not-configured |occurs if company supplied isn't configured
2105 +|500 |fatal |Unexpected error, logs may give details about the problem
2106 +
2107 +
2108 +
2109 +**Response object specification**
2110 +
2111 +(% class="table-bordered table-striped" %)
2112 +|=Property |=Data type|=Format|=Description
2113 +|@id |string | |Uri identifier of the current resource
2114 +|accountNo |string | |The identifier of the account
2115 +|creditLimit |number |Type: double
2116 +Pattern: ^\d+.?(\d{1,2})?$
2117 +Max: 100000000
2118 +Min: 0 |Credit limit on account applied for, can't have more than 2 decimal places
2119 +
2120 +
2121 +{{display reference="developer:Main.Invoicing.ledger-api-general-docs.api-section-problems.WebHome"/}}