Changes for page account-onboarding
Last modified by thomas hedstrom on 2026/07/09 12:28
From empty
To version 89.1
edited by thomas hedstrom
on 2026/07/07 10:55
on 2026/07/07 10:55
Change comment: There is no comment for this version
Summary
-
Page properties (6 modified, 0 added, 0 removed)
-
Attachments (0 modified, 4 added, 0 removed)
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.XWikiGuest1 +xwiki:XWiki.thomashedstrom - Default language
-
... ... @@ -1,0 +1,1 @@ 1 +en - Tags
-
... ... @@ -1,0 +1,1 @@ 1 +px-custom-page-content - Content
-
... ... @@ -1,0 +1,2119 @@ 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 +|=availableTrustedSellerGroupConsents |array | | 465 +| |string | |Available trusted seller group consents 466 +|=trustedSellerGroupConsents |array | | 467 +| |string | |Trusted seller group consents 468 +|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]] 469 +== 3. Kyc-answers == 470 + 471 + 472 +Get the submited answers to kyc questions 473 + 474 +==== 3.1 Get list of Kyc-answers ==== 475 + 476 +{{code language="http" title="**Request**"}} 477 +GET /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/kyc-answers HTTP/1.1 478 +Host: - 479 +Authorization: Bearer<Token> 480 +Content-Type: application/json 481 + 482 +{{/code}} 483 + 484 +Example of response on successfully retrieved kyc answers 485 + 486 +{{code language="http" title="**Response**"}} 487 +HTTP/1.1 200 OK 488 +Content-Type: application/json 489 + 490 +{ 491 + "answers": [ 492 + { 493 + "questionCode": "employment", 494 + "answerCode": "selfemployed" 495 + }, 496 + { 497 + "questionCode": "monthlyincome", 498 + "answerCode": "monthlyincomeinterval2" 499 + }, 500 + { 501 + "questionCode": "ispep", 502 + "answerCode": "false" 503 + } 504 + ] 505 +} 506 +{{/code}} 507 + 508 + 509 + 510 +**Possible problems** 511 + 512 +(% class="table-bordered table-striped" %) 513 +|=Http status |=Problem type |=Description 514 +|404 |not-found |Occurs if the requested resource isn't found. 515 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache. 516 +|409 |kyc-not-configured |Occurs if the application does not support KYC answers due to the account profile not being configured with any. 517 +|500 |fatal |Unexpected error, logs may give details about the problem 518 + 519 + 520 +==== 3.2 Create Kyc-answer ==== 521 + 522 +Submit answers to kyc questions 523 + 524 +{{code language="http" title="**Request**"}} 525 +POST /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/kyc-answers HTTP/1.1 526 +Host: - 527 +Authorization: Bearer<Token> 528 +Content-Type: application/json 529 + 530 +{ 531 + "answers": [ 532 + { 533 + "questionCode": "employment", 534 + "answerCode": "selfemployed" 535 + }, 536 + { 537 + "questionCode": "monthlyincome", 538 + "answerCode": "monthlyincomeinterval2" 539 + }, 540 + { 541 + "questionCode": "ispep", 542 + "answerCode": "false" 543 + } 544 + ] 545 +} 546 +{{/code}} 547 + 548 + 549 +**Request object specification** 550 + 551 +(% class="table-bordered table-striped" %) 552 +|=Property |=Data type|=Format|=Required|=Description 553 +|=answers |array | |Yes | 554 +| questionCode |string | |Yes |The code definition of the question 555 +| answerCode |string | |Yes |The code definition of the answer 556 + 557 + 558 +Example of response on successfully created kyc answers 559 + 560 +{{code language="http" title="**Response**"}} 561 +HTTP/1.1 201 Created 562 +Content-Type: application/json 563 + 564 +{ 565 + "answers": [ 566 + { 567 + "questionCode": "employment", 568 + "answerCode": "selfemployed" 569 + }, 570 + { 571 + "questionCode": "monthlyincome", 572 + "answerCode": "monthlyincomeinterval2" 573 + }, 574 + { 575 + "questionCode": "ispep", 576 + "answerCode": "false" 577 + } 578 + ] 579 +} 580 +{{/code}} 581 + 582 + 583 +**Possible problems** 584 + 585 +(% class="table-bordered table-striped" %) 586 +|=Http status |=Problem type |=Description 587 +|400 |validation |Occurs if the validation of the request fails, it is described in the problem why the input is invalid. 588 +|404 |not-found |Occurs if the requested resource isn't found. 589 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache. 590 +|409 |validation |Occurs if the validation of the resource's state fails. 591 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made. 592 +|409 |kyc-not-configured |Occurs if the application does not support KYC answers due to the account profile not being configured with any. 593 +|500 |fatal |Unexpected error, logs may give details about the problem 594 + 595 + 596 + 597 +**Response object specification** 598 + 599 +(% class="table-bordered table-striped" %) 600 +|=Property |=Data type|=Format|=Description 601 +|@id |string | |Uri identifier of the current resource 602 +|=answers |array | | 603 +| questionCode |string | |The code definition of the question 604 +| answerCode |string | |The code definition of the answer 605 +== 4. Verify-application == 606 + 607 + 608 +==== 4.1 Create Verify-application ==== 609 + 610 +Verify the application and does a credit check if needed 611 + 612 +{{code language="http" title="**Request**"}} 613 +POST /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/verify-application HTTP/1.1 614 +Host: - 615 +Authorization: Bearer<Token> 616 +Content-Type: application/json 617 + 618 +{} 619 +{{/code}} 620 + 621 + 622 + 623 +{{code language="http" title="**Response**"}} 624 +HTTP/1.1 201 CREATED 625 +Content-Type: application/json 626 + 627 +{ 628 +} 629 +{{/code}} 630 + 631 + 632 +**Possible problems** 633 + 634 +(% class="table-bordered table-striped" %) 635 +|=Http status |=Problem type |=Description 636 +|404 |not-found |Occurs if the requested application isn't found. 637 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache. 638 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made. 639 +|422 |credit-check-declined |Occurs if the credit check is denied. 640 +|500 |fatal |Unexpected error, logs may give details about the problem 641 + 642 + 643 +== 5. Approve-paper-application == 644 + 645 + 646 +==== 5.1 Create Approve-paper-application ==== 647 + 648 +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. 649 + 650 +{{code language="http" title="**Request**"}} 651 +POST /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/approve-paper-application HTTP/1.1 652 +Host: - 653 +Authorization: Bearer<Token> 654 +Content-Type: application/json 655 + 656 +{ 657 + "applicationDocument": { 658 + "content": "JVBERi0xLjQKJ...", 659 + "fileType": "pdf" 660 + }, 661 + "trusteeCertificateIncluded": false 662 +} 663 +{{/code}} 664 + 665 + 666 +**Request object specification** 667 + 668 +(% class="table-bordered table-striped" %) 669 +|=Property |=Data type|=Format|=Required|=Description 670 +|=applicationDocument |object | |Yes | 671 +| content |string | |Yes |Base64-encoded content of the application document. 672 +| fileType |string |Pattern: ^pdf$ |Yes |File type of the document. Currently only 'pdf' is supported. 673 +|trusteeCertificateIncluded |boolean | |Yes |Whether a trustee certificate is included in the application. Sent to credit check as applicantParameters.trusteeCertificateIncluded. Defaults to false. 674 + 675 + 676 +Example of response on successfully approved paper application 677 + 678 +{{code language="http" title="**Response**"}} 679 +HTTP/1.1 200 OK 680 +Content-Type: application/json 681 + 682 +{ 683 + "accountNo": "1234567", 684 + "customerNo": "951753456" 685 +} 686 +{{/code}} 687 + 688 + 689 +**Possible problems** 690 + 691 +(% class="table-bordered table-striped" %) 692 +|=Http status |=Problem type |=Description 693 +|400 |validation |Occurs if any of the input validation fails. 694 +|409 |not-valid-for-intent |Occurs if the application was not created with the standalone-account-onboarding-manual intent. 695 +|409 |invalid-application-state |Occurs if the application is not in AwaitingSign state. 696 +|422 |credit-check-declined |Occurs if the credit check was denied. Application status is set to Rejected. 697 +|404 |not-found |Occurs if the requested application isn't found. 698 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache. 699 +|500 |fatal |Unexpected error, logs may give details about the problem 700 + 701 + 702 + 703 +**Response object specification** 704 + 705 +(% class="table-bordered table-striped" %) 706 +|=Property |=Data type|=Format|=Description 707 +|accountNo |string | |The account number of the created account. 708 +|customerNo |string | |The customer number used for this account. 709 +== 6. Sign-bankid-se == 710 + 711 + 712 +Retrieve bankid signing process data 713 + 714 +==== 6.1 Get list of Sign-bankid-se ==== 715 + 716 +{{code language="http" title="**Request**"}} 717 +GET /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/sign-bankid-se HTTP/1.1 718 +Host: - 719 +Authorization: Bearer<Token> 720 +Content-Type: application/json 721 + 722 +{{/code}} 723 + 724 +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. 725 + 726 +{{code language="http" title="**Response**"}} 727 +HTTP/1.1 200 OK 728 +Content-Type: application/json 729 + 730 +{ 731 + "autostartToken": "7c40b5c9-fa74-49cf-b98c-bfe651f9a7c6", 732 + "qrCodeImageDataUrl": "data:image/png;base64,VeryLongBase64String", 733 + "status": "Pending", 734 + "hintCode": "OutstandingTransaction", 735 + "maxExtends": 0, 736 + "currentExtend": 0, 737 + "secondsLeftThirtySecondsInterval": 0, 738 + "endUserIp": "194.168.2.25", 739 + "callbackUrl": "https://myCallbackUrl", 740 + "operations": [] 741 +} 742 +{{/code}} 743 + 744 + 745 + 746 +**Possible problems** 747 + 748 +(% class="table-bordered table-striped" %) 749 +|=Http status |=Problem type |=Description 750 +|404 |not-found |Occurs if the requested resource isn't found. 751 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache. 752 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made. 753 +|500 |fatal |Unexpected error, logs may give details about the problem 754 + 755 + 756 +==== 6.2 Create Sign-bankid-se ==== 757 + 758 +Initiate bankid signing process 759 + 760 +{{code language="http" title="**Request**"}} 761 +POST /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/sign-bankid-se HTTP/1.1 762 +Host: - 763 +Authorization: Bearer<Token> 764 +Content-Type: application/json 765 + 766 +{ 767 + "endUserIp": "194.168.2.25", 768 + "callbackUrl": "https://myCallbackUrl" 769 +} 770 +{{/code}} 771 + 772 + 773 +**Request object specification** 774 + 775 +(% class="table-bordered table-striped" %) 776 +|=Property |=Data type|=Format|=Required|=Description 777 +|endUserIp |string | |Yes |IP address of the end user. 778 +|callbackUrl |string | |No |If callback should be done on status change, it is done to the callback url. If empty no callback is done. 779 + 780 + 781 +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. 782 + 783 +{{code language="http" title="**Response**"}} 784 +HTTP/1.1 201 Created 785 +Content-Type: application/json 786 + 787 +{ 788 + "autostartToken": "7c40b5c9-fa74-49cf-b98c-bfe651f9a7c6", 789 + "qrCodeImageDataUrl": "data:image/png;base64,VeryLongBase64String", 790 + "status": "Pending", 791 + "hintCode": "OutstandingTransaction", 792 + "maxExtends": 0, 793 + "currentExtend": 0, 794 + "secondsLeftThirtySecondsInterval": 0, 795 + "endUserIp": "194.168.2.25", 796 + "callbackUrl": "https://myCallbackUrl", 797 + "operations": [] 798 +} 799 +{{/code}} 800 + 801 + 802 +**Possible problems** 803 + 804 +(% class="table-bordered table-striped" %) 805 +|=Http status |=Problem type |=Description 806 +|400 |validation |occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation 807 +|404 |not-found |Occurs if the requested application isn't found. 808 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache. 809 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made. 810 +|409 |company-not-configured |Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable. 811 +|500 |fatal |Unexpected error, logs may give details about the problem 812 + 813 + 814 + 815 +**Response object specification** 816 + 817 +(% class="table-bordered table-striped" %) 818 +|=Property |=Data type|=Format|=Description 819 +|@id |string | |Uri identifier of the current resource 820 +|endUserIp |string | |IP address of the end user. 821 +|callbackUrl |string | |If callback should be done on status change, it is done to the callback url. If empty no callback is done. 822 +|autostartToken |string |Type: uuid |Autostart token to start BankId on the device client's current device. 823 +|qrCodeImageDataUrl |string | |QR code in Base64 that the end user needs to scan on another device than the one used to initiate. 824 +|status |string |((( 825 +* Pending 826 +* Complete 827 +* Failed 828 +))) | 829 +|hintCode |string |((( 830 +* OutstandingTransaction 831 +* NoClient 832 +* Started 833 +* UserMrtd 834 +* UserCallConfirm 835 +* UserSign 836 +* ExpiredTransaction 837 +* CertificateErr 838 +* UserCancel 839 +* Cancelled 840 +* StartFailed 841 +* UserDeclinedCall 842 +))) | 843 +|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]] 844 +|maxExtends |number |Type: int32 |Maximum Extend operation calls that are allowed. 845 +|currentExtend |number |Type: int32 |The amount of extend operations that have been made on this resource. 846 +|secondsLeftThirtySecondsInterval |number |Type: int32 |Time left in seconds for end user to complete signing. Only updated every 30 seconds. 847 +== 7. Cancel == 848 + 849 + 850 +==== 7.1 Create Cancel ==== 851 + 852 +Cancel bankid signing process 853 + 854 +{{code language="http" title="**Request**"}} 855 +POST /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/sign-bankid-se/cancel HTTP/1.1 856 +Host: - 857 +Authorization: Bearer<Token> 858 +Content-Type: application/json 859 + 860 +{} 861 +{{/code}} 862 + 863 + 864 + 865 +{{code language="http" title="**Response**"}} 866 +HTTP/1.1 201 CREATED 867 +Content-Type: application/json 868 + 869 +{ 870 +} 871 +{{/code}} 872 + 873 + 874 +**Possible problems** 875 + 876 +(% class="table-bordered table-striped" %) 877 +|=Http status |=Problem type |=Description 878 +|404 |not-found |Occurs if the requested application isn't found. 879 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache. 880 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made. 881 +|409 |invalid-bank-id-state |Occurs if the bankId state is invalid for the request to be made. 882 +|500 |fatal |Unexpected error, logs may give details about the problem 883 + 884 + 885 +== 8. Extend == 886 + 887 + 888 +==== 8.1 Create Extend ==== 889 + 890 +Extend the time period for an ongoing bankid signing process 891 + 892 +{{code language="http" title="**Request**"}} 893 +POST /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/sign-bankid-se/extend HTTP/1.1 894 +Host: - 895 +Authorization: Bearer<Token> 896 +Content-Type: application/json 897 + 898 +{ 899 +} 900 +{{/code}} 901 + 902 + 903 + 904 +Example of a response where Extend has been called once before (currentExtend 1), and some time has elapsed (90 seconds left). 905 + 906 +{{code language="http" title="**Response**"}} 907 +HTTP/1.1 200 OK 908 +Content-Type: application/json 909 + 910 +{ 911 + "maxExtends": 10, 912 + "currentExtend": 1, 913 + "secondsLeftThirtySecondsInterval": 90 914 +} 915 +{{/code}} 916 + 917 +==== 8.2 Create Extend ==== 918 + 919 +Extend the time period for an ongoing bankid signing process 920 + 921 +{{code language="http" title="**Request**"}} 922 +POST /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/sign-bankid-se/extend HTTP/1.1 923 +Host: - 924 +Authorization: Bearer<Token> 925 +Content-Type: application/json 926 + 927 +{ 928 +} 929 +{{/code}} 930 + 931 + 932 + 933 +{{code language="http" title="**Response**"}} 934 +HTTP/1.1 204 NO CONTENT 935 +Content-Type: application/json 936 + 937 +{} 938 +{{/code}} 939 + 940 + 941 +**Possible problems** 942 + 943 +(% class="table-bordered table-striped" %) 944 +|=Http status |=Problem type |=Description 945 +|404 |not-found |Occurs if the requested application isn't found. 946 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache. 947 +|409 |conflict |Occurs if the application state is invalid, see message for details. 948 +|500 |fatal |Unexpected error, logs may give details about the problem. 949 + 950 + 951 + 952 +**Response object specification** 953 + 954 +(% class="table-bordered table-striped" %) 955 +|=Property |=Data type|=Format|=Description 956 +|maxExtends |number |Type: int32 | 957 +|currentExtend |number |Type: int32 | 958 +|secondsLeftThirtySecondsInterval |number |Type: int32 | 959 +== 9. Limit-upgrade-applications == 960 + 961 + 962 +Get existing limit upgrade application 963 + 964 +==== 9.1 Get specific Limit-upgrade-application ==== 965 + 966 +{{code language="http" title="**Request**"}} 967 +GET /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId} HTTP/1.1 968 +Host: - 969 +Authorization: Bearer<Token> 970 +Content-Type: application/json 971 + 972 +{{/code}} 973 + 974 +Example of response on successfully created limit upgrade application 975 + 976 +{{code language="http" title="**Response**"}} 977 +HTTP/1.1 200 OK 978 +Content-Type: application/json 979 + 980 +{ 981 + "limitUpgradeApplicationId": "123e4567-e89b-12d3-a456-426614174000", 982 + "status": "AwaitingSign", 983 + "creditLimit": 5000.00, 984 + "accountNo": "123456", 985 + "languageCode": "Sv", 986 + "specialIntent": "limit-upgrade-for-invoice-conversion", 987 + "applicationOptions": { 988 + "customerPreAuthenticated": false, 989 + "preAuthorizationAmount": 5000.00 990 + }, 991 + "kycQuestions": [ 992 + { 993 + "questionText": "What is your current employment?", 994 + "answer": { 995 + "type": "single", 996 + "required": true, 997 + "possibleAnswers": [ 998 + { 999 + "answerCode": "selfemployed", 1000 + "answerText": "Own business" 1001 + }, 1002 + { 1003 + "answerCode": "private_employee", 1004 + "answerText": "Private employee" 1005 + }, 1006 + { 1007 + "answerCode": "goverment_employee", 1008 + "answerText": "Government employee" 1009 + } 1010 + ] 1011 + }, 1012 + "questionCode": "employment" 1013 + }, 1014 + { 1015 + "questionText": "What is your yearly income", 1016 + "answer": { 1017 + "type": "single", 1018 + "required": true, 1019 + "possibleAnswers": [ 1020 + { 1021 + "answerCode": "incomeinterval1", 1022 + "answerText": "0-100 000 SEK" 1023 + }, 1024 + { 1025 + "answerCode": "incomeinterval2", 1026 + "answerText": "100 001-200 000 SEK" 1027 + }, 1028 + { 1029 + "answerCode": "incomeinterval3", 1030 + "answerText": "200 001-300 000 SEK" 1031 + }, 1032 + { 1033 + "answerCode": "incomeinterval4", 1034 + "answerText": "Over 300 001 SEK" 1035 + } 1036 + ] 1037 + }, 1038 + "questionCode": "income" 1039 + } 1040 + ], 1041 + "operations": [] 1042 +} 1043 +{{/code}} 1044 + 1045 + 1046 + 1047 +**Possible problems** 1048 + 1049 +(% class="table-bordered table-striped" %) 1050 +|=Http status |=Problem type |=Description 1051 +|404 |not-found |Occurs if the requested resource isn't found. 1052 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache. 1053 +|500 |fatal |Unexpected error, logs may give details about the problem 1054 + 1055 + 1056 +==== 9.2 Create Limit-upgrade-application ==== 1057 + 1058 +Add limit upgrade application 1059 + 1060 +{{code language="http" title="**Request**"}} 1061 +POST /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications HTTP/1.1 1062 +Host: - 1063 +Authorization: Bearer<Token> 1064 +Content-Type: application/json 1065 + 1066 +{ 1067 + "creditLimit": 5000.00, 1068 + "accountNo": "123456", 1069 + "languageCode": "Sv", 1070 + "specialIntent": "limit-upgrade-for-invoice-conversion", 1071 + "applicationOptions": { 1072 + "customerPreAuthenticated": false, 1073 + "preAuthorizationAmount": 5000.00 1074 + } 1075 +} 1076 +{{/code}} 1077 + 1078 + 1079 +**Request object specification** 1080 + 1081 +(% class="table-bordered table-striped" %) 1082 +|=Property |=Data type|=Format|=Required|=Description 1083 +|creditLimit |number |Type: double 1084 +Pattern: ^\d+.?(\d{1,2})?$ 1085 +Max: 100000000 1086 +Min: 0 |Yes |Credit limit on account applied for, can't have more than 2 decimal places 1087 +|accountNo |string | |Yes |The identifier of the account 1088 +|ipAddress |string |Pattern: ~[a-z0-9.:/]* |No |Senders ip address 1089 +|languageCode |string |((( 1090 +* Sv 1091 +* En 1092 +* No 1093 +* Da 1094 +))) |Yes | 1095 +|specialIntent |string | |No |Optional instruction used in special cases. Possible values (IncreaseLimitForInvoiceConversion) 1096 +|=applicationOptions |object | |No | 1097 +| customerPreAuthenticated |boolean | |Yes |Optional flag used when the customer is pre-authenticated. Defaults to false 1098 +| 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. 1099 + 1100 + 1101 +Example of response on successfully created limit upgrade application 1102 + 1103 +{{code language="http" title="**Response**"}} 1104 +HTTP/1.1 201 Created 1105 +Content-Type: application/json 1106 + 1107 +{ 1108 + "limitUpgradeApplicationId": "123e4567-e89b-12d3-a456-426614174000", 1109 + "status": "AwaitingSign", 1110 + "creditLimit": 5000.00, 1111 + "accountNo": "123456", 1112 + "languageCode": "Sv", 1113 + "specialIntent": "limit-upgrade-for-invoice-conversion", 1114 + "applicationOptions": { 1115 + "customerPreAuthenticated": false, 1116 + "preAuthorizationAmount": 5000.00 1117 + }, 1118 + "kycQuestions": [ 1119 + { 1120 + "questionText": "What is your current employment?", 1121 + "answer": { 1122 + "type": "single", 1123 + "required": true, 1124 + "possibleAnswers": [ 1125 + { 1126 + "answerCode": "selfemployed", 1127 + "answerText": "Own business" 1128 + }, 1129 + { 1130 + "answerCode": "private_employee", 1131 + "answerText": "Private employee" 1132 + }, 1133 + { 1134 + "answerCode": "goverment_employee", 1135 + "answerText": "Government employee" 1136 + } 1137 + ] 1138 + }, 1139 + "questionCode": "employment" 1140 + }, 1141 + { 1142 + "questionText": "What is your yearly income", 1143 + "answer": { 1144 + "type": "single", 1145 + "required": true, 1146 + "possibleAnswers": [ 1147 + { 1148 + "answerCode": "incomeinterval1", 1149 + "answerText": "0-100 000 SEK" 1150 + }, 1151 + { 1152 + "answerCode": "incomeinterval2", 1153 + "answerText": "100 001-200 000 SEK" 1154 + }, 1155 + { 1156 + "answerCode": "incomeinterval3", 1157 + "answerText": "200 001-300 000 SEK" 1158 + }, 1159 + { 1160 + "answerCode": "incomeinterval4", 1161 + "answerText": "Over 300 001 SEK" 1162 + } 1163 + ] 1164 + }, 1165 + "questionCode": "income" 1166 + } 1167 + ], 1168 + "operations": [] 1169 +} 1170 +{{/code}} 1171 + 1172 + 1173 +**Possible problems** 1174 + 1175 +(% class="table-bordered table-striped" %) 1176 +|=Http status |=Problem type |=Description 1177 +|400 |validation |Occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation 1178 +|404 |not-found |Occurs if the requested resource isn't found. 1179 +|404 |resource-unavailable |Occurs if a valid account is not available. 1180 +|409 |account-status |Occurs if the account status is invalid for the request to be made. 1181 +|409 |credit-limit-already-sufficient |Occurs if the requested credit limit is invalid because it is already sufficient. 1182 +|422 |invalid-special-intent |Occurs if the provided special intent is invalid. 1183 +|500 |fatal |Unexpected error, logs may give details about the problem 1184 + 1185 + 1186 + 1187 +**Response object specification** 1188 + 1189 +(% class="table-bordered table-striped" %) 1190 +|=Property |=Data type|=Format|=Description 1191 +|@id |string | |Uri identifier of the current resource 1192 +|creditLimit |number |Type: double 1193 +Pattern: ^\d+.?(\d{1,2})?$ 1194 +Max: 100000000 1195 +Min: 0 |Credit limit on account applied for, can't have more than 2 decimal places 1196 +|accountNo |string | |The identifier of the account 1197 +|ipAddress |string |Pattern: ~[a-z0-9.:/]* |Senders ip address 1198 +|languageCode |string |((( 1199 +* Sv 1200 +* En 1201 +* No 1202 +* Da 1203 +))) | 1204 +|specialIntent |string | |Optional instruction used in special cases. Possible values (IncreaseLimitForInvoiceConversion) 1205 +|=applicationOptions |object | | 1206 +| customerPreAuthenticated |boolean | |Optional flag used when the customer is pre-authenticated. Defaults to false 1207 +| 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. 1208 +|limitUpgradeApplicationId |string | |LimitUpgradeApplicationId 1209 +|status |string |((( 1210 +* AwaitingComplementaryInfo 1211 +* AwaitingVerification 1212 +* AwaitingSign 1213 +* Rejected 1214 +* InitializedDigitalSign 1215 +* SignRejectedOrFailed 1216 +* SignMismatch 1217 +* Approved 1218 +* InitializedKalp 1219 +))) | 1220 +|kycAnswers |dynamic | |The kyc resource 1221 +|signBankidSe |dynamic | |The sign bankid se resource 1222 +|=kycQuestions |array | | 1223 +| questionCode |string | |The code definition of the question 1224 +| questionText |string | |The translated text of the question 1225 +|= answer |object | | 1226 +| type |string | |The type of the expected answer: single ~| multi ~| text 1227 +| required |boolean | |If the answer is required 1228 +| textValidationRegEx |string | |The regex the answer should match 1229 +|= possibleAnswers |array | | 1230 +| answerCode |string | |The code definition of the answer 1231 +| answerText |string | |The translated text of the answer 1232 +|= subQuestions |array | | 1233 +|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]] 1234 +== 10. Kyc-answers == 1235 + 1236 + 1237 +Get the submited answers to kyc questions 1238 + 1239 +==== 10.1 Get list of Kyc-answers ==== 1240 + 1241 +{{code language="http" title="**Request**"}} 1242 +GET /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/kyc-answers HTTP/1.1 1243 +Host: - 1244 +Authorization: Bearer<Token> 1245 +Content-Type: application/json 1246 + 1247 +{{/code}} 1248 + 1249 +Example of response on successfully retrieved kyc answers 1250 + 1251 +{{code language="http" title="**Response**"}} 1252 +HTTP/1.1 200 OK 1253 +Content-Type: application/json 1254 + 1255 +{ 1256 + "answers": [ 1257 + { 1258 + "questionCode": "employment", 1259 + "answerCode": "selfemployed" 1260 + }, 1261 + { 1262 + "questionCode": "monthlyincome", 1263 + "answerCode": "monthlyincomeinterval2" 1264 + }, 1265 + { 1266 + "questionCode": "ispep", 1267 + "answerCode": "false" 1268 + } 1269 + ] 1270 +} 1271 +{{/code}} 1272 + 1273 + 1274 + 1275 +**Possible problems** 1276 + 1277 +(% class="table-bordered table-striped" %) 1278 +|=Http status |=Problem type |=Description 1279 +|404 |not-found |Occurs if the requested resource isn't found. 1280 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache. 1281 +|409 |kyc-not-configured |Occurs if the application does not support KYC answers due to the account profile not being configured with any. 1282 +|500 |fatal |Unexpected error, logs may give details about the problem 1283 + 1284 + 1285 +==== 10.2 Create Kyc-answer ==== 1286 + 1287 +Submit answers to kyc questions 1288 + 1289 +{{code language="http" title="**Request**"}} 1290 +POST /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/kyc-answers HTTP/1.1 1291 +Host: - 1292 +Authorization: Bearer<Token> 1293 +Content-Type: application/json 1294 + 1295 +{ 1296 + "answers": [ 1297 + { 1298 + "questionCode": "employment", 1299 + "answerCode": "selfemployed" 1300 + }, 1301 + { 1302 + "questionCode": "monthlyincome", 1303 + "answerCode": "monthlyincomeinterval2" 1304 + }, 1305 + { 1306 + "questionCode": "ispep", 1307 + "answerCode": "false" 1308 + } 1309 + ] 1310 +} 1311 +{{/code}} 1312 + 1313 + 1314 +**Request object specification** 1315 + 1316 +(% class="table-bordered table-striped" %) 1317 +|=Property |=Data type|=Format|=Required|=Description 1318 +|=answers |array | |Yes | 1319 +| questionCode |string | |Yes |The code definition of the question 1320 +| answerCode |string | |Yes |The code definition of the answer 1321 + 1322 + 1323 +Example of response on successfully created kyc answers 1324 + 1325 +{{code language="http" title="**Response**"}} 1326 +HTTP/1.1 201 Created 1327 +Content-Type: application/json 1328 + 1329 +{ 1330 + "answers": [ 1331 + { 1332 + "questionCode": "employment", 1333 + "answerCode": "selfemployed" 1334 + }, 1335 + { 1336 + "questionCode": "monthlyincome", 1337 + "answerCode": "monthlyincomeinterval2" 1338 + }, 1339 + { 1340 + "questionCode": "ispep", 1341 + "answerCode": "false" 1342 + } 1343 + ] 1344 +} 1345 +{{/code}} 1346 + 1347 + 1348 +**Possible problems** 1349 + 1350 +(% class="table-bordered table-striped" %) 1351 +|=Http status |=Problem type |=Description 1352 +|400 |validation |Occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation 1353 +|404 |not-found |Occurs if the requested resource isn't found. 1354 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache. 1355 +|409 |validation |Occurs if the validation of the resource's state fails. 1356 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made. 1357 +|409 |kyc-not-configured |Occurs if the application does not support KYC answers due to the account profile not being configured with any. 1358 +|500 |fatal |Unexpected error, logs may give details about the problem 1359 + 1360 + 1361 + 1362 +**Response object specification** 1363 + 1364 +(% class="table-bordered table-striped" %) 1365 +|=Property |=Data type|=Format|=Description 1366 +|@id |string | |Uri identifier of the current resource 1367 +|=answers |array | | 1368 +| questionCode |string | |The code definition of the question 1369 +| answerCode |string | |The code definition of the answer 1370 +== 11. Verify-application == 1371 + 1372 + 1373 +==== 11.1 Create Verify-application ==== 1374 + 1375 +Verify the application and does a credit check if needed 1376 + 1377 +{{code language="http" title="**Request**"}} 1378 +POST /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/verify-application HTTP/1.1 1379 +Host: - 1380 +Authorization: Bearer<Token> 1381 +Content-Type: application/json 1382 + 1383 +{} 1384 +{{/code}} 1385 + 1386 + 1387 + 1388 +{{code language="http" title="**Response**"}} 1389 +HTTP/1.1 201 CREATED 1390 +Content-Type: application/json 1391 + 1392 +{ 1393 +} 1394 +{{/code}} 1395 + 1396 + 1397 +**Possible problems** 1398 + 1399 +(% class="table-bordered table-striped" %) 1400 +|=Http status |=Problem type |=Description 1401 +|404 |not-found |Occurs if the requested application isn't found. 1402 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache. 1403 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made. 1404 +|422 |credit-check-declined |Occurs if the credit check is denied. 1405 +|500 |fatal |Unexpected error, logs may give details about the problem 1406 + 1407 + 1408 +== 12. Begin-sign-bankid-no == 1409 + 1410 + 1411 +==== 12.1 Create Begin-sign-bankid-no ==== 1412 + 1413 +Initiate Norwegain bankid signing process 1414 + 1415 +{{code language="http" title="**Request**"}} 1416 +POST /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/begin-sign-bankid-no HTTP/1.1 1417 +Host: - 1418 +Authorization: Bearer<Token> 1419 +Content-Type: application/json 1420 + 1421 +{ 1422 + "completeUrl": "https://sucessful-page?id=123", 1423 + "cancelUrl": "https://unsucessful-page?id=123", 1424 + "callbackUrl": "https://my-callback-url?id=123" 1425 +} 1426 +{{/code}} 1427 + 1428 + 1429 +**Request object specification** 1430 + 1431 +(% class="table-bordered table-striped" %) 1432 +|=Property |=Data type|=Format|=Required|=Description 1433 +|completeUrl |string | |No |Url to redirect the user from Signicat Signing when signing has been completed 1434 +|cancelUrl |string | |No |Url to redirect the user from Signicat Signing when user choose to cancel the ongoing signing 1435 +|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] 1436 + 1437 + 1438 +Example of successful response. This response has started a background process that begin polling for update about the signing for a limited time. 1439 + 1440 +{{code language="http" title="**Response**"}} 1441 +HTTP/1.1 200 OK 1442 +Content-Type: application/json 1443 + 1444 +{ 1445 + "signingUrl": "https://example-signicat.com/std/docaction/profile-identify?request_id=123456abcdefg" 1446 +} 1447 +{{/code}} 1448 + 1449 + 1450 +**Possible problems** 1451 + 1452 +(% class="table-bordered table-striped" %) 1453 +|=Http status |=Problem type |=Description 1454 +|400 |validation |Occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation 1455 +|404 |not-found |Occurs if the requested application isn't found. 1456 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache. 1457 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made. 1458 +|409 |company-not-configured |Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable. 1459 +|500 |fatal |Unexpected error, logs may give details about the problem 1460 + 1461 + 1462 + 1463 +**Response object specification** 1464 + 1465 +(% class="table-bordered table-striped" %) 1466 +|=Property |=Data type|=Format|=Description 1467 +|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 1468 +== 13. Begin-sign-bankid-no == 1469 + 1470 + 1471 +==== 13.1 Create Begin-sign-bankid-no ==== 1472 + 1473 +Initiate Norwegain bankid signing process 1474 + 1475 +{{code language="http" title="**Request**"}} 1476 +POST /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/begin-sign-bankid-no HTTP/1.1 1477 +Host: - 1478 +Authorization: Bearer<Token> 1479 +Content-Type: application/json 1480 + 1481 +{ 1482 + "completeUrl": "https://sucessful-page?id=123", 1483 + "cancelUrl": "https://unsucessful-page?id=123", 1484 + "callbackUrl": "https://my-callback-url?id=123" 1485 +} 1486 +{{/code}} 1487 + 1488 + 1489 +**Request object specification** 1490 + 1491 +(% class="table-bordered table-striped" %) 1492 +|=Property |=Data type|=Format|=Required|=Description 1493 +|completeUrl |string | |No |Url to redirect the user from Signicat Signing when signing has been completed 1494 +|cancelUrl |string | |No |Url to redirect the user from Signicat Signing when user choose to cancel the ongoing signing 1495 +|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] 1496 + 1497 + 1498 +Example of successful response. This response has started a background process that begin polling for update about the signing for a limited time. 1499 + 1500 +{{code language="http" title="**Response**"}} 1501 +HTTP/1.1 200 OK 1502 +Content-Type: application/json 1503 + 1504 +{ 1505 + "signingUrl": "https://example-signicat.com/std/docaction/profile-identify?request_id=123456abcdefg" 1506 +} 1507 +{{/code}} 1508 + 1509 + 1510 +**Possible problems** 1511 + 1512 +(% class="table-bordered table-striped" %) 1513 +|=Http status |=Problem type |=Description 1514 +|400 |validation |Occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation 1515 +|404 |not-found |Occurs if the requested application isn't found. 1516 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache. 1517 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made. 1518 +|409 |company-not-configured |Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable. 1519 +|500 |fatal |Unexpected error, logs may give details about the problem 1520 + 1521 + 1522 + 1523 +**Response object specification** 1524 + 1525 +(% class="table-bordered table-striped" %) 1526 +|=Property |=Data type|=Format|=Description 1527 +|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 1528 +== 14. Sign-bankid-se == 1529 + 1530 + 1531 +Retrieve bankid signing process data 1532 + 1533 +==== 14.1 Get list of Sign-bankid-se ==== 1534 + 1535 +{{code language="http" title="**Request**"}} 1536 +GET /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/sign-bankid-se HTTP/1.1 1537 +Host: - 1538 +Authorization: Bearer<Token> 1539 +Content-Type: application/json 1540 + 1541 +{{/code}} 1542 + 1543 +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. 1544 + 1545 +{{code language="http" title="**Response**"}} 1546 +HTTP/1.1 200 OK 1547 +Content-Type: application/json 1548 + 1549 +{ 1550 + "autostartToken": "7c40b5c9-fa74-49cf-b98c-bfe651f9a7c6", 1551 + "qrCodeImageDataUrl": "data:image/png;base64,VeryLongBase64String", 1552 + "status": "Pending", 1553 + "hintCode": "OutstandingTransaction", 1554 + "maxExtends": 0, 1555 + "currentExtend": 0, 1556 + "secondsLeftThirtySecondsInterval": 0, 1557 + "endUserIp": "194.168.2.25", 1558 + "callbackUrl": "https://myCallbackUrl", 1559 + "operations": [] 1560 +} 1561 +{{/code}} 1562 + 1563 + 1564 + 1565 +**Possible problems** 1566 + 1567 +(% class="table-bordered table-striped" %) 1568 +|=Http status |=Problem type |=Description 1569 +|404 |not-found |Occurs if the requested resource isn't found. 1570 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache. 1571 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made. 1572 +|500 |fatal |Unexpected error, logs may give details about the problem 1573 + 1574 + 1575 +==== 14.2 Create Sign-bankid-se ==== 1576 + 1577 +Initiate bankid signing process 1578 + 1579 +{{code language="http" title="**Request**"}} 1580 +POST /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/sign-bankid-se HTTP/1.1 1581 +Host: - 1582 +Authorization: Bearer<Token> 1583 +Content-Type: application/json 1584 + 1585 +{ 1586 + "endUserIp": "194.168.2.25", 1587 + "callbackUrl": "https://myCallbackUrl" 1588 +} 1589 +{{/code}} 1590 + 1591 + 1592 +**Request object specification** 1593 + 1594 +(% class="table-bordered table-striped" %) 1595 +|=Property |=Data type|=Format|=Required|=Description 1596 +|endUserIp |string | |Yes |IP address of the end user. 1597 +|callbackUrl |string | |No |If callback should be done on status change, it is done to the callback url. If empty no callback is done. 1598 + 1599 + 1600 +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. 1601 + 1602 +{{code language="http" title="**Response**"}} 1603 +HTTP/1.1 201 Created 1604 +Content-Type: application/json 1605 + 1606 +{ 1607 + "autostartToken": "7c40b5c9-fa74-49cf-b98c-bfe651f9a7c6", 1608 + "qrCodeImageDataUrl": "data:image/png;base64,VeryLongBase64String", 1609 + "status": "Pending", 1610 + "hintCode": "OutstandingTransaction", 1611 + "maxExtends": 0, 1612 + "currentExtend": 0, 1613 + "secondsLeftThirtySecondsInterval": 0, 1614 + "endUserIp": "194.168.2.25", 1615 + "callbackUrl": "https://myCallbackUrl", 1616 + "operations": [] 1617 +} 1618 +{{/code}} 1619 + 1620 + 1621 +**Possible problems** 1622 + 1623 +(% class="table-bordered table-striped" %) 1624 +|=Http status |=Problem type |=Description 1625 +|400 |validation |occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation 1626 +|404 |not-found |Occurs if the requested application isn't found. 1627 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache. 1628 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made. 1629 +|409 |company-not-configured |Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable. 1630 +|500 |fatal |Unexpected error, logs may give details about the problem 1631 + 1632 + 1633 + 1634 +**Response object specification** 1635 + 1636 +(% class="table-bordered table-striped" %) 1637 +|=Property |=Data type|=Format|=Description 1638 +|@id |string | |Uri identifier of the current resource 1639 +|endUserIp |string | |IP address of the end user. 1640 +|callbackUrl |string | |If callback should be done on status change, it is done to the callback url. If empty no callback is done. 1641 +|autostartToken |string |Type: uuid |Autostart token to start BankId on the device client's current device. 1642 +|qrCodeImageDataUrl |string | |QR code in Base64 that the end user needs to scan on another device than the one used to initiate. 1643 +|status |string |((( 1644 +* Pending 1645 +* Complete 1646 +* Failed 1647 +))) | 1648 +|hintCode |string |((( 1649 +* OutstandingTransaction 1650 +* NoClient 1651 +* Started 1652 +* UserMrtd 1653 +* UserCallConfirm 1654 +* UserSign 1655 +* ExpiredTransaction 1656 +* CertificateErr 1657 +* UserCancel 1658 +* Cancelled 1659 +* StartFailed 1660 +* UserDeclinedCall 1661 +))) | 1662 +|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]] 1663 +|maxExtends |number |Type: int32 |Maximum Extend operation calls that are allowed. 1664 +|currentExtend |number |Type: int32 |The amount of extend operations that have been made on this resource. 1665 +|secondsLeftThirtySecondsInterval |number |Type: int32 |Time left in seconds for end user to complete signing. Only updated every 30 seconds. 1666 +== 15. Begin-sign-mitid-dk == 1667 + 1668 + 1669 +==== 15.1 Create Begin-sign-mitid-dk ==== 1670 + 1671 +Initiate Danish mitid signing process 1672 + 1673 +{{code language="http" title="**Request**"}} 1674 +POST /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/begin-sign-mitid-dk HTTP/1.1 1675 +Host: - 1676 +Authorization: Bearer<Token> 1677 +Content-Type: application/json 1678 + 1679 +{} 1680 +{{/code}} 1681 + 1682 + 1683 +**Request object specification** 1684 + 1685 +(% class="table-bordered table-striped" %) 1686 +|=Property |=Data type|=Format|=Required|=Description 1687 +|completeUrl |string | |No |Url to redirect the user from Signicat Signing when signing has been completed 1688 +|cancelUrl |string | |No |Url to redirect the user from Signicat Signing when user choose to cancel the ongoing signing 1689 +|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] 1690 + 1691 + 1692 +Example of successful response. This response has started a background process that begins polling for update about the signing for a limited time. 1693 + 1694 +{{code language="http" title="**Response**"}} 1695 +HTTP/1.1 200 OK 1696 +Content-Type: application/json 1697 + 1698 +{} 1699 +{{/code}} 1700 + 1701 + 1702 +**Possible problems** 1703 + 1704 +(% class="table-bordered table-striped" %) 1705 +|=Http status |=Problem type |=Description 1706 +|400 |validation |Occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation 1707 +|404 |not-found |Occurs if the requested application isn't found. 1708 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache. 1709 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made. 1710 +|409 |company-not-configured |Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable. 1711 +|500 |fatal |Unexpected error, logs may give details about the problem 1712 + 1713 + 1714 + 1715 +**Response object specification** 1716 + 1717 +(% class="table-bordered table-striped" %) 1718 +|=Property |=Data type|=Format|=Description 1719 +|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 1720 +== 16. Begin-sign-mitid-dk == 1721 + 1722 + 1723 +==== 16.1 Create Begin-sign-mitid-dk ==== 1724 + 1725 +Initiate Danish mitid signing process 1726 + 1727 +{{code language="http" title="**Request**"}} 1728 +POST /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/begin-sign-mitid-dk HTTP/1.1 1729 +Host: - 1730 +Authorization: Bearer<Token> 1731 +Content-Type: application/json 1732 + 1733 +{} 1734 +{{/code}} 1735 + 1736 + 1737 +**Request object specification** 1738 + 1739 +(% class="table-bordered table-striped" %) 1740 +|=Property |=Data type|=Format|=Required|=Description 1741 +|completeUrl |string | |No |Url to redirect the user from Signicat Signing when signing has been completed 1742 +|cancelUrl |string | |No |Url to redirect the user from Signicat Signing when user choose to cancel the ongoing signing 1743 +|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] 1744 + 1745 + 1746 +Example of successful response. This response has started a background process that begins polling for update about the signing for a limited time. 1747 + 1748 +{{code language="http" title="**Response**"}} 1749 +HTTP/1.1 200 OK 1750 +Content-Type: application/json 1751 + 1752 +{} 1753 +{{/code}} 1754 + 1755 + 1756 +**Possible problems** 1757 + 1758 +(% class="table-bordered table-striped" %) 1759 +|=Http status |=Problem type |=Description 1760 +|400 |validation |Occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation 1761 +|404 |not-found |Occurs if the requested application isn't found. 1762 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache. 1763 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made. 1764 +|409 |company-not-configured |Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable. 1765 +|500 |fatal |Unexpected error, logs may give details about the problem 1766 + 1767 + 1768 + 1769 +**Response object specification** 1770 + 1771 +(% class="table-bordered table-striped" %) 1772 +|=Property |=Data type|=Format|=Description 1773 +|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 1774 +== 17. Redirect-kalp-dk == 1775 + 1776 + 1777 +==== 17.1 Create Redirect-kalp-dk ==== 1778 + 1779 +Creates or gets a url for the Kalp page that the customer need to fill out to continue the application process 1780 + 1781 +{{code language="http" title="**Request**"}} 1782 +POST /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/redirect-kalp-dk HTTP/1.1 1783 +Host: - 1784 +Authorization: Bearer<Token> 1785 +Content-Type: application/json 1786 + 1787 +{} 1788 +{{/code}} 1789 + 1790 + 1791 + 1792 +===== Example of a response from the Application RedirectKalpDk operation ===== 1793 + 1794 +NO DESCRIPTION SET 1795 + 1796 +{{code language="http" title="**Response**"}} 1797 +HTTP/1.1 200 OK 1798 +Content-Type: application/json 1799 + 1800 +{ 1801 + "redirectUrl": "https://flow.monthio.com/?sessionId=kalpid" 1802 +} 1803 +{{/code}} 1804 + 1805 + 1806 +**Possible problems** 1807 + 1808 +(% class="table-bordered table-striped" %) 1809 +|=Http status |=Problem type |=Description 1810 +|404 |not-found |Occurs if the requested application isn't found. 1811 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache. 1812 +|409 |conflict |Occurs if the application state is invalid for the request to be made. 1813 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made. 1814 +|409 |company-not-configured |Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable. 1815 +|409 |kalp-not-configured |Occurs when account profile is not configured for Kalp. 1816 +|500 |fatal |Unexpected error, logs may give details about the problem 1817 + 1818 + 1819 + 1820 +**Response object specification** 1821 + 1822 +(% class="table-bordered table-striped" %) 1823 +|=Property |=Data type|=Format|=Description 1824 +|redirectUrl |string | | 1825 +== 18. Redirect-kalp-dk == 1826 + 1827 + 1828 +==== 18.1 Create Redirect-kalp-dk ==== 1829 + 1830 +Creates or gets a url for the Kalp page that the customer need to fill out to continue the limit upgrade application process 1831 + 1832 +{{code language="http" title="**Request**"}} 1833 +POST /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/redirect-kalp-dk HTTP/1.1 1834 +Host: - 1835 +Authorization: Bearer<Token> 1836 +Content-Type: application/json 1837 + 1838 +{} 1839 +{{/code}} 1840 + 1841 + 1842 + 1843 +Example of a response from the Limit Upgrade Application RedirectKalpDk operation 1844 + 1845 +{{code language="http" title="**Response**"}} 1846 +HTTP/1.1 200 OK 1847 +Content-Type: application/json 1848 + 1849 +{ 1850 + "redirectUrl": "https://flow.monthio.com/?sessionId=kalpid" 1851 +} 1852 +{{/code}} 1853 + 1854 + 1855 +**Possible problems** 1856 + 1857 +(% class="table-bordered table-striped" %) 1858 +|=Http status |=Problem type |=Description 1859 +|404 |not-found |Occurs if the requested application isn't found. 1860 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache. 1861 +|409 |conflict |Occurs if the application state is invalid for the request to be made. 1862 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made. 1863 +|409 |company-not-configured |Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable. 1864 +|409 |kalp-not-configured |Occurs when account profile is not configured for Kalp. 1865 +|500 |fatal |Unexpected error, logs may give details about the problem 1866 + 1867 + 1868 + 1869 +**Response object specification** 1870 + 1871 +(% class="table-bordered table-striped" %) 1872 +|=Property |=Data type|=Format|=Description 1873 +|redirectUrl |string | | 1874 +== 19. Cancel == 1875 + 1876 + 1877 +==== 19.1 Create Cancel ==== 1878 + 1879 +Cancel bankid signing process 1880 + 1881 +{{code language="http" title="**Request**"}} 1882 +POST /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/sign-bankid-se/cancel HTTP/1.1 1883 +Host: - 1884 +Authorization: Bearer<Token> 1885 +Content-Type: application/json 1886 + 1887 +{} 1888 +{{/code}} 1889 + 1890 + 1891 + 1892 +{{code language="http" title="**Response**"}} 1893 +HTTP/1.1 201 CREATED 1894 +Content-Type: application/json 1895 + 1896 +{ 1897 +} 1898 +{{/code}} 1899 + 1900 + 1901 +**Possible problems** 1902 + 1903 +(% class="table-bordered table-striped" %) 1904 +|=Http status |=Problem type |=Description 1905 +|404 |not-found |Occurs if the requested application isn't found. 1906 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache. 1907 +|409 |invalid-application-state |Occurs if the application state is invalid for the request to be made. 1908 +|409 |invalid-bank-id-state |Occurs if the bankId state is invalid for the request to be made. 1909 +|500 |fatal |Unexpected error, logs may give details about the problem 1910 + 1911 + 1912 +== 20. Extend == 1913 + 1914 + 1915 +==== 20.1 Create Extend ==== 1916 + 1917 +Extend the time period for an ongoing bankid signing process 1918 + 1919 +{{code language="http" title="**Request**"}} 1920 +POST /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/sign-bankid-se/extend HTTP/1.1 1921 +Host: - 1922 +Authorization: Bearer<Token> 1923 +Content-Type: application/json 1924 + 1925 +{ 1926 +} 1927 +{{/code}} 1928 + 1929 + 1930 + 1931 +Example of a response where Extend has been called once before (currentExtend 1), and some time has elapsed (90 seconds left). 1932 + 1933 +{{code language="http" title="**Response**"}} 1934 +HTTP/1.1 200 OK 1935 +Content-Type: application/json 1936 + 1937 +{ 1938 + "maxExtends": 10, 1939 + "currentExtend": 1, 1940 + "secondsLeftThirtySecondsInterval": 90 1941 +} 1942 +{{/code}} 1943 + 1944 +==== 20.2 Create Extend ==== 1945 + 1946 +Extend the time period for an ongoing bankid signing process 1947 + 1948 +{{code language="http" title="**Request**"}} 1949 +POST /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/sign-bankid-se/extend HTTP/1.1 1950 +Host: - 1951 +Authorization: Bearer<Token> 1952 +Content-Type: application/json 1953 + 1954 +{ 1955 +} 1956 +{{/code}} 1957 + 1958 + 1959 + 1960 +{{code language="http" title="**Response**"}} 1961 +HTTP/1.1 204 NO CONTENT 1962 +Content-Type: application/json 1963 + 1964 +{} 1965 +{{/code}} 1966 + 1967 + 1968 +**Possible problems** 1969 + 1970 +(% class="table-bordered table-striped" %) 1971 +|=Http status |=Problem type |=Description 1972 +|404 |not-found |Occurs if the requested application isn't found. 1973 +|404 |resource-unavailable |Occurs if the requested resource is unavailable when retrieving it from the cache. 1974 +|409 |conflict |Occurs if the application state is invalid, see message for details. 1975 +|500 |fatal |Unexpected error, logs may give details about the problem. 1976 + 1977 + 1978 + 1979 +**Response object specification** 1980 + 1981 +(% class="table-bordered table-striped" %) 1982 +|=Property |=Data type|=Format|=Description 1983 +|maxExtends |number |Type: int32 | 1984 +|currentExtend |number |Type: int32 | 1985 +|secondsLeftThirtySecondsInterval |number |Type: int32 | 1986 +== 21. Create-account-without-application == 1987 + 1988 + 1989 +==== 21.1 Create Create-account-without-application ==== 1990 + 1991 +Create a new account for a consumer, with the selected offer. Only one account i permitted for a combination of consumer and offer 1992 + 1993 +{{code language="http" title="**Request**"}} 1994 +POST /ledger/account-onboarding/v1/{ownerNo}/offers/{accountProfile}/create-account-without-application HTTP/1.1 1995 +Host: - 1996 +Authorization: Bearer<Token> 1997 +Content-Type: application/json 1998 + 1999 +{ 2000 + "customerNo": "951753456", 2001 + "creditLimit": 5000.00 2002 +} 2003 +{{/code}} 2004 + 2005 + 2006 +**Request object specification** 2007 + 2008 +(% class="table-bordered table-striped" %) 2009 +|=Property |=Data type|=Format|=Required|=Description 2010 +|customerNo |string | |Yes |The identifier of the customer 2011 +|creditLimit |number |Type: double 2012 +Pattern: ^\d+.?(\d{1,2})?$ 2013 +Max: 100000000 2014 +Min: 0 |Yes |Credit limit on account applied for, can't have more than 2 decimal places 2015 + 2016 + 2017 +Example of response on successfully created account. 2018 + 2019 +{{code language="http" title="**Response**"}} 2020 +HTTP/1.1 200 OK 2021 +Content-Type: application/json 2022 + 2023 +{ 2024 + "accountNo": "123456", 2025 + "customerNo": "951753456", 2026 + "creditLimit": 5000.00 2027 +} 2028 +{{/code}} 2029 + 2030 + 2031 +**Possible problems** 2032 + 2033 +(% class="table-bordered table-striped" %) 2034 +|=Http status |=Problem type |=Description 2035 +|400 |validation |occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation 2036 +|400 |not-found |occurs if the customer supplied does not exist 2037 +|500 |fatal |Unexpected error, logs may give details about the problem 2038 + 2039 + 2040 + 2041 +**Response object specification** 2042 + 2043 +(% class="table-bordered table-striped" %) 2044 +|=Property |=Data type|=Format|=Description 2045 +|@id |string | |Uri identifier of the current resource 2046 +|customerNo |string | |The identifier of the customer 2047 +|creditLimit |number |Type: double 2048 +Pattern: ^\d+.?(\d{1,2})?$ 2049 +Max: 100000000 2050 +Min: 0 |Credit limit on account applied for, can't have more than 2 decimal places 2051 +|accountNo |string | |Account number 2052 +== 22. Limit-upgrade-without-application == 2053 + 2054 + 2055 +==== 22.1 Create Limit-upgrade-without-application ==== 2056 + 2057 +Update limit for a account, it's possible to both lower and increase the amount. 2058 + 2059 +{{code language="http" title="**Request**"}} 2060 +POST /ledger/account-onboarding/v1/{ownerNo}/limit-upgrade-without-application HTTP/1.1 2061 +Host: - 2062 +Authorization: Bearer<Token> 2063 +Content-Type: application/json 2064 + 2065 +{ 2066 + "accountNo": "123456", 2067 + "creditLimit": 5000.00 2068 +} 2069 +{{/code}} 2070 + 2071 + 2072 +**Request object specification** 2073 + 2074 +(% class="table-bordered table-striped" %) 2075 +|=Property |=Data type|=Format|=Required|=Description 2076 +|accountNo |string | |Yes |The identifier of the account 2077 +|creditLimit |number |Type: double 2078 +Pattern: ^\d+.?(\d{1,2})?$ 2079 +Max: 100000000 2080 +Min: 0 |Yes |Credit limit on account applied for, can't have more than 2 decimal places 2081 + 2082 + 2083 +Example of response on successfully updated account limit. 2084 + 2085 +{{code language="http" title="**Response**"}} 2086 +HTTP/1.1 200 OK 2087 +Content-Type: application/json 2088 + 2089 +{ 2090 + "accountNo": "123456", 2091 + "creditLimit": 5000.00 2092 +} 2093 +{{/code}} 2094 + 2095 + 2096 +**Possible problems** 2097 + 2098 +(% class="table-bordered table-striped" %) 2099 +|=Http status |=Problem type |=Description 2100 +|400 |validation |occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation 2101 +|400 |account-name-not-found |occurs if account isn't found. 2102 +|409 |company-not-configured |occurs if company supplied isn't configured 2103 +|500 |fatal |Unexpected error, logs may give details about the problem 2104 + 2105 + 2106 + 2107 +**Response object specification** 2108 + 2109 +(% class="table-bordered table-striped" %) 2110 +|=Property |=Data type|=Format|=Description 2111 +|@id |string | |Uri identifier of the current resource 2112 +|accountNo |string | |The identifier of the account 2113 +|creditLimit |number |Type: double 2114 +Pattern: ^\d+.?(\d{1,2})?$ 2115 +Max: 100000000 2116 +Min: 0 |Credit limit on account applied for, can't have more than 2 decimal places 2117 + 2118 + 2119 +{{display reference="developer:Main.Invoicing.ledger-api-general-docs.api-section-problems.WebHome"/}}
- 1645795304707-487.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.dap - Size
-
... ... @@ -1,0 +1,1 @@ 1 +0 bytes - Content
- 1780494004107-521.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.PabloVivarGonzalez - Size
-
... ... @@ -1,0 +1,1 @@ 1 +0 bytes - Content
- AccountOnboarding.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.mly - Size
-
... ... @@ -1,0 +1,1 @@ 1 +0 bytes - Content
- PayEx - Ledger API's - Wiki.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.mak - Size
-
... ... @@ -1,0 +1,1 @@ 1 +0 bytes - Content