Main.credit-account.api.account-onboarding - account-onboarding

Page of - last modified by thomas hedstrom on 2026/08/11 14:31

account-onboarding

thomas hedstrom

2026/08/11 14:31

Table of Contents

Changelog

1. Offers

2. Applications

3. Kyc-answers

4. Verify-application

5. Approve-paper-application

6. Sign-bankid-se

7. Cancel

8. Extend

9. Limit-upgrade-applications

10. Kyc-answers

11. Verify-application

12. Begin-sign-bankid-no

13. Begin-sign-bankid-no

14. Sign-bankid-se

15. Begin-sign-mitid-dk

16. Begin-sign-mitid-dk

17. Redirect-kalp-dk

18. Redirect-kalp-dk

19. Cancel

20. Extend

21. Create-account-without-application

22. Limit-upgrade-without-application

Problems

Example

Integrate to PayEx Account Onboarding API

Changelog

202Y-MM-DD

Swagger 2026-07-09

1. Offers

List all offers

1.1 Get list of Offers

Request

GET /ledger/account-onboarding/v2/{ownerNo}/offers HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json

Example of response on successfully retrieved offers

Response

HTTP/1.1 200 OK
Content-Type: application/json
{
"items": [
{
"accountProfile": "kontotyp-1",
"title": "kontotyp 1",
"currency": "SEK",
"maxCreditLimit": 50000.00,
"reminderFee": 35.00,
"penaltyInterestRate": 18.00,
"termsAndConditions": {
"standardEuropeanAgreements": "https://www.payex.com/term-and-conditions/no/-----.pdf",
"accountTerms": "https://www.payex.com/term-and-conditions/no/-----.pdf"
},
"operations": []
},
{
"accountProfile": "kontotyp-2",
"title": "kontotyp 2",
"currency": "SEK",
"maxCreditLimit": 50000.00,
"reminderFee": 35.00,
"penaltyInterestRate": 20.00,
"termsAndConditions": {
"standardEuropeanAgreements": "https://www.payex.com/term-and-conditions/no/-----.pdf",
"accountTerms": "https://www.payex.com/term-and-conditions/no/-----.pdf"
},
"operations": []
}
],
"navigation": {
"@id": "/ledger/account-onboarding/v2/xxx/offers"
}
}

Possible problems

Http status	Problem type	Description
404	validation	occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
404	resource-unavailable	Occurs if the requested profile is not available.
409	validation	Occurs if the validation of the resource's state fails.
500	fatal	Unexpected error, logs may give details about the problem

View a specific offer

1.2 Get specific Offer

Request

GET /ledger/account-onboarding/v2/{ownerNo}/offers/{accountProfile} HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json

Example of response on successfully retrieved offer

Response

HTTP/1.1 200 OK
Content-Type: application/json
{
"accountProfile": "kontotyp-1",
"title": "kontotyp 1",
"currency": "SEK",
"maxCreditLimit": 50000.00,
"reminderFee": 35.00,
"penaltyInterestRate": 18.00,
"termsAndConditions": {
"standardEuropeanAgreements": "https://www.payex.com/term-and-conditions/no/-----.pdf",
"accountTerms": "https://www.payex.com/term-and-conditions/no/-----.pdf"
},
"operations": []
}

Possible problems

Http status	Problem type	Description
404	validation	occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
404	resource-unavailable	Occurs if the requested profile is not available.
409	validation	Occurs if the validation of the resource's state fails.
500	fatal	Unexpected error, logs may give details about the problem

Response object specification

Property	Data type	Format	Description
@id	string	Uri identifier of the current resource
accountProfile	string
title	string	Name of the offer
currency	string	SEK NOK DKK EUR
maxCreditLimit	number	Type: double Max: 100000000 Min: 0	Max credit limit for account profile, can't have more than 2 decimal places
reminderFee	number	Type: double Max: 100000000 Min: 0	Reminder fee
penaltyInterestRate	number	Type: double Max: 100000000 Min: 0	Penalty interest rate
termsAndConditions	object
standardEuropeanAgreements	string	Standard european agreements
accountTerms	string	Account terms
applications	dynamic
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]]

2. Applications

Get existing application

2.1 Get specific Application

Request

GET /ledger/account-onboarding/v2/{ownerNo}/offers/{accountProfile}/applications/{applicationId} HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json

Example of response on successfully retrieved application

Response

HTTP/1.1 200 OK
Content-Type: application/json
{
"applicationId": "123e4567-e89b-12d3-a456-426614174000",
"status": "AwaitingSign",
"createdAccount": {
"accountNo": "1234567"
},
"creditLimit": 5000.00,
"nationalConsumerIdentifier": {
"value": "19101010-1010",
"countryCode": "SE"
},
"customerNo": "951753456",
"emailAddress": "test@testshop.se",
"msisdn": "46701234456",
"ipAddress": "1.1.1.X",
"languageCode": "Sv",
"specialIntent": "new-account-for-invoice-conversion",
"applicationOptions": {
"customerPreAuthenticated": false,
"preAuthorizationAmount": 5000.00
},
"sellerNo": "123456",
"pointOfSale": "Example Point of Sale",
"kycQuestions": [
{
"questionText": "What is your current employment?",
"answer": {
"type": "single",
"required": true,
"possibleAnswers": [
{
"answerCode": "selfemployed",
"answerText": "Own business"
},
{
"answerCode": "private_employee",
"answerText": "Private employee"
},
{
"answerCode": "goverment_employee",
"answerText": "Government employee"
}
]
},
"questionCode": "employment"
},
{
"questionText": "What is your yearly income",
"answer": {
"type": "single",
"required": true,
"possibleAnswers": [
{
"answerCode": "incomeinterval1",
"answerText": "0-100 000 SEK"
},
{
"answerCode": "incomeinterval2",
"answerText": "100 001-200 000 SEK"
},
{
"answerCode": "incomeinterval3",
"answerText": "200 001-300 000 SEK"
},
{
"answerCode": "incomeinterval4",
"answerText": "Over 300 001 SEK"
}
]
},
"questionCode": "income"
}
],
"operations": []
}

Possible problems

Http status	Problem type	Description
404	not-found	Occurs if the requested application isn't found.
404	resource-unavailable	Occurs if the requested resource is unavailable when retrieving it from the cache.
500	fatal	Unexpected error, logs may give details about the problem

2.2 Create Application

Add application to offer

Request

POST /ledger/account-onboarding/v2/{ownerNo}/offers/{accountProfile}/applications HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json
{
"creditLimit": 5000.00,
"nationalConsumerIdentifier": {
"value": "19101010-1010",
"countryCode": "SE"
},
"customerNo": "951753456",
"emailAddress": "test@testshop.se",
"msisdn": "46701234456",
"ipAddress": "1.1.1.X",
"languageCode": "Sv",
"specialIntent": "new-account-for-invoice-conversion",
"applicationOptions": {
"customerPreAuthenticated": false,
"preAuthorizationAmount": 5000.00
},
"sellerNo": "123456",
"pointOfSale": "Example Point of Sale"
}

Request object specification

Property	Data type	Format	Required	Description
creditLimit	number	Type: double Pattern: ^\d+.?(\d{1,2})?$ Max: 100000000 Min: 0	Yes	Credit limit on account applied for, can't have more than 2 decimal places
nationalConsumerIdentifier	object	Yes
value	string	Yes
countryCode	string	Pattern: SE|NO|DK|FI	Yes
customerNo	string	No	The identifier of the customer
emailAddress	string	Pattern: ^[^;\xA0\xD0\─@<>\p{Cc}]+@(?!\.)(?!.*\.\.)(?:[^;\xA0\xD0\─@<>\p{Cc}]+\.[^;\xA0\xD0\─@<>\p{Cc}]+|\[[A-Fa-f\d\:]+\])(?<!\.)$	No	The customers Email
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 '+'
ipAddress	string	Pattern: [a-z0-9.:/]*	No	Senders ip address
languageCode	string	Sv En No Da	Yes
specialIntent	string	No	Optional instruction used in special cases. Possible values: new-account-for-invoice-conversion, standalone-account-onboarding, standalone-account-onboarding-manual
applicationOptions	object	No
customerPreAuthenticated	boolean	Yes	Optional flag used when the customer is pre-authenticated. Defaults to false
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.
sellerNo	string	No	Only necessary if the account profile is configured to create an account alias using an alias template that requires sellerNo
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

Example of response on successfully created application

Response

HTTP/1.1 201 Created
Content-Type: application/json
{
"applicationId": "123e4567-e89b-12d3-a456-426614174000",
"status": "AwaitingSign",
"creditLimit": 5000.00,
"nationalConsumerIdentifier": {
"value": "19101010-1010",
"countryCode": "SE"
},
"customerNo": "951753456",
"emailAddress": "test@testshop.se",
"msisdn": "46701234456",
"ipAddress": "1.1.1.X",
"languageCode": "Sv",
"specialIntent": "new-account-for-invoice-conversion",
"applicationOptions": {
"customerPreAuthenticated": false,
"preAuthorizationAmount": 5000.00
},
"sellerNo": "123456",
"pointOfSale": "Example Point of Sale",
"kycQuestions": [
{
"questionText": "What is your current employment?",
"answer": {
"type": "single",
"required": true,
"possibleAnswers": [
{
"answerCode": "selfemployed",
"answerText": "Own business"
},
{
"answerCode": "private_employee",
"answerText": "Private employee"
},
{
"answerCode": "goverment_employee",
"answerText": "Government employee"
}
]
},
"questionCode": "employment"
},
{
"questionText": "What is your yearly income",
"answer": {
"type": "single",
"required": true,
"possibleAnswers": [
{
"answerCode": "incomeinterval1",
"answerText": "0-100 000 SEK"
},
{
"answerCode": "incomeinterval2",
"answerText": "100 001-200 000 SEK"
},
{
"answerCode": "incomeinterval3",
"answerText": "200 001-300 000 SEK"
},
{
"answerCode": "incomeinterval4",
"answerText": "Over 300 001 SEK"
}
]
},
"questionCode": "income"
}
],
"operations": []
}

Possible problems

Http status	Problem type	Description
400	validation	Occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
404	not-found	Occurs if the requested application isn't found.
409	customer-mismatch	Occurs if the customer NationalIdentifier value doesn't match with the provided CustomerNo value.
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.
409	account-profile-exists	Occurs if an account with the provided accountProfile already exists.
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.
409	not-valid-for-intent	Occurs if the account profile is not valid for the provided SpecialIntent.
422	invalid-special-intent	Occurs if the provided special intent is invalid.
500	fatal	Unexpected error, logs may give details about the problem

Response object specification

Property	Data type	Format	Description
@id	string	Uri identifier of the current resource
creditLimit	number	Type: double Pattern: ^\d+.?(\d{1,2})?$ Max: 100000000 Min: 0	Credit limit on account applied for, can't have more than 2 decimal places
nationalConsumerIdentifier	object
value	string
countryCode	string	Pattern: SE|NO|DK|FI
customerNo	string	The identifier of the customer
emailAddress	string	Pattern: ^[^;\xA0\xD0\─@<>\p{Cc}]+@(?!\.)(?!.*\.\.)(?:[^;\xA0\xD0\─@<>\p{Cc}]+\.[^;\xA0\xD0\─@<>\p{Cc}]+|\[[A-Fa-f\d\:]+\])(?<!\.)$	The customers Email
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 '+'
ipAddress	string	Pattern: [a-z0-9.:/]*	Senders ip address
languageCode	string	Sv En No Da
specialIntent	string	Optional instruction used in special cases. Possible values: new-account-for-invoice-conversion, standalone-account-onboarding, standalone-account-onboarding-manual
applicationOptions	object
customerPreAuthenticated	boolean	Optional flag used when the customer is pre-authenticated. Defaults to false
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.
sellerNo	string	Only necessary if the account profile is configured to create an account alias using an alias template that requires sellerNo
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
applicationId	string	ApplicationId
status	string	AwaitingComplementaryInfo AwaitingVerification AwaitingSign Rejected InitializedDigitalSign SignRejectedOrFailed SignMismatch Approved InitializedKalp
createdAccount	object
accountNo	string	Account number
kycQuestions	array
questionCode	string	The code definition of the question
questionText	string	The translated text of the question
answer	object
type	string	The type of the expected answer: single | multi | text
required	boolean	If the answer is required
textValidationRegEx	string	The regex the answer should match
possibleAnswers	array
answerCode	string	The code definition of the answer
answerText	string	The translated text of the answer
subQuestions	array
kycAnswers	dynamic	The kyc resource
signBankidSe	dynamic	The sign bankid se resource
availableTrustedSellerGroupConsents	array
string	Available trusted seller group consents
trustedSellerGroupConsents	array
string	Trusted seller group consents
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]]

3. Kyc-answers

Get the submited answers to kyc questions

3.1 Get list of Kyc-answers

Request

GET /ledger/account-onboarding/v2/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/kyc-answers HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json

Example of response on successfully retrieved kyc answers

Response

HTTP/1.1 200 OK
Content-Type: application/json
{
"answers": [
{
"questionCode": "employment",
"answerCode": "selfemployed"
},
{
"questionCode": "monthlyincome",
"answerCode": "monthlyincomeinterval2"
},
{
"questionCode": "ispep",
"answerCode": "false"
}
]
}

Possible problems

Http status	Problem type	Description
404	not-found	Occurs if the requested resource isn't found.
404	resource-unavailable	Occurs if the requested resource is unavailable when retrieving it from the cache.
409	kyc-not-configured	Occurs if the application does not support KYC answers due to the account profile not being configured with any.
500	fatal	Unexpected error, logs may give details about the problem

3.2 Create Kyc-answer

Submit answers to kyc questions

Request

POST /ledger/account-onboarding/v2/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/kyc-answers HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json
{
"answers": [
{
"questionCode": "employment",
"answerCode": "selfemployed"
},
{
"questionCode": "monthlyincome",
"answerCode": "monthlyincomeinterval2"
},
{
"questionCode": "ispep",
"answerCode": "false"
}
]
}

Request object specification

Property	Data type	Format	Required	Description
answers	array	Yes
questionCode	string	Yes	The code definition of the question
answerCode	string	Yes	The code definition of the answer

Example of response on successfully created kyc answers

Response

HTTP/1.1 201 Created
Content-Type: application/json
{
"answers": [
{
"questionCode": "employment",
"answerCode": "selfemployed"
},
{
"questionCode": "monthlyincome",
"answerCode": "monthlyincomeinterval2"
},
{
"questionCode": "ispep",
"answerCode": "false"
}
]
}

Possible problems

Http status	Problem type	Description
400	validation	Occurs if the validation of the request fails, it is described in the problem why the input is invalid.
404	not-found	Occurs if the requested resource isn't found.
404	resource-unavailable	Occurs if the requested resource is unavailable when retrieving it from the cache.
409	validation	Occurs if the validation of the resource's state fails.
409	invalid-application-state	Occurs if the application state is invalid for the request to be made.
409	kyc-not-configured	Occurs if the application does not support KYC answers due to the account profile not being configured with any.
500	fatal	Unexpected error, logs may give details about the problem

Response object specification

Property	Data type	Format	Description
@id	string	Uri identifier of the current resource
answers	array
questionCode	string	The code definition of the question
answerCode	string	The code definition of the answer

4. Verify-application

4.1 Create Verify-application

Verify the application and does a credit check if needed

Request

POST /ledger/account-onboarding/v2/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/verify-application HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json
{}

Response

HTTP/1.1 201 CREATED
Content-Type: application/json
{
}

Possible problems

Http status	Problem type	Description
404	not-found	Occurs if the requested application isn't found.
404	resource-unavailable	Occurs if the requested resource is unavailable when retrieving it from the cache.
409	invalid-application-state	Occurs if the application state is invalid for the request to be made.
422	credit-check-declined	Occurs if the credit check is denied.
500	fatal	Unexpected error, logs may give details about the problem

5. Approve-paper-application

5.1 Create Approve-paper-application

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.

Request

POST /ledger/account-onboarding/v2/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/approve-paper-application HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json
{
"applicationDocument": {
"content": "JVBERi0xLjQKJ...",
"fileType": "pdf"
},
"trusteeCertificateIncluded": false
}

Request object specification

Property	Data type	Format	Required	Description
applicationDocument	object	Yes
content	string	Yes	Base64-encoded content of the application document.
fileType	string	Pattern: ^pdf$	Yes	File type of the document. Currently only 'pdf' is supported.
trusteeCertificateIncluded	boolean	Yes	Whether a trustee certificate is included in the application. Sent to credit check as applicantParameters.trusteeCertificateIncluded. Defaults to false.

Example of response on successfully approved paper application

Response

HTTP/1.1 200 OK
Content-Type: application/json
{
"accountNo": "1234567",
"customerNo": "951753456"
}

Possible problems

Http status	Problem type	Description
400	validation	Occurs if any of the input validation fails.
409	not-valid-for-intent	Occurs if the application was not created with the standalone-account-onboarding-manual intent.
409	invalid-application-state	Occurs if the application is not in AwaitingSign state.
422	credit-check-declined	Occurs if the credit check was denied. Application status is set to Rejected.
404	not-found	Occurs if the requested application isn't found.
404	resource-unavailable	Occurs if the requested resource is unavailable when retrieving it from the cache.
500	fatal	Unexpected error, logs may give details about the problem

Response object specification

Property	Data type	Format	Description
accountNo	string	The account number of the created account.
customerNo	string	The customer number used for this account.

6. Sign-bankid-se

Retrieve bankid signing process data

6.1 Get list of Sign-bankid-se

Request

GET /ledger/account-onboarding/v2/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/sign-bankid-se HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json

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.

Response

HTTP/1.1 200 OK
Content-Type: application/json
{
"autostartToken": "7c40b5c9-fa74-49cf-b98c-bfe651f9a7c6",
"qrCodeImageDataUrl": "data:image/png;base64,VeryLongBase64String",
"status": "Pending",
"hintCode": "OutstandingTransaction",
"maxExtends": 0,
"currentExtend": 0,
"secondsLeftThirtySecondsInterval": 0,
"endUserIp": "194.168.2.25",
"callbackUrl": "https://myCallbackUrl",
"operations": []
}

Possible problems

Http status	Problem type	Description
404	not-found	Occurs if the requested resource isn't found.
404	resource-unavailable	Occurs if the requested resource is unavailable when retrieving it from the cache.
409	invalid-application-state	Occurs if the application state is invalid for the request to be made.
500	fatal	Unexpected error, logs may give details about the problem

6.2 Create Sign-bankid-se

Initiate bankid signing process

Request

POST /ledger/account-onboarding/v2/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/sign-bankid-se HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json
{
"endUserIp": "194.168.2.25",
"callbackUrl": "https://myCallbackUrl"
}

Request object specification

Property	Data type	Format	Required	Description
endUserIp	string	Yes	IP address of the end user.
callbackUrl	string	No	If callback should be done on status change, it is done to the callback url. If empty no callback is done.

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.

Response

HTTP/1.1 201 Created
Content-Type: application/json
{
"autostartToken": "7c40b5c9-fa74-49cf-b98c-bfe651f9a7c6",
"qrCodeImageDataUrl": "data:image/png;base64,VeryLongBase64String",
"status": "Pending",
"hintCode": "OutstandingTransaction",
"maxExtends": 0,
"currentExtend": 0,
"secondsLeftThirtySecondsInterval": 0,
"endUserIp": "194.168.2.25",
"callbackUrl": "https://myCallbackUrl",
"operations": []
}

Possible problems

Http status	Problem type	Description
400	validation	occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
404	not-found	Occurs if the requested application isn't found.
404	resource-unavailable	Occurs if the requested resource is unavailable when retrieving it from the cache.
409	invalid-application-state	Occurs if the application state is invalid for the request to be made.
409	company-not-configured	Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable.
500	fatal	Unexpected error, logs may give details about the problem

Response object specification

Property	Data type	Format	Description
@id	string	Uri identifier of the current resource
endUserIp	string	IP address of the end user.
callbackUrl	string	If callback should be done on status change, it is done to the callback url. If empty no callback is done.
autostartToken	string	Type: uuid	Autostart token to start BankId on the device client's current device.
qrCodeImageDataUrl	string	QR code in Base64 that the end user needs to scan on another device than the one used to initiate.
status	string	Pending Complete Failed
hintCode	string	OutstandingTransaction NoClient Started UserMrtd UserCallConfirm UserSign ExpiredTransaction CertificateErr UserCancel Cancelled StartFailed UserDeclinedCall
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]]
maxExtends	number	Type: int32	Maximum Extend operation calls that are allowed.
currentExtend	number	Type: int32	The amount of extend operations that have been made on this resource.
secondsLeftThirtySecondsInterval	number	Type: int32	Time left in seconds for end user to complete signing. Only updated every 30 seconds.

7. Cancel

7.1 Create Cancel

Cancel bankid signing process

Request

POST /ledger/account-onboarding/v2/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/sign-bankid-se/cancel HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json
{}

Response

HTTP/1.1 201 CREATED
Content-Type: application/json
{
}

Possible problems

Http status	Problem type	Description
404	not-found	Occurs if the requested application isn't found.
404	resource-unavailable	Occurs if the requested resource is unavailable when retrieving it from the cache.
409	invalid-application-state	Occurs if the application state is invalid for the request to be made.
409	invalid-bank-id-state	Occurs if the bankId state is invalid for the request to be made.
500	fatal	Unexpected error, logs may give details about the problem

8. Extend

8.1 Create Extend

Extend the time period for an ongoing bankid signing process

Request

POST /ledger/account-onboarding/v2/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/sign-bankid-se/extend HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json
{
}

Example of a response where Extend has been called once before (currentExtend 1), and some time has elapsed (90 seconds left).

Response

HTTP/1.1 200 OK
Content-Type: application/json
{
"maxExtends": 10,
"currentExtend": 1,
"secondsLeftThirtySecondsInterval": 90
}

8.2 Create Extend

Extend the time period for an ongoing bankid signing process

Request

POST /ledger/account-onboarding/v2/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/sign-bankid-se/extend HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json
{
}

Response

HTTP/1.1 204 NO CONTENT
Content-Type: application/json
{}

Possible problems

Http status	Problem type	Description
404	not-found	Occurs if the requested application isn't found.
404	resource-unavailable	Occurs if the requested resource is unavailable when retrieving it from the cache.
409	conflict	Occurs if the application state is invalid, see message for details.
500	fatal	Unexpected error, logs may give details about the problem.

Response object specification

Property	Data type	Format	Description
maxExtends	number	Type: int32
currentExtend	number	Type: int32
secondsLeftThirtySecondsInterval	number	Type: int32

9. Limit-upgrade-applications

Get existing limit upgrade application

9.1 Get specific Limit-upgrade-application

Request

GET /ledger/account-onboarding/v2/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId} HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json

Example of response on successfully created limit upgrade application

Response

HTTP/1.1 200 OK
Content-Type: application/json
{
"limitUpgradeApplicationId": "123e4567-e89b-12d3-a456-426614174000",
"status": "AwaitingSign",
"creditLimit": 5000.00,
"accountNo": "123456",
"languageCode": "Sv",
"specialIntent": "limit-upgrade-for-invoice-conversion",
"applicationOptions": {
"customerPreAuthenticated": false,
"preAuthorizationAmount": 5000.00
},
"kycQuestions": [
{
"questionText": "What is your current employment?",
"answer": {
"type": "single",
"required": true,
"possibleAnswers": [
{
"answerCode": "selfemployed",
"answerText": "Own business"
},
{
"answerCode": "private_employee",
"answerText": "Private employee"
},
{
"answerCode": "goverment_employee",
"answerText": "Government employee"
}
]
},
"questionCode": "employment"
},
{
"questionText": "What is your yearly income",
"answer": {
"type": "single",
"required": true,
"possibleAnswers": [
{
"answerCode": "incomeinterval1",
"answerText": "0-100 000 SEK"
},
{
"answerCode": "incomeinterval2",
"answerText": "100 001-200 000 SEK"
},
{
"answerCode": "incomeinterval3",
"answerText": "200 001-300 000 SEK"
},
{
"answerCode": "incomeinterval4",
"answerText": "Over 300 001 SEK"
}
]
},
"questionCode": "income"
}
],
"operations": []
}

Possible problems

Http status	Problem type	Description
404	not-found	Occurs if the requested resource isn't found.
404	resource-unavailable	Occurs if the requested resource is unavailable when retrieving it from the cache.
500	fatal	Unexpected error, logs may give details about the problem

9.2 Create Limit-upgrade-application

Add limit upgrade application

Request

POST /ledger/account-onboarding/v2/{ownerNo}/limit-upgrade-applications HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json
{
"creditLimit": 5000.00,
"accountNo": "123456",
"languageCode": "Sv",
"specialIntent": "limit-upgrade-for-invoice-conversion",
"applicationOptions": {
"customerPreAuthenticated": false,
"preAuthorizationAmount": 5000.00
}
}

Request object specification

Property	Data type	Format	Required	Description
creditLimit	number	Type: double Pattern: ^\d+.?(\d{1,2})?$ Max: 100000000 Min: 0	Yes	Credit limit on account applied for, can't have more than 2 decimal places
accountNo	string	Yes	The identifier of the account
ipAddress	string	Pattern: [a-z0-9.:/]*	No	Senders ip address
languageCode	string	Sv En No Da	Yes
specialIntent	string	No	Optional instruction used in special cases. Possible values (IncreaseLimitForInvoiceConversion)
applicationOptions	object	No
customerPreAuthenticated	boolean	Yes	Optional flag used when the customer is pre-authenticated. Defaults to false
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.

Example of response on successfully created limit upgrade application

Response

HTTP/1.1 201 Created
Content-Type: application/json
{
"limitUpgradeApplicationId": "123e4567-e89b-12d3-a456-426614174000",
"status": "AwaitingSign",
"creditLimit": 5000.00,
"accountNo": "123456",
"languageCode": "Sv",
"specialIntent": "limit-upgrade-for-invoice-conversion",
"applicationOptions": {
"customerPreAuthenticated": false,
"preAuthorizationAmount": 5000.00
},
"kycQuestions": [
{
"questionText": "What is your current employment?",
"answer": {
"type": "single",
"required": true,
"possibleAnswers": [
{
"answerCode": "selfemployed",
"answerText": "Own business"
},
{
"answerCode": "private_employee",
"answerText": "Private employee"
},
{
"answerCode": "goverment_employee",
"answerText": "Government employee"
}
]
},
"questionCode": "employment"
},
{
"questionText": "What is your yearly income",
"answer": {
"type": "single",
"required": true,
"possibleAnswers": [
{
"answerCode": "incomeinterval1",
"answerText": "0-100 000 SEK"
},
{
"answerCode": "incomeinterval2",
"answerText": "100 001-200 000 SEK"
},
{
"answerCode": "incomeinterval3",
"answerText": "200 001-300 000 SEK"
},
{
"answerCode": "incomeinterval4",
"answerText": "Over 300 001 SEK"
}
]
},
"questionCode": "income"
}
],
"operations": []
}

Possible problems

Http status	Problem type	Description
400	validation	Occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
404	not-found	Occurs if the requested resource isn't found.
404	resource-unavailable	Occurs if a valid account is not available.
409	account-status	Occurs if the account status is invalid for the request to be made.
409	credit-limit-already-sufficient	Occurs if the requested credit limit is invalid because it is already sufficient.
422	invalid-special-intent	Occurs if the provided special intent is invalid.
500	fatal	Unexpected error, logs may give details about the problem

Response object specification

Property	Data type	Format	Description
@id	string	Uri identifier of the current resource
creditLimit	number	Type: double Pattern: ^\d+.?(\d{1,2})?$ Max: 100000000 Min: 0	Credit limit on account applied for, can't have more than 2 decimal places
accountNo	string	The identifier of the account
ipAddress	string	Pattern: [a-z0-9.:/]*	Senders ip address
languageCode	string	Sv En No Da
specialIntent	string	Optional instruction used in special cases. Possible values (IncreaseLimitForInvoiceConversion)
applicationOptions	object
customerPreAuthenticated	boolean	Optional flag used when the customer is pre-authenticated. Defaults to false
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.
limitUpgradeApplicationId	string	LimitUpgradeApplicationId
status	string	AwaitingComplementaryInfo AwaitingVerification AwaitingSign Rejected InitializedDigitalSign SignRejectedOrFailed SignMismatch Approved InitializedKalp
kycAnswers	dynamic	The kyc resource
signBankidSe	dynamic	The sign bankid se resource
kycQuestions	array
questionCode	string	The code definition of the question
questionText	string	The translated text of the question
answer	object
type	string	The type of the expected answer: single | multi | text
required	boolean	If the answer is required
textValidationRegEx	string	The regex the answer should match
possibleAnswers	array
answerCode	string	The code definition of the answer
answerText	string	The translated text of the answer
subQuestions	array
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]]

10. Kyc-answers

Get the submited answers to kyc questions

10.1 Get list of Kyc-answers

Request

GET /ledger/account-onboarding/v2/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/kyc-answers HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json

Example of response on successfully retrieved kyc answers

Response

HTTP/1.1 200 OK
Content-Type: application/json
{
"answers": [
{
"questionCode": "employment",
"answerCode": "selfemployed"
},
{
"questionCode": "monthlyincome",
"answerCode": "monthlyincomeinterval2"
},
{
"questionCode": "ispep",
"answerCode": "false"
}
]
}

Possible problems

Http status	Problem type	Description
404	not-found	Occurs if the requested resource isn't found.
404	resource-unavailable	Occurs if the requested resource is unavailable when retrieving it from the cache.
409	kyc-not-configured	Occurs if the application does not support KYC answers due to the account profile not being configured with any.
500	fatal	Unexpected error, logs may give details about the problem

10.2 Create Kyc-answer

Submit answers to kyc questions

Request

POST /ledger/account-onboarding/v2/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/kyc-answers HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json
{
"answers": [
{
"questionCode": "employment",
"answerCode": "selfemployed"
},
{
"questionCode": "monthlyincome",
"answerCode": "monthlyincomeinterval2"
},
{
"questionCode": "ispep",
"answerCode": "false"
}
]
}

Request object specification

Property	Data type	Format	Required	Description
answers	array	Yes
questionCode	string	Yes	The code definition of the question
answerCode	string	Yes	The code definition of the answer

Example of response on successfully created kyc answers

Response

HTTP/1.1 201 Created
Content-Type: application/json
{
"answers": [
{
"questionCode": "employment",
"answerCode": "selfemployed"
},
{
"questionCode": "monthlyincome",
"answerCode": "monthlyincomeinterval2"
},
{
"questionCode": "ispep",
"answerCode": "false"
}
]
}

Possible problems

Http status	Problem type	Description
400	validation	Occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
404	not-found	Occurs if the requested resource isn't found.
404	resource-unavailable	Occurs if the requested resource is unavailable when retrieving it from the cache.
409	validation	Occurs if the validation of the resource's state fails.
409	invalid-application-state	Occurs if the application state is invalid for the request to be made.
409	kyc-not-configured	Occurs if the application does not support KYC answers due to the account profile not being configured with any.
500	fatal	Unexpected error, logs may give details about the problem

Response object specification

Property	Data type	Format	Description
@id	string	Uri identifier of the current resource
answers	array
questionCode	string	The code definition of the question
answerCode	string	The code definition of the answer

11. Verify-application

11.1 Create Verify-application

Verify the application and does a credit check if needed

Request

POST /ledger/account-onboarding/v2/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/verify-application HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json
{}

Response

HTTP/1.1 201 CREATED
Content-Type: application/json
{
}

Possible problems

Http status	Problem type	Description
404	not-found	Occurs if the requested application isn't found.
404	resource-unavailable	Occurs if the requested resource is unavailable when retrieving it from the cache.
409	invalid-application-state	Occurs if the application state is invalid for the request to be made.
422	credit-check-declined	Occurs if the credit check is denied.
500	fatal	Unexpected error, logs may give details about the problem

12. Begin-sign-bankid-no

12.1 Create Begin-sign-bankid-no

Initiate Norwegain bankid signing process

Request

POST /ledger/account-onboarding/v2/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/begin-sign-bankid-no HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json
{
"completeUrl": "https://sucessful-page?id=123",
"cancelUrl": "https://unsucessful-page?id=123",
"callbackUrl": "https://my-callback-url?id=123"
}

Request object specification

Property	Data type	Format	Required	Description
completeUrl	string	No	Url to redirect the user from Signicat Signing when signing has been completed
cancelUrl	string	No	Url to redirect the user from Signicat Signing when user choose to cancel the ongoing signing
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]

Example of successful response. This response has started a background process that begin polling for update about the signing for a limited time.

Response

HTTP/1.1 200 OK
Content-Type: application/json
{
"signingUrl": "https://example-signicat.com/std/docaction/profile-identify?request_id=123456abcdefg"
}

Possible problems

Http status	Problem type	Description
400	validation	Occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
404	not-found	Occurs if the requested application isn't found.
404	resource-unavailable	Occurs if the requested resource is unavailable when retrieving it from the cache.
409	invalid-application-state	Occurs if the application state is invalid for the request to be made.
409	company-not-configured	Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable.
500	fatal	Unexpected error, logs may give details about the problem

Response object specification

Property	Data type	Format	Description
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

13. Begin-sign-bankid-no

13.1 Create Begin-sign-bankid-no

Initiate Norwegain bankid signing process

Request

POST /ledger/account-onboarding/v2/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/begin-sign-bankid-no HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json
{
"completeUrl": "https://sucessful-page?id=123",
"cancelUrl": "https://unsucessful-page?id=123",
"callbackUrl": "https://my-callback-url?id=123"
}

Request object specification

Property	Data type	Format	Required	Description
completeUrl	string	No	Url to redirect the user from Signicat Signing when signing has been completed
cancelUrl	string	No	Url to redirect the user from Signicat Signing when user choose to cancel the ongoing signing
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]

Example of successful response. This response has started a background process that begin polling for update about the signing for a limited time.

Response

HTTP/1.1 200 OK
Content-Type: application/json
{
"signingUrl": "https://example-signicat.com/std/docaction/profile-identify?request_id=123456abcdefg"
}

Possible problems

Http status	Problem type	Description
400	validation	Occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
404	not-found	Occurs if the requested application isn't found.
404	resource-unavailable	Occurs if the requested resource is unavailable when retrieving it from the cache.
409	invalid-application-state	Occurs if the application state is invalid for the request to be made.
409	company-not-configured	Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable.
500	fatal	Unexpected error, logs may give details about the problem

Response object specification

Property	Data type	Format	Description
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

14. Sign-bankid-se

Retrieve bankid signing process data

14.1 Get list of Sign-bankid-se

Request

GET /ledger/account-onboarding/v2/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/sign-bankid-se HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json

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.

Response

HTTP/1.1 200 OK
Content-Type: application/json
{
"autostartToken": "7c40b5c9-fa74-49cf-b98c-bfe651f9a7c6",
"qrCodeImageDataUrl": "data:image/png;base64,VeryLongBase64String",
"status": "Pending",
"hintCode": "OutstandingTransaction",
"maxExtends": 0,
"currentExtend": 0,
"secondsLeftThirtySecondsInterval": 0,
"endUserIp": "194.168.2.25",
"callbackUrl": "https://myCallbackUrl",
"operations": []
}

Possible problems

Http status	Problem type	Description
404	not-found	Occurs if the requested resource isn't found.
404	resource-unavailable	Occurs if the requested resource is unavailable when retrieving it from the cache.
409	invalid-application-state	Occurs if the application state is invalid for the request to be made.
500	fatal	Unexpected error, logs may give details about the problem

14.2 Create Sign-bankid-se

Initiate bankid signing process

Request

POST /ledger/account-onboarding/v2/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/sign-bankid-se HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json
{
"endUserIp": "194.168.2.25",
"callbackUrl": "https://myCallbackUrl"
}

Request object specification

Property	Data type	Format	Required	Description
endUserIp	string	Yes	IP address of the end user.
callbackUrl	string	No	If callback should be done on status change, it is done to the callback url. If empty no callback is done.

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.

Response

HTTP/1.1 201 Created
Content-Type: application/json
{
"autostartToken": "7c40b5c9-fa74-49cf-b98c-bfe651f9a7c6",
"qrCodeImageDataUrl": "data:image/png;base64,VeryLongBase64String",
"status": "Pending",
"hintCode": "OutstandingTransaction",
"maxExtends": 0,
"currentExtend": 0,
"secondsLeftThirtySecondsInterval": 0,
"endUserIp": "194.168.2.25",
"callbackUrl": "https://myCallbackUrl",
"operations": []
}

Possible problems

Http status	Problem type	Description
400	validation	occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
404	not-found	Occurs if the requested application isn't found.
404	resource-unavailable	Occurs if the requested resource is unavailable when retrieving it from the cache.
409	invalid-application-state	Occurs if the application state is invalid for the request to be made.
409	company-not-configured	Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable.
500	fatal	Unexpected error, logs may give details about the problem

Response object specification

Property	Data type	Format	Description
@id	string	Uri identifier of the current resource
endUserIp	string	IP address of the end user.
callbackUrl	string	If callback should be done on status change, it is done to the callback url. If empty no callback is done.
autostartToken	string	Type: uuid	Autostart token to start BankId on the device client's current device.
qrCodeImageDataUrl	string	QR code in Base64 that the end user needs to scan on another device than the one used to initiate.
status	string	Pending Complete Failed
hintCode	string	OutstandingTransaction NoClient Started UserMrtd UserCallConfirm UserSign ExpiredTransaction CertificateErr UserCancel Cancelled StartFailed UserDeclinedCall
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]]
maxExtends	number	Type: int32	Maximum Extend operation calls that are allowed.
currentExtend	number	Type: int32	The amount of extend operations that have been made on this resource.
secondsLeftThirtySecondsInterval	number	Type: int32	Time left in seconds for end user to complete signing. Only updated every 30 seconds.

15. Begin-sign-mitid-dk

15.1 Create Begin-sign-mitid-dk

Initiate Danish mitid signing process

Request

POST /ledger/account-onboarding/v2/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/begin-sign-mitid-dk HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json
{}

Request object specification

Property	Data type	Format	Required	Description
completeUrl	string	No	Url to redirect the user from Signicat Signing when signing has been completed
cancelUrl	string	No	Url to redirect the user from Signicat Signing when user choose to cancel the ongoing signing
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]

Example of successful response. This response has started a background process that begins polling for update about the signing for a limited time.

Response

HTTP/1.1 200 OK
Content-Type: application/json
{}

Possible problems

Http status	Problem type	Description
400	validation	Occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
404	not-found	Occurs if the requested application isn't found.
404	resource-unavailable	Occurs if the requested resource is unavailable when retrieving it from the cache.
409	invalid-application-state	Occurs if the application state is invalid for the request to be made.
409	company-not-configured	Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable.
500	fatal	Unexpected error, logs may give details about the problem

Response object specification

Property	Data type	Format	Description
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

16. Begin-sign-mitid-dk

16.1 Create Begin-sign-mitid-dk

Initiate Danish mitid signing process

Request

POST /ledger/account-onboarding/v2/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/begin-sign-mitid-dk HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json
{}

Request object specification

Property	Data type	Format	Required	Description
completeUrl	string	No	Url to redirect the user from Signicat Signing when signing has been completed
cancelUrl	string	No	Url to redirect the user from Signicat Signing when user choose to cancel the ongoing signing
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]

Example of successful response. This response has started a background process that begins polling for update about the signing for a limited time.

Response

HTTP/1.1 200 OK
Content-Type: application/json
{}

Possible problems

Http status	Problem type	Description
400	validation	Occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
404	not-found	Occurs if the requested application isn't found.
404	resource-unavailable	Occurs if the requested resource is unavailable when retrieving it from the cache.
409	invalid-application-state	Occurs if the application state is invalid for the request to be made.
409	company-not-configured	Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable.
500	fatal	Unexpected error, logs may give details about the problem

Response object specification

Property	Data type	Format	Description
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

17. Redirect-kalp-dk

17.1 Create Redirect-kalp-dk

Creates or gets a url for the Kalp page that the customer need to fill out to continue the application process

Request

POST /ledger/account-onboarding/v2/{ownerNo}/offers/{accountProfile}/applications/{applicationId}/redirect-kalp-dk HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json
{}

Example of a response from the Application RedirectKalpDk operation

NO DESCRIPTION SET

Response

HTTP/1.1 200 OK
Content-Type: application/json
{
"redirectUrl": "https://flow.monthio.com/?sessionId=kalpid"
}

Possible problems

Http status	Problem type	Description
404	not-found	Occurs if the requested application isn't found.
404	resource-unavailable	Occurs if the requested resource is unavailable when retrieving it from the cache.
409	conflict	Occurs if the application state is invalid for the request to be made.
409	invalid-application-state	Occurs if the application state is invalid for the request to be made.
409	company-not-configured	Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable.
409	kalp-not-configured	Occurs when account profile is not configured for Kalp.
500	fatal	Unexpected error, logs may give details about the problem

Response object specification

Property	Data type	Format	Description
redirectUrl	string

18. Redirect-kalp-dk

18.1 Create Redirect-kalp-dk

Creates or gets a url for the Kalp page that the customer need to fill out to continue the limit upgrade application process

Request

POST /ledger/account-onboarding/v2/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/redirect-kalp-dk HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json
{}

Example of a response from the Limit Upgrade Application RedirectKalpDk operation

Response

HTTP/1.1 200 OK
Content-Type: application/json
{
"redirectUrl": "https://flow.monthio.com/?sessionId=kalpid"
}

Possible problems

Http status	Problem type	Description
404	not-found	Occurs if the requested application isn't found.
404	resource-unavailable	Occurs if the requested resource is unavailable when retrieving it from the cache.
409	conflict	Occurs if the application state is invalid for the request to be made.
409	invalid-application-state	Occurs if the application state is invalid for the request to be made.
409	company-not-configured	Occurs when operations is not supported with the ledger current configuration. This configuration may or may not be immutable.
409	kalp-not-configured	Occurs when account profile is not configured for Kalp.
500	fatal	Unexpected error, logs may give details about the problem

Response object specification

Property	Data type	Format	Description
redirectUrl	string

19. Cancel

19.1 Create Cancel

Cancel bankid signing process

Request

POST /ledger/account-onboarding/v2/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/sign-bankid-se/cancel HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json
{}

Response

HTTP/1.1 201 CREATED
Content-Type: application/json
{
}

Possible problems

Http status	Problem type	Description
404	not-found	Occurs if the requested application isn't found.
404	resource-unavailable	Occurs if the requested resource is unavailable when retrieving it from the cache.
409	invalid-application-state	Occurs if the application state is invalid for the request to be made.
409	invalid-bank-id-state	Occurs if the bankId state is invalid for the request to be made.
500	fatal	Unexpected error, logs may give details about the problem

20. Extend

20.1 Create Extend

Extend the time period for an ongoing bankid signing process

Request

POST /ledger/account-onboarding/v2/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/sign-bankid-se/extend HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json
{
}

Example of a response where Extend has been called once before (currentExtend 1), and some time has elapsed (90 seconds left).

Response

HTTP/1.1 200 OK
Content-Type: application/json
{
"maxExtends": 10,
"currentExtend": 1,
"secondsLeftThirtySecondsInterval": 90
}

20.2 Create Extend

Extend the time period for an ongoing bankid signing process

Request

POST /ledger/account-onboarding/v2/{ownerNo}/limit-upgrade-applications/{limitUpgradeApplicationId}/sign-bankid-se/extend HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json
{
}

Response

HTTP/1.1 204 NO CONTENT
Content-Type: application/json
{}

Possible problems

Http status	Problem type	Description
404	not-found	Occurs if the requested application isn't found.
404	resource-unavailable	Occurs if the requested resource is unavailable when retrieving it from the cache.
409	conflict	Occurs if the application state is invalid, see message for details.
500	fatal	Unexpected error, logs may give details about the problem.

Response object specification

Property	Data type	Format	Description
maxExtends	number	Type: int32
currentExtend	number	Type: int32
secondsLeftThirtySecondsInterval	number	Type: int32

21. Create-account-without-application

21.1 Create Create-account-without-application

Create a new account for a consumer, with the selected offer. Only one account i permitted for a combination of consumer and offer

Request

POST /ledger/account-onboarding/v2/{ownerNo}/offers/{accountProfile}/create-account-without-application HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json
{
"customerNo": "951753456",
"creditLimit": 5000.00
}

Request object specification

Property	Data type	Format	Required	Description
customerNo	string	Yes	The identifier of the customer
creditLimit	number	Type: double Pattern: ^\d+.?(\d{1,2})?$ Max: 100000000 Min: 0	Yes	Credit limit on account applied for, can't have more than 2 decimal places

Example of response on successfully created account.

Response

HTTP/1.1 200 OK
Content-Type: application/json
{
"accountNo": "123456",
"customerNo": "951753456",
"creditLimit": 5000.00
}

Possible problems

Http status	Problem type	Description
400	validation	occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
400	not-found	occurs if the customer supplied does not exist
500	fatal	Unexpected error, logs may give details about the problem

Response object specification

Property	Data type	Format	Description
@id	string	Uri identifier of the current resource
customerNo	string	The identifier of the customer
creditLimit	number	Type: double Pattern: ^\d+.?(\d{1,2})?$ Max: 100000000 Min: 0	Credit limit on account applied for, can't have more than 2 decimal places
accountNo	string	Account number

22. Limit-upgrade-without-application

22.1 Create Limit-upgrade-without-application

Update limit for a account, it's possible to both lower and increase the amount.

Request

POST /ledger/account-onboarding/v2/{ownerNo}/limit-upgrade-without-application HTTP/1.1
Host: -
Authorization: Bearer<Token>
Content-Type: application/json
{
"accountNo": "123456",
"creditLimit": 5000.00
}

Request object specification

Property	Data type	Format	Required	Description
accountNo	string	Yes	The identifier of the account
creditLimit	number	Type: double Pattern: ^\d+.?(\d{1,2})?$ Max: 100000000 Min: 0	Yes	Credit limit on account applied for, can't have more than 2 decimal places

Example of response on successfully updated account limit.

Response

HTTP/1.1 200 OK
Content-Type: application/json
{
"accountNo": "123456",
"creditLimit": 5000.00
}

Possible problems

Http status	Problem type	Description
400	validation	occurs if any of the input validation fails, it is described in the problem which parameter that failed the validation
400	account-name-not-found	occurs if account isn't found.
409	company-not-configured	occurs if company supplied isn't configured
500	fatal	Unexpected error, logs may give details about the problem

Response object specification

Property	Data type	Format	Description
@id	string	Uri identifier of the current resource
accountNo	string	The identifier of the account
creditLimit	number	Type: double Pattern: ^\d+.?(\d{1,2})?$ Max: 100000000 Min: 0	Credit limit on account applied for, can't have more than 2 decimal places

Problems

All errors from the api are returned in the form of "problems" (response body), except for the http status code itself.
The problem object contain more detailed info on what the error is. The "type" property can be used to programmatically interpret the error as it contains a code definition of the problem.
Other properties can be useful for logging and subsequent troubleshooting. Some problems are extended with additional parameters so it may be a good idea to log response body as raw data to include these.

Problems of type validation does contain an additional list ("Problems") that describes exactly which parameter that failed the validation

Example

Response

HTTP/1.1 400 Error
Content-Type: application/problem+json
{
"Type" : "ledger/{domain}/v1/problems/validation",
"Title" : "A validation error occurred",
"Status" : 400,
"Instance" : "215d4206-ca35-4f43-85ad-169c8f6d4ec1",
"Detail" : "A validation error occurred. Please fix the problems mentioned in the 'problems' property below.",
"Problems" :
{
"amount" : [
"Expected value between [0,01]-[79228162514264337593543950335] actual [0]"
]
}
}