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