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