Wiki source code of 2. Customer
Last modified by Jenny Eklund on 2026/08/19 11:28
| 1 | (% class="jumbotron" %) |
| 2 | ((( |
| 3 | (% class="container" %) |
| 4 | ((( |
| 5 | Integrate to **PayEx Customer API ** |
| 6 | ))) |
| 7 | ))) |
| 8 | |
| 9 | == Introduction == |
| 10 | |
| 11 | (% class="lead" %) |
| 12 | This api is used to create/read customers or change properties related to the customer. |
| 13 | |
| 14 | [[image:image260819.png||alt="CustomerApiImage"]] |
| 15 | |
| 16 | Each resource in the API corresponds to its own route. All routes are structured according to a specific standard, explained below |
| 17 | |
| 18 | The below route is an example of a route towards resource2Id, to operate on this resource you must also include the ids of its parentresources in the route. |
| 19 | //lf-api.payex.com/ledger/**{Subdomain}**/v1/**{LedgerNumber}**/resource1/**{resource1Id}**/resource2/**{resource2Id}**// |
| 20 | |
| 21 | (% class="table-bordered table-striped" %) |
| 22 | |=(% style="width: 604px;" %)Route segment|=(% style="width: 2790px;" %)Description |
| 23 | |(% style="width:604px" %)Subdomain|(% style="width:2790px" %)In this part of the API it will be **customer** |
| 24 | |(% style="width:604px" %)LedgerNumber|(% style="width:2790px" %)The ledger identifier/number at PayEx |
| 25 | |(% style="width:604px" %)resource1Id|(% style="width:2790px" %)Identifier of resource1 |
| 26 | |(% style="width:604px" %)resource2Id|(% style="width:2790px" %)identifier of resource2, subresource to resource1 |
| 27 | |
| 28 | (% class="wikigeneratedid" %) |
| 29 | Routes that occurs in examples of this documentation will use the following identifiers |
| 30 | |
| 31 | (% class="table-bordered table-striped" %) |
| 32 | |=(% style="width: 488px;" %)Resource|=(% style="width: 2271px;" %)Identifier |
| 33 | |(% style="width:488px" %)LedgerNumber|(% style="width:2271px" %)XXX |
| 34 | |(% style="width:488px" %)Customer|(% style="width:2271px" %)NNN (CustomerNo) |
| 35 | |
| 36 | = Swagger = |
| 37 | |
| 38 | [[Swagger.json-2026-08-19>>attach:Swagger_Releases-502848.txt]] |
| 39 | |
| 40 | == Changelog == |
| 41 | |
| 42 | 2023-01-17 |
| 43 | Added //surpluses// property to the Customer resource with planned release 2024-01-23 |
| 44 | |
| 45 | 2023-11-27 |
| 46 | Added new resource Surpluses & added a general 404 not-found to problems list. |
| 47 | |
| 48 | 2024-04-26 |
| 49 | |
| 50 | Added TaxIdentificationNumber to the Customer resource with planned release 2024-05-28 |
| 51 | |
| 52 | 2024-05-15 |
| 53 | |
| 54 | Added Consent and underlying resources with planned release 2024-05-28. Updated Introduction API overview visual. |
| 55 | |
| 56 | 2025-02-14 |
| 57 | |
| 58 | Added operation Update-Kyc-Answers and updates to the Customer resource Operations list to reflect that. Planned release 2025-03-04 |
| 59 | |
| 60 | Added resource Kyc-Questions. Planned release 2025-03-04 |
| 61 | |
| 62 | 2026-01-27 |
| 63 | Added new possible value for to ActiveConsents - PharmaciesSE |
| 64 | |
| 65 | 2026-07-08 |
| 66 | Added new secontion for Trusted Seller Group Consents |
| 67 | |
| 68 | 2026-08-19 |
| 69 | Added resource Affordability-Questions. Planned release 2026-09-22 |
| 70 | |
| 71 | |
| 72 | == 1. Customers == |
| 73 | |
| 74 | |
| 75 | Get a customer from ledger using customer number as identifier |
| 76 | |
| 77 | ==== 1.1 Get specific Customer ==== |
| 78 | |
| 79 | {{code language="http" title="**Request**"}} |
| 80 | GET /ledger/customer/v1/{ownerNo}/customers/{customerNo} HTTP/1.1 |
| 81 | Host: - |
| 82 | Authorization: Bearer<Token> |
| 83 | Content-Type: application/json |
| 84 | |
| 85 | {{/code}} |
| 86 | |
| 87 | Get customer |
| 88 | |
| 89 | {{code language="http" title="**Response**"}} |
| 90 | HTTP/1.1 200 OK |
| 91 | Content-Type: application/json |
| 92 | |
| 93 | { |
| 94 | "customerNo": "YYY", |
| 95 | "nationalIdentifier": { |
| 96 | "regNo": "YYYYMMDD-NNNN", |
| 97 | "countryCode": "SE" |
| 98 | }, |
| 99 | "vatNo": "SE101010101001", |
| 100 | "legalEntity": "consumer", |
| 101 | "name": "Test Testsson", |
| 102 | "emailAddress": "Test@test.se", |
| 103 | "protectedIdentity": false, |
| 104 | "preferredLanguageCode": "SV", |
| 105 | "legalStatus": "active", |
| 106 | "msisdn": "+467040000000", |
| 107 | "activeConsents": [ |
| 108 | "Betalingsservice", |
| 109 | "Avtalegiro", |
| 110 | "RecurringCard" |
| 111 | ], |
| 112 | "ediAddressInfo": { |
| 113 | "van": "ABCXYZ", |
| 114 | "interChangeRecipient": "Recipient_ID1", |
| 115 | "buyerId": "123465" |
| 116 | }, |
| 117 | "surpluses": "/ledger/customer/v1/xxx/customers/yyy/surpluses", |
| 118 | "legalAddress": "/ledger/customer/v1/xxx/customers/yyy/legal-address", |
| 119 | "billingAddress": "/ledger/customer/v1/xxx/customers/yyy/billing-address", |
| 120 | "consent": "/ledger/customer/v1/xxx/customers/yyy/consent", |
| 121 | "operations": [ |
| 122 | { |
| 123 | "rel": "partial-update-customer", |
| 124 | "method": "PATCH", |
| 125 | "href": "/ledger/customer/v1/xxx/customers/yyy" |
| 126 | }, |
| 127 | { |
| 128 | "rel": "add-billing-address", |
| 129 | "method": "POST", |
| 130 | "href": "/ledger/customer/v1/xxx/customers/yyy/billing-address" |
| 131 | }, |
| 132 | { |
| 133 | "rel": "update-kyc-answers", |
| 134 | "method": "POST", |
| 135 | "href": "/ledger/customer/v1/xxx/customers/yyy/update-kyc-answers" |
| 136 | } |
| 137 | ], |
| 138 | "taxIdentificationNumber": "1234567890" |
| 139 | } |
| 140 | {{/code}} |
| 141 | |
| 142 | |
| 143 | |
| 144 | **Possible problems** |
| 145 | |
| 146 | (% class="table-bordered table-striped" %) |
| 147 | |=Http status |=Problem type |=Description |
| 148 | |500 |internal-server-error |The requested resource '' could not be processed. Please contact support. |
| 149 | |500 |handled-exception |The requested resource '' could not be processed. Please contact support. |
| 150 | |500 |unhandled-exception |The requested resource '' could not be processed. Please contact support. |
| 151 | |400 |general-validation-error |Validation error when accessing resource . Please refer to the problems property for additional details. |
| 152 | |400 |validation |Validation error when accessing resource . Please refer to the problems property for additional details. |
| 153 | |404 |customer-does-not-exists |The requested resource '' was not found. |
| 154 | |404 |customer-not-found |The requested resource '' was not found. |
| 155 | |
| 156 | ==== 1.2 Create Customer ==== |
| 157 | |
| 158 | Create a new customer in ledger |
| 159 | |
| 160 | {{code language="http" title="**Request**"}} |
| 161 | POST /ledger/customer/v1/{ownerNo}/customers HTTP/1.1 |
| 162 | Host: - |
| 163 | Authorization: Bearer<Token> |
| 164 | Content-Type: application/json |
| 165 | |
| 166 | |
| 167 | {{/code}} |
| 168 | |
| 169 | |
| 170 | **Request object specification** |
| 171 | |
| 172 | (% class="table-bordered table-striped" %) |
| 173 | |=Property |=Data type|=Format|=Required|=Description |
| 174 | |customerNo |string | |No | |
| 175 | |=ediAddressInfo |object | |No | |
| 176 | | van |string | |No | |
| 177 | | interChangeRecipient |string | |No | |
| 178 | | buyerId |string | |No | |
| 179 | |emailAddress |string | |No | |
| 180 | |=legalAddress |object | |No | |
| 181 | | addressee |string | |No | |
| 182 | | streetAddress |string | |No | |
| 183 | | zipCode |string | |No | |
| 184 | | city |string | |No | |
| 185 | | coAddress |string | |No | |
| 186 | | countryCode |string | |No | |
| 187 | |=billingAddress |object | |No | |
| 188 | |legalEntity |string | |No | |
| 189 | |msisdn |string | |No | |
| 190 | |name |string | |No | |
| 191 | |=nationalIdentifier |object | |No | |
| 192 | | regNo |string | |Yes | |
| 193 | | countryCode |string |Pattern: ^[A-Z]{2}$ |Yes | |
| 194 | |protectedIdentity |boolean | |Yes | |
| 195 | |preferredLanguageCode |string | |No | |
| 196 | |vatNo |string | |No | |
| 197 | |distributionType |string | |No | |
| 198 | |taxIdentificationNumber |string | |No | |
| 199 | |
| 200 | Create a customer response |
| 201 | |
| 202 | {{code language="http" title="**Response**"}} |
| 203 | HTTP/1.1 201 Created |
| 204 | Content-Type: application/json |
| 205 | |
| 206 | { |
| 207 | "customerNo": "YYY", |
| 208 | "@id": "/ledger/customer/v1/xxx/customers/yyy" |
| 209 | } |
| 210 | {{/code}} |
| 211 | |
| 212 | |
| 213 | **Possible problems** |
| 214 | |
| 215 | (% class="table-bordered table-striped" %) |
| 216 | |=Http status |=Problem type |=Description |
| 217 | |500 |internal-server-error |The requested resource '' could not be processed. Please contact support. |
| 218 | |500 |handled-exception |The requested resource '' could not be processed. Please contact support. |
| 219 | |500 |unhandled-exception |The requested resource '' could not be processed. Please contact support. |
| 220 | |400 |general-validation-error |Validation error when accessing resource . Please refer to the problems property for additional details. |
| 221 | |400 |validation |Validation error when accessing resource . Please refer to the problems property for additional details. |
| 222 | |400 |invalid-reg-no |Validation error when accessing resource . Please refer to the problems property for additional details. |
| 223 | |400 |invalid-phone-no |Validation error when accessing resource . Please refer to the problems property for additional details. |
| 224 | |422 |customer-already-exists |The requested resource '' could not be processed. Customer Already Exists |
| 225 | |
| 226 | |
| 227 | **Response object specification** |
| 228 | |
| 229 | (% class="table-bordered table-striped" %) |
| 230 | |=Property |=Data type|=Format|=Description |
| 231 | |@id |string | |Uri identifier of the current resource |
| 232 | |customerNo |string | | |
| 233 | |=nationalIdentifier |object | | |
| 234 | | regNo |string | | |
| 235 | | countryCode |string |Pattern: ^[A-Z]{2}$ | |
| 236 | |vatNo |string | | |
| 237 | |legalEntity |string | | |
| 238 | |name |string | | |
| 239 | |emailAddress |string | | |
| 240 | |protectedIdentity |boolean | | |
| 241 | |preferredLanguageCode |string | | |
| 242 | |legalStatus |string | | |
| 243 | |msisdn |string | | |
| 244 | |=activeConsents |array | | |
| 245 | | |string | | |
| 246 | |=ediAddressInfo |object | | |
| 247 | | van |string | | |
| 248 | | interChangeRecipient |string | | |
| 249 | | buyerId |string | | |
| 250 | |surpluses |dynamic | | |
| 251 | |legalAddress |dynamic | | |
| 252 | |billingAddress |dynamic | | |
| 253 | |consent |dynamic | | |
| 254 | |distributionType |string | | |
| 255 | |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]] |
| 256 | |taxIdentificationNumber |string | | |
| 257 | |
| 258 | == 2. Active-disbursement-orders == |
| 259 | |
| 260 | |
| 261 | list active surpluse disbursement orders pending disbursement batch is run. |
| 262 | |
| 263 | ==== 2.1 Get list of Active-disbursement-orders ==== |
| 264 | |
| 265 | {{code language="http" title="**Request**"}} |
| 266 | GET /ledger/customer/v1/{ownerNo}/customers/{customerNo}/surpluses/{surplusId}/active-disbursement-orders HTTP/1.1 |
| 267 | Host: - |
| 268 | Authorization: Bearer<Token> |
| 269 | Content-Type: application/json |
| 270 | |
| 271 | {{/code}} |
| 272 | |
| 273 | Get customer billing-address |
| 274 | |
| 275 | {{code language="http" title="**Response**"}} |
| 276 | HTTP/1.1 200 OK |
| 277 | Content-Type: application/json |
| 278 | |
| 279 | { |
| 280 | "items": [ |
| 281 | { |
| 282 | "operations": [], |
| 283 | "swedishBankAccount": { |
| 284 | "accountNo": "1234567890", |
| 285 | "accountType": "BGSE" |
| 286 | } |
| 287 | } |
| 288 | ], |
| 289 | "navigation": { |
| 290 | "@id": "/ledger/customer/v1/xxx/customers/yyy/surpluses/zzz/active-disbursement-orders" |
| 291 | } |
| 292 | } |
| 293 | {{/code}} |
| 294 | |
| 295 | |
| 296 | |
| 297 | **Possible problems** |
| 298 | |
| 299 | (% class="table-bordered table-striped" %) |
| 300 | |=Http status |=Problem type |=Description |
| 301 | |500 |internal-server-error |The requested resource '' could not be processed. Please contact support. |
| 302 | |500 |handled-exception |The requested resource '' could not be processed. Please contact support. |
| 303 | |500 |unhandled-exception |The requested resource '' could not be processed. Please contact support. |
| 304 | |400 |general-validation-error |Validation error when accessing resource . Please refer to the problems property for additional details. |
| 305 | |400 |validation |Validation error when accessing resource . Please refer to the problems property for additional details. |
| 306 | |404 |customer-does-not-exists |The requested resource '' was not found. |
| 307 | |404 |customer-not-found |The requested resource '' was not found. |
| 308 | |
| 309 | ==== 2.2 Create Active-disbursement-order ==== |
| 310 | |
| 311 | Add a disbursement order. Disburses all available funds on surplus account, when disbursement batch is run |
| 312 | |
| 313 | {{code language="http" title="**Request**"}} |
| 314 | POST /ledger/customer/v1/{ownerNo}/customers/{customerNo}/surpluses/{surplusId}/active-disbursement-orders HTTP/1.1 |
| 315 | Host: - |
| 316 | Authorization: Bearer<Token> |
| 317 | Content-Type: application/json |
| 318 | |
| 319 | { |
| 320 | "swedishBankAccount": { |
| 321 | "accountNo": "NNN", |
| 322 | "accountType": "BGSE | PGSE | BKSE | PKSE" |
| 323 | } |
| 324 | } |
| 325 | {{/code}} |
| 326 | |
| 327 | |
| 328 | **Request object specification** |
| 329 | |
| 330 | (% class="table-bordered table-striped" %) |
| 331 | |=Property |=Data type|=Format|=Required|=Description |
| 332 | |activeDisbursementOrdersId |string | |No | |
| 333 | |=norwegianBankAccount |object | |No | |
| 334 | | accountNo |string | |Yes | |
| 335 | |=swedishBankAccount |object | |No | |
| 336 | | accountNo |string | |Yes | |
| 337 | | accountType |string | |Yes | |
| 338 | |=international |object | |No | |
| 339 | | iban |string | |Yes | |
| 340 | | bic |string | |Yes | |
| 341 | |=swedishSus |object | |No | |
| 342 | |= nationalIdentifier |object | |No | |
| 343 | | regNo |string | |No | |
| 344 | | countryCode |string | |No | |
| 345 | |= address |object | |No | |
| 346 | | addressee |string | |No | |
| 347 | | streetAddress |string | |No | |
| 348 | | city |string | |No | |
| 349 | | zipCode |string | |No | |
| 350 | | countryCode |string | |No | |
| 351 | | coAddress |string | |No | |
| 352 | |
| 353 | {{code language="http" title="**Response**"}} |
| 354 | HTTP/1.1 201 CREATED |
| 355 | Content-Type: application/json |
| 356 | |
| 357 | { |
| 358 | } |
| 359 | {{/code}} |
| 360 | |
| 361 | |
| 362 | **Response object specification** |
| 363 | |
| 364 | (% class="table-bordered table-striped" %) |
| 365 | |=Property |=Data type|=Format|=Description |
| 366 | |=items |array | | |
| 367 | | @id |string | |Uri identifier of the current resource |
| 368 | | activeDisbursementOrdersId |string | | |
| 369 | | 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]] |
| 370 | |= norwegianBankAccount |object | | |
| 371 | | accountNo |string | | |
| 372 | |= swedishBankAccount |object | | |
| 373 | | accountNo |string | | |
| 374 | | accountType |string | | |
| 375 | |= international |object | | |
| 376 | | iban |string | | |
| 377 | | bic |string | | |
| 378 | |= swedishSus |object | | |
| 379 | |= nationalIdentifier |object | | |
| 380 | | regNo |string | | |
| 381 | | countryCode |string | | |
| 382 | |= address |object | | |
| 383 | | addressee |string | | |
| 384 | | streetAddress |string | | |
| 385 | | city |string | | |
| 386 | | zipCode |string | | |
| 387 | | countryCode |string | | |
| 388 | | coAddress |string | | |
| 389 | |=navigation |object | | |
| 390 | | @id |string |Type: uri |The current result view. |
| 391 | | first |string |Type: uri |Link to the first results. |
| 392 | | previous |string |Type: uri |Link to the previous results. |
| 393 | | next |string |Type: uri |Link to the next results. |
| 394 | |
| 395 | == 3. Surpluses == |
| 396 | |
| 397 | |
| 398 | List all available surpluses on the customer |
| 399 | |
| 400 | ==== 3.1 Get list of Surpluses ==== |
| 401 | |
| 402 | {{code language="http" title="**Request**"}} |
| 403 | GET /ledger/customer/v1/{ownerNo}/customers/{customerNo}/surpluses HTTP/1.1 |
| 404 | Host: - |
| 405 | Authorization: Bearer<Token> |
| 406 | Content-Type: application/json |
| 407 | |
| 408 | {{/code}} |
| 409 | |
| 410 | Get surpluses list |
| 411 | |
| 412 | {{code language="http" title="**Response**"}} |
| 413 | HTTP/1.1 200 OK |
| 414 | Content-Type: application/json |
| 415 | |
| 416 | { |
| 417 | "items": [ |
| 418 | { |
| 419 | "surplusId": "123", |
| 420 | "balance": 10, |
| 421 | "currency": "SEK", |
| 422 | "date": "2026-08-16T00:00:00+02:00", |
| 423 | "status": "open", |
| 424 | "invoice": "/ledger/invoice/v1/XXX/invoices/AAA", |
| 425 | "activeDisbursementOrders": "/ledger/customer/v1/xxx/customers/yyy/surpluses/123/active-disbursement-orders", |
| 426 | "operations": [ |
| 427 | { |
| 428 | "rel": "active-disbursement-orders", |
| 429 | "method": "POST", |
| 430 | "href": "/ledger/customer/v1/xxx/customers/yyy/surpluses/123/active-disbursement-orders" |
| 431 | } |
| 432 | ], |
| 433 | "@id": "/ledger/customer/v1/xxx/customers/yyy/surpluses/123" |
| 434 | }, |
| 435 | { |
| 436 | "surplusId": "456", |
| 437 | "balance": 20, |
| 438 | "currency": "SEK", |
| 439 | "date": "2026-08-14T00:00:00+02:00", |
| 440 | "status": "pending-disbursement", |
| 441 | "account": "/ledger/account/v1/XXX/accounts/BBB", |
| 442 | "activeDisbursementOrders": "/ledger/customer/v1/xxx/customers/yyy/surpluses/456/active-disbursement-orders", |
| 443 | "operations": [ |
| 444 | { |
| 445 | "rel": "active-disbursement-orders", |
| 446 | "method": "POST", |
| 447 | "href": "/ledger/customer/v1/xxx/customers/yyy/surpluses/456/active-disbursement-orders" |
| 448 | } |
| 449 | ], |
| 450 | "@id": "/ledger/customer/v1/xxx/customers/yyy/surpluses/456" |
| 451 | }, |
| 452 | { |
| 453 | "surplusId": "789", |
| 454 | "balance": 30, |
| 455 | "currency": "SEK", |
| 456 | "date": "2026-08-07T00:00:00+02:00", |
| 457 | "status": "pending-regulate", |
| 458 | "invoice": "/ledger/invoice/v1/XXX/invoices/AAA", |
| 459 | "activeDisbursementOrders": "/ledger/customer/v1/xxx/customers/yyy/surpluses/789/active-disbursement-orders", |
| 460 | "operations": [ |
| 461 | { |
| 462 | "rel": "active-disbursement-orders", |
| 463 | "method": "POST", |
| 464 | "href": "/ledger/customer/v1/xxx/customers/yyy/surpluses/789/active-disbursement-orders" |
| 465 | } |
| 466 | ], |
| 467 | "@id": "/ledger/customer/v1/xxx/customers/yyy/surpluses/789" |
| 468 | } |
| 469 | ], |
| 470 | "navigation": { |
| 471 | "@id": "/ledger/customer/v1/xxx/customers/yyy/surpluses" |
| 472 | } |
| 473 | } |
| 474 | {{/code}} |
| 475 | |
| 476 | |
| 477 | A surplus is the remaining value from a payment that was greater than the current debt, also referred as an 'overpayment'. Each instance of an overpayment will create a new surplus. A surplus will often have a connection to an account or invoice based of where the payment was placed but surpluses without connection to an account or invoice also exist. Surpluses can be used to settle upcoming debt or be disbursed. |
| 478 | |
| 479 | ==== 3.2 Get specific Surpluse ==== |
| 480 | |
| 481 | {{code language="http" title="**Request**"}} |
| 482 | GET /ledger/customer/v1/{ownerNo}/customers/{customerNo}/surpluses/{surplusId} HTTP/1.1 |
| 483 | Host: - |
| 484 | Authorization: Bearer<Token> |
| 485 | Content-Type: application/json |
| 486 | |
| 487 | {{/code}} |
| 488 | |
| 489 | Get single surplus |
| 490 | |
| 491 | {{code language="http" title="**Response**"}} |
| 492 | HTTP/1.1 200 OK |
| 493 | Content-Type: application/json |
| 494 | |
| 495 | { |
| 496 | "surplusId": "YYY", |
| 497 | "balance": 10, |
| 498 | "currency": "SEK", |
| 499 | "date": "2026-08-16T00:00:00+02:00", |
| 500 | "status": "open", |
| 501 | "invoice": "/ledger/invoice/v1/XXX/invoices/AAA", |
| 502 | "account": "/ledger/account/v1/XXX/accounts/BBB", |
| 503 | "activeDisbursementOrders": "/ledger/customer/v1/xxx/customers/yyy/surpluses/yyy/active-disbursement-orders", |
| 504 | "operations": [ |
| 505 | { |
| 506 | "rel": "active-disbursement-orders", |
| 507 | "method": "POST", |
| 508 | "href": "/ledger/customer/v1/xxx/customers/yyy/surpluses/yyy/active-disbursement-orders" |
| 509 | } |
| 510 | ], |
| 511 | "@id": "/ledger/customer/v1/XXX/customers/AAA/surpluses/YYY" |
| 512 | } |
| 513 | {{/code}} |
| 514 | |
| 515 | |
| 516 | |
| 517 | **Response object specification** |
| 518 | |
| 519 | (% class="table-bordered table-striped" %) |
| 520 | |=Property |=Data type|=Format|=Description |
| 521 | |@id |string | |Uri identifier of the current resource |
| 522 | |surplusId |string | | |
| 523 | |balance |number |Type: double | |
| 524 | |currency |string | | |
| 525 | |date |string |Type: date-time | |
| 526 | |status |string | | |
| 527 | |invoice |string | | |
| 528 | |account |string | | |
| 529 | |activeDisbursementOrders |dynamic | | |
| 530 | |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]] |
| 531 | |
| 532 | == 4. Trusted-seller-groups == |
| 533 | |
| 534 | |
| 535 | Get details about the customer's active Consent. |
| 536 | |
| 537 | ==== 4.1 Get list of Trusted-seller-groups ==== |
| 538 | |
| 539 | {{code language="http" title="**Request**"}} |
| 540 | GET /ledger/customer/v1/{ownerNo}/customers/{customerNo}/consent/trusted-seller-groups HTTP/1.1 |
| 541 | Host: - |
| 542 | Authorization: Bearer<Token> |
| 543 | Content-Type: application/json |
| 544 | |
| 545 | {{/code}} |
| 546 | |
| 547 | Get consent list |
| 548 | |
| 549 | {{code language="http" title="**Response**"}} |
| 550 | HTTP/1.1 200 OK |
| 551 | Content-Type: application/json |
| 552 | |
| 553 | { |
| 554 | "items": [ |
| 555 | { |
| 556 | "consentType": "ccccc1", |
| 557 | "operations": [ |
| 558 | { |
| 559 | "rel": "delete-trusted-seller-group", |
| 560 | "method": "DELETE", |
| 561 | "href": "/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups/ccccc1" |
| 562 | } |
| 563 | ], |
| 564 | "@id": "/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups/ccccc1" |
| 565 | }, |
| 566 | { |
| 567 | "consentType": "ccccc2", |
| 568 | "operations": [ |
| 569 | { |
| 570 | "rel": "delete-trusted-seller-group", |
| 571 | "method": "DELETE", |
| 572 | "href": "/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups/ccccc2" |
| 573 | } |
| 574 | ], |
| 575 | "@id": "/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups/ccccc2" |
| 576 | } |
| 577 | ], |
| 578 | "navigation": { |
| 579 | "@id": "/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups" |
| 580 | } |
| 581 | } |
| 582 | {{/code}} |
| 583 | |
| 584 | |
| 585 | |
| 586 | **Possible problems** |
| 587 | |
| 588 | (% class="table-bordered table-striped" %) |
| 589 | |=Http status |=Problem type |=Description |
| 590 | |400 |validation |Occurs if the validation of the request fails, it is described in the problem why the input is invalid. |
| 591 | |404 |not-found |Occurs if the requested resource is not found. |
| 592 | |409 |conflict |Occurs if the requested resource already exists. |
| 593 | |500 |fatal |Unexpected error, logs may give details about the problem |
| 594 | |
| 595 | Get details about the customer's active Consent. |
| 596 | |
| 597 | ==== 4.2 Get specific Trusted-seller-group ==== |
| 598 | |
| 599 | {{code language="http" title="**Request**"}} |
| 600 | GET /ledger/customer/v1/{ownerNo}/customers/{customerNo}/consent/trusted-seller-groups/{consentType} HTTP/1.1 |
| 601 | Host: - |
| 602 | Authorization: Bearer<Token> |
| 603 | Content-Type: application/json |
| 604 | |
| 605 | {{/code}} |
| 606 | |
| 607 | Get single consent |
| 608 | |
| 609 | {{code language="http" title="**Response**"}} |
| 610 | HTTP/1.1 200 OK |
| 611 | Content-Type: application/json |
| 612 | |
| 613 | { |
| 614 | "consentType": "ccccc", |
| 615 | "operations": [ |
| 616 | { |
| 617 | "rel": "delete-trusted-seller-group", |
| 618 | "method": "DELETE", |
| 619 | "href": "/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups/ccccc" |
| 620 | } |
| 621 | ] |
| 622 | } |
| 623 | {{/code}} |
| 624 | |
| 625 | |
| 626 | |
| 627 | **Possible problems** |
| 628 | |
| 629 | (% class="table-bordered table-striped" %) |
| 630 | |=Http status |=Problem type |=Description |
| 631 | |400 |validation |Occurs if the validation of the request fails, it is described in the problem why the input is invalid. |
| 632 | |404 |not-found |Occurs if the requested resource is not found. |
| 633 | |409 |conflict |Occurs if the requested resource already exists. |
| 634 | |500 |fatal |Unexpected error, logs may give details about the problem |
| 635 | |
| 636 | ==== 4.3 Create Trusted-seller-group ==== |
| 637 | |
| 638 | Save a pdf Consent document as a Base64 string for specific CustomerNo and ConsentType. |
| 639 | |
| 640 | {{code language="http" title="**Request**"}} |
| 641 | POST /ledger/customer/v1/{ownerNo}/customers/{customerNo}/consent/trusted-seller-groups HTTP/1.1 |
| 642 | Host: - |
| 643 | Authorization: Bearer<Token> |
| 644 | Content-Type: application/json |
| 645 | |
| 646 | { |
| 647 | "consentType": "PharmaciesSE", |
| 648 | "applicationDocument": { |
| 649 | "content": "JVBERi0xLjQKJ...", |
| 650 | "fileType": "pdf" |
| 651 | } |
| 652 | } |
| 653 | {{/code}} |
| 654 | |
| 655 | |
| 656 | **Request object specification** |
| 657 | |
| 658 | (% class="table-bordered table-striped" %) |
| 659 | |=Property |=Data type|=Format|=Required|=Description |
| 660 | |consentType |string | |Yes |Name of the Consent Type |
| 661 | |=applicationDocument |object | |Yes | |
| 662 | | content |string | |Yes |A base64 encoded string representing the content of the document. |
| 663 | | fileType |string |Pattern: (?i)^(pdf~|txt~|json~|xml)$ |Yes |The file type of the document. Supported file types are: pdf, txt, json and xml. The validation is case insensitive. |
| 664 | |
| 665 | Save a consent document |
| 666 | |
| 667 | {{code language="http" title="**Response**"}} |
| 668 | HTTP/1.1 200 OK |
| 669 | Content-Type: application/json |
| 670 | |
| 671 | { |
| 672 | "consentType": "cccc", |
| 673 | "operations": [ |
| 674 | { |
| 675 | "rel": "delete-trusted-seller-group", |
| 676 | "method": "DELETE", |
| 677 | "href": "/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups/cccc" |
| 678 | } |
| 679 | ], |
| 680 | "@id": "/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups/cccc" |
| 681 | } |
| 682 | {{/code}} |
| 683 | |
| 684 | |
| 685 | **Possible problems** |
| 686 | |
| 687 | (% class="table-bordered table-striped" %) |
| 688 | |=Http status |=Problem type |=Description |
| 689 | |400 |validation |Occurs if the validation of the request fails, it is described in the problem why the input is invalid. |
| 690 | |404 |not-found |Occurs if the requested resource is not found. |
| 691 | |409 |conflict |Occurs if the requested resource already exists. |
| 692 | |500 |fatal |Unexpected error, logs may give details about the problem |
| 693 | |
| 694 | |
| 695 | **Response object specification** |
| 696 | |
| 697 | (% class="table-bordered table-striped" %) |
| 698 | |=Property |=Data type|=Format|=Description |
| 699 | |@id |string | |Uri identifier of the current resource |
| 700 | |consentType |string | | |
| 701 | |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]] |
| 702 | |
| 703 | == 5. Legal-address == |
| 704 | |
| 705 | |
| 706 | The legal address is where claims is normally sent to. It is required for a customer to have a legal address registered |
| 707 | |
| 708 | ==== 5.1 Get list of Legal-address ==== |
| 709 | |
| 710 | {{code language="http" title="**Request**"}} |
| 711 | GET /ledger/customer/v1/{ownerNo}/customers/{customerNo}/legal-address HTTP/1.1 |
| 712 | Host: - |
| 713 | Authorization: Bearer<Token> |
| 714 | Content-Type: application/json |
| 715 | |
| 716 | {{/code}} |
| 717 | |
| 718 | Get customer legal-address |
| 719 | |
| 720 | {{code language="http" title="**Response**"}} |
| 721 | HTTP/1.1 200 OK |
| 722 | Content-Type: application/json |
| 723 | |
| 724 | { |
| 725 | "addressee": "Test Testsson", |
| 726 | "streetAddress": "Test street 1", |
| 727 | "zipCode": "60000", |
| 728 | "city": "Test town", |
| 729 | "coAddress": "Co address", |
| 730 | "countryCode": "SE", |
| 731 | "operations": [ |
| 732 | { |
| 733 | "rel": "update-legal-address", |
| 734 | "method": "PUT", |
| 735 | "href": "/ledger/customer/v1/xxx/customers/yyy/legal-address" |
| 736 | }, |
| 737 | { |
| 738 | "rel": "update-legal-address-from-population-register", |
| 739 | "method": "POST", |
| 740 | "href": "/ledger/customer/v1/xxx/customers/yyy/legal-address/update-legal-address-from-population-register" |
| 741 | } |
| 742 | ] |
| 743 | } |
| 744 | {{/code}} |
| 745 | |
| 746 | |
| 747 | |
| 748 | **Possible problems** |
| 749 | |
| 750 | (% class="table-bordered table-striped" %) |
| 751 | |=Http status |=Problem type |=Description |
| 752 | |500 |internal-server-error |The requested resource '' could not be processed. Please contact support. |
| 753 | |500 |handled-exception |The requested resource '' could not be processed. Please contact support. |
| 754 | |500 |unhandled-exception |The requested resource '' could not be processed. Please contact support. |
| 755 | |400 |general-validation-error |Validation error when accessing resource . Please refer to the problems property for additional details. |
| 756 | |400 |validation |Validation error when accessing resource . Please refer to the problems property for additional details. |
| 757 | |404 |customer-does-not-exists |The requested resource '' was not found. |
| 758 | |404 |customer-not-found |The requested resource '' was not found. |
| 759 | |
| 760 | |
| 761 | **Response object specification** |
| 762 | |
| 763 | (% class="table-bordered table-striped" %) |
| 764 | |=Property |=Data type|=Format|=Description |
| 765 | |@id |string | |Uri identifier of the current resource |
| 766 | |addressee |string | | |
| 767 | |streetAddress |string | | |
| 768 | |zipCode |string | | |
| 769 | |city |string | | |
| 770 | |coAddress |string | | |
| 771 | |countryCode |string | | |
| 772 | |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]] |
| 773 | |
| 774 | == 6. Update-kyc-answers == |
| 775 | |
| 776 | |
| 777 | ==== 6.1 Create Update-kyc-answer ==== |
| 778 | |
| 779 | When exposed on customer resources operations list it's a indication previous KYC answers up for renewal. Able to update KYC with this operation even if current aren't expired but won't be suggested on the customer resource |
| 780 | |
| 781 | {{code language="http" title="**Request**"}} |
| 782 | POST /ledger/customer/v1/{ownerNo}/customers/{customerNo}/update-kyc-answers HTTP/1.1 |
| 783 | Host: - |
| 784 | Authorization: Bearer<Token> |
| 785 | Content-Type: application/json |
| 786 | |
| 787 | { |
| 788 | "answers": [ |
| 789 | { |
| 790 | "questionCode": "taxable_outside_sweden", |
| 791 | "answerCode": "no" |
| 792 | }, |
| 793 | { |
| 794 | "questionCode": "multiple_citizenship", |
| 795 | "answerCode": "yes" |
| 796 | }, |
| 797 | { |
| 798 | "questionCode": "citizen_ship_country_codes", |
| 799 | "answerCode": "SWE" |
| 800 | }, |
| 801 | { |
| 802 | "questionCode": "citizen_ship_country_codes", |
| 803 | "answerCode": "NOR" |
| 804 | } |
| 805 | ] |
| 806 | } |
| 807 | {{/code}} |
| 808 | |
| 809 | |
| 810 | **Request object specification** |
| 811 | |
| 812 | (% class="table-bordered table-striped" %) |
| 813 | |=Property |=Data type|=Format|=Required|=Description |
| 814 | |=answers |array | |Yes | |
| 815 | | questionCode |string | |Yes |The code definition of the question |
| 816 | | answerCode |string | |Yes |The code definition of the answer |
| 817 | |
| 818 | {{code language="http" title="**Response**"}} |
| 819 | HTTP/1.1 201 CREATED |
| 820 | Content-Type: application/json |
| 821 | |
| 822 | { |
| 823 | } |
| 824 | {{/code}} |
| 825 | |
| 826 | |
| 827 | **Possible problems** |
| 828 | |
| 829 | (% class="table-bordered table-striped" %) |
| 830 | |=Http status |=Problem type |=Description |
| 831 | |400 |validation |Occurs if the validation of the request fails, it is described in the problem why the input is invalid. |
| 832 | |404 |not-found |Occurs if the customer not found or if KYC is not configured on this ledger. |
| 833 | |409 |company-kyc-questions-not-configured |Occurs if ledger is not currently configured for KYC |
| 834 | |500 |fatal |Unexpected error, logs may give details about the problem |
| 835 | |
| 836 | == 7. Update-legal-address-from-population-register == |
| 837 | |
| 838 | |
| 839 | ==== 7.1 Create Update-legal-address-from-population-register ==== |
| 840 | |
| 841 | Execution of this operation will result in an attempt to retrieve (and replace) the customer's legal address from the population registry. |
| 842 | |
| 843 | {{code language="http" title="**Request**"}} |
| 844 | POST /ledger/customer/v1/{ownerNo}/customers/{customerNo}/legal-address/update-legal-address-from-population-register HTTP/1.1 |
| 845 | Host: - |
| 846 | Authorization: Bearer<Token> |
| 847 | Content-Type: application/json |
| 848 | |
| 849 | { |
| 850 | } |
| 851 | {{/code}} |
| 852 | |
| 853 | |
| 854 | |
| 855 | {{code language="http" title="**Response**"}} |
| 856 | HTTP/1.1 204 NO CONTENT |
| 857 | Content-Type: application/json |
| 858 | |
| 859 | {} |
| 860 | {{/code}} |
| 861 | |
| 862 | |
| 863 | **Possible problems** |
| 864 | |
| 865 | (% class="table-bordered table-striped" %) |
| 866 | |=Http status |=Problem type |=Description |
| 867 | |500 |internal-server-error |The requested resource '' could not be processed. Please contact support. |
| 868 | |500 |handled-exception |The requested resource '' could not be processed. Please contact support. |
| 869 | |500 |unhandled-exception |The requested resource '' could not be processed. Please contact support. |
| 870 | |400 |general-validation-error |Validation error when accessing resource . Please refer to the problems property for additional details. |
| 871 | |400 |validation |Validation error when accessing resource . Please refer to the problems property for additional details. |
| 872 | |404 |customer-does-not-exists |The requested resource '' was not found. |
| 873 | |404 |customer-not-found |The requested resource '' was not found. |
| 874 | |
| 875 | == 8. Billing-address == |
| 876 | |
| 877 | |
| 878 | The billing address is where invoices/bills/letters etc. is normally sent to. This address is optional |
| 879 | |
| 880 | ==== 8.1 Get list of Billing-address ==== |
| 881 | |
| 882 | {{code language="http" title="**Request**"}} |
| 883 | GET /ledger/customer/v1/{ownerNo}/customers/{customerNo}/billing-address HTTP/1.1 |
| 884 | Host: - |
| 885 | Authorization: Bearer<Token> |
| 886 | Content-Type: application/json |
| 887 | |
| 888 | {{/code}} |
| 889 | |
| 890 | Get customer billing-address |
| 891 | |
| 892 | {{code language="http" title="**Response**"}} |
| 893 | HTTP/1.1 200 OK |
| 894 | Content-Type: application/json |
| 895 | |
| 896 | { |
| 897 | "addressee": "Test Testsson", |
| 898 | "streetAddress": "Test street 1", |
| 899 | "zipCode": "60000", |
| 900 | "city": "Test town", |
| 901 | "coAddress": "Co address", |
| 902 | "countryCode": "SE", |
| 903 | "operations": [ |
| 904 | { |
| 905 | "rel": "update-billing-address", |
| 906 | "method": "PUT", |
| 907 | "href": "/ledger/customer/v1/xxx/customers/yyy/billing-address" |
| 908 | }, |
| 909 | { |
| 910 | "rel": "delete-billing-address", |
| 911 | "method": "DELETE", |
| 912 | "href": "/ledger/customer/v1/xxx/customers/yyy/billing-address" |
| 913 | } |
| 914 | ] |
| 915 | } |
| 916 | {{/code}} |
| 917 | |
| 918 | |
| 919 | |
| 920 | **Possible problems** |
| 921 | |
| 922 | (% class="table-bordered table-striped" %) |
| 923 | |=Http status |=Problem type |=Description |
| 924 | |500 |internal-server-error |The requested resource '' could not be processed. Please contact support. |
| 925 | |500 |handled-exception |The requested resource '' could not be processed. Please contact support. |
| 926 | |500 |unhandled-exception |The requested resource '' could not be processed. Please contact support. |
| 927 | |400 |general-validation-error |Validation error when accessing resource . Please refer to the problems property for additional details. |
| 928 | |400 |validation |Validation error when accessing resource . Please refer to the problems property for additional details. |
| 929 | |404 |customer-does-not-exists |The requested resource '' was not found. |
| 930 | |404 |customer-not-found |The requested resource '' was not found. |
| 931 | |
| 932 | ==== 8.2 Create Billing-addre ==== |
| 933 | |
| 934 | Add a billing address to customer. The billing address is where invoices/bills/letters etc. is normally sent to. This address is optional |
| 935 | |
| 936 | {{code language="http" title="**Request**"}} |
| 937 | POST /ledger/customer/v1/{ownerNo}/customers/{customerNo}/billing-address HTTP/1.1 |
| 938 | Host: - |
| 939 | Authorization: Bearer<Token> |
| 940 | Content-Type: application/json |
| 941 | |
| 942 | { |
| 943 | "addressee": "Test Testsson", |
| 944 | "streetAddress": "Test street 1", |
| 945 | "zipCode": "60000", |
| 946 | "city": "Test town", |
| 947 | "coAddress": "Co address", |
| 948 | "countryCode": "SE" |
| 949 | } |
| 950 | {{/code}} |
| 951 | |
| 952 | |
| 953 | **Request object specification** |
| 954 | |
| 955 | (% class="table-bordered table-striped" %) |
| 956 | |=Property |=Data type|=Format|=Required|=Description |
| 957 | |addressee |string | |No | |
| 958 | |streetAddress |string | |No | |
| 959 | |zipCode |string | |No | |
| 960 | |city |string | |No | |
| 961 | |coAddress |string | |No | |
| 962 | |countryCode |string | |No | |
| 963 | |
| 964 | {{code language="http" title="**Response**"}} |
| 965 | HTTP/1.1 201 CREATED |
| 966 | Content-Type: application/json |
| 967 | |
| 968 | { |
| 969 | } |
| 970 | {{/code}} |
| 971 | |
| 972 | |
| 973 | **Possible problems** |
| 974 | |
| 975 | (% class="table-bordered table-striped" %) |
| 976 | |=Http status |=Problem type |=Description |
| 977 | |500 |internal-server-error |The requested resource '' could not be processed. Please contact support. |
| 978 | |500 |handled-exception |The requested resource '' could not be processed. Please contact support. |
| 979 | |500 |unhandled-exception |The requested resource '' could not be processed. Please contact support. |
| 980 | |400 |general-validation-error |Validation error when accessing resource . Please refer to the problems property for additional details. |
| 981 | |400 |validation |Validation error when accessing resource . Please refer to the problems property for additional details. |
| 982 | |404 |customer-does-not-exists |The requested resource '' was not found. |
| 983 | |404 |customer-not-found |The requested resource '' was not found. |
| 984 | |
| 985 | |
| 986 | **Response object specification** |
| 987 | |
| 988 | (% class="table-bordered table-striped" %) |
| 989 | |=Property |=Data type|=Format|=Description |
| 990 | |@id |string | |Uri identifier of the current resource |
| 991 | |addressee |string | | |
| 992 | |streetAddress |string | | |
| 993 | |zipCode |string | | |
| 994 | |city |string | | |
| 995 | |coAddress |string | | |
| 996 | |countryCode |string | | |
| 997 | |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]] |
| 998 | |
| 999 | == 9. Consent == |
| 1000 | |
| 1001 | |
| 1002 | Underlying resources that display information or enable registration of a customer's consent. |
| 1003 | |
| 1004 | ==== 9.1 Get list of Consent ==== |
| 1005 | |
| 1006 | {{code language="http" title="**Request**"}} |
| 1007 | GET /ledger/customer/v1/{ownerNo}/customers/{customerNo}/consent HTTP/1.1 |
| 1008 | Host: - |
| 1009 | Authorization: Bearer<Token> |
| 1010 | Content-Type: application/json |
| 1011 | |
| 1012 | {{/code}} |
| 1013 | |
| 1014 | Get customer consent |
| 1015 | |
| 1016 | {{code language="http" title="**Response**"}} |
| 1017 | HTTP/1.1 200 OK |
| 1018 | Content-Type: application/json |
| 1019 | |
| 1020 | { |
| 1021 | "recurringCard": "/ledger/customer/v1/xxx/customers/yyy/consent/recurring-card", |
| 1022 | "recurringCardRedirectRegistration": "/ledger/customer/v1/xxx/customers/yyy/consent/recurring-card-redirect-registration", |
| 1023 | "trustedSellerGroups": "/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups", |
| 1024 | "availableTrustedSellerGroupConsents": [], |
| 1025 | "operations": [ |
| 1026 | { |
| 1027 | "rel": "add-trusted-seller-group", |
| 1028 | "method": "POST", |
| 1029 | "href": "/ledger/customer/v1/xxx/customers/yyy/consent/trusted-seller-groups" |
| 1030 | }, |
| 1031 | { |
| 1032 | "rel": "add-recurring-card-redirect-registration", |
| 1033 | "method": "POST", |
| 1034 | "href": "/ledger/customer/v1/xxx/customers/yyy/consent/recurring-card-redirect-registration" |
| 1035 | } |
| 1036 | ] |
| 1037 | } |
| 1038 | {{/code}} |
| 1039 | |
| 1040 | |
| 1041 | |
| 1042 | **Response object specification** |
| 1043 | |
| 1044 | (% class="table-bordered table-striped" %) |
| 1045 | |=Property |=Data type|=Format|=Description |
| 1046 | |@id |string | |Uri identifier of the current resource |
| 1047 | |recurringCard |dynamic | | |
| 1048 | |recurringCardRedirectRegistration |dynamic | | |
| 1049 | |trustedSellerGroups |dynamic | | |
| 1050 | |=availableTrustedSellerGroupConsents |array | | |
| 1051 | | |string | | |
| 1052 | |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]] |
| 1053 | |
| 1054 | == 10. Find-customer == |
| 1055 | |
| 1056 | |
| 1057 | ==== 10.1 Create Find-customer ==== |
| 1058 | |
| 1059 | It is used to find customer with nationalIdentifier. |
| 1060 | |
| 1061 | {{code language="http" title="**Request**"}} |
| 1062 | POST /ledger/customer/v1/{ownerNo}/find-customer HTTP/1.1 |
| 1063 | Host: - |
| 1064 | Authorization: Bearer<Token> |
| 1065 | Content-Type: application/json |
| 1066 | |
| 1067 | { |
| 1068 | "nationalIdentifier": { |
| 1069 | "regNo": "YYYYMMDD-NNNN", |
| 1070 | "countryCode": "SE" |
| 1071 | } |
| 1072 | } |
| 1073 | {{/code}} |
| 1074 | |
| 1075 | |
| 1076 | **Request object specification** |
| 1077 | |
| 1078 | (% class="table-bordered table-striped" %) |
| 1079 | |=Property |=Data type|=Format|=Required|=Description |
| 1080 | |=nationalIdentifier |object | |No | |
| 1081 | | regNo |string | |Yes | |
| 1082 | | countryCode |string | |No | |
| 1083 | |
| 1084 | Find customer with nationalIdentifier, regno and countrycode, returns CustomerNo = YYY |
| 1085 | |
| 1086 | {{code language="http" title="**Response**"}} |
| 1087 | HTTP/1.1 200 OK |
| 1088 | Content-Type: application/json |
| 1089 | |
| 1090 | { |
| 1091 | "customerNo": "YYY" |
| 1092 | } |
| 1093 | {{/code}} |
| 1094 | |
| 1095 | |
| 1096 | **Possible problems** |
| 1097 | |
| 1098 | (% class="table-bordered table-striped" %) |
| 1099 | |=Http status |=Problem type |=Description |
| 1100 | |500 |internal-server-error |The requested resource '' could not be processed. Please contact support. |
| 1101 | |500 |handled-exception |The requested resource '' could not be processed. Please contact support. |
| 1102 | |500 |unhandled-exception |The requested resource '' could not be processed. Please contact support. |
| 1103 | |400 |general-validation-error |Validation error when accessing resource . Please refer to the problems property for additional details. |
| 1104 | |400 |validation |Validation error when accessing resource . Please refer to the problems property for additional details. |
| 1105 | |400 |invalid-reg-no |Validation error when accessing resource . Please refer to the problems property for additional details. |
| 1106 | |404 |customer-does-not-exists |The requested resource '' was not found. |
| 1107 | |404 |customer-not-found |The requested resource '' was not found. |
| 1108 | |
| 1109 | |
| 1110 | **Response object specification** |
| 1111 | |
| 1112 | (% class="table-bordered table-striped" %) |
| 1113 | |=Property |=Data type|=Format|=Description |
| 1114 | |@id |string | |Uri identifier of the current resource |
| 1115 | |customerNo |string | | |
| 1116 | |
| 1117 | == 11. Recurring-card == |
| 1118 | |
| 1119 | |
| 1120 | Get details about the customer's active Recurring Card Consent. |
| 1121 | |
| 1122 | ==== 11.1 Get list of Recurring-card ==== |
| 1123 | |
| 1124 | {{code language="http" title="**Request**"}} |
| 1125 | GET /ledger/customer/v1/{ownerNo}/customers/{customerNo}/consent/recurring-card HTTP/1.1 |
| 1126 | Host: - |
| 1127 | Authorization: Bearer<Token> |
| 1128 | Content-Type: application/json |
| 1129 | |
| 1130 | {{/code}} |
| 1131 | |
| 1132 | Get customer active Recurring Card Consent. |
| 1133 | |
| 1134 | {{code language="http" title="**Response**"}} |
| 1135 | HTTP/1.1 200 OK |
| 1136 | Content-Type: application/json |
| 1137 | |
| 1138 | { |
| 1139 | "cardToken": "2eb28854-07ec-4e88-b672-7c61cc54b461", |
| 1140 | "consentExpiryDate": "04-2035", |
| 1141 | "instrumentDisplayName": "551000******1232", |
| 1142 | "cardExpiryDate": "04/2035", |
| 1143 | "cardBrand": "Visa", |
| 1144 | "operations": [ |
| 1145 | { |
| 1146 | "rel": "delete-recurring-card", |
| 1147 | "method": "DELETE", |
| 1148 | "href": "/ledger/customer/v1/xxx/customers/yyy/consent/recurring-card" |
| 1149 | } |
| 1150 | ] |
| 1151 | } |
| 1152 | {{/code}} |
| 1153 | |
| 1154 | |
| 1155 | |
| 1156 | **Response object specification** |
| 1157 | |
| 1158 | (% class="table-bordered table-striped" %) |
| 1159 | |=Property |=Data type|=Format|=Description |
| 1160 | |@id |string | |Uri identifier of the current resource |
| 1161 | |cardToken |string | | |
| 1162 | |consentExpiryDate |string | | |
| 1163 | |instrumentDisplayName |string | | |
| 1164 | |cardExpiryDate |string | | |
| 1165 | |cardBrand |string | | |
| 1166 | |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]] |
| 1167 | |
| 1168 | == 12. Recurring-card-redirect-registration == |
| 1169 | |
| 1170 | |
| 1171 | Get details about the customer's ongoing Recurring Card registration. |
| 1172 | |
| 1173 | ==== 12.1 Get list of Recurring-card-redirect-registration ==== |
| 1174 | |
| 1175 | {{code language="http" title="**Request**"}} |
| 1176 | GET /ledger/customer/v1/{ownerNo}/customers/{customerNo}/consent/recurring-card-redirect-registration HTTP/1.1 |
| 1177 | Host: - |
| 1178 | Authorization: Bearer<Token> |
| 1179 | Content-Type: application/json |
| 1180 | |
| 1181 | {{/code}} |
| 1182 | |
| 1183 | Customer's ongoing Recurring Card Registration. |
| 1184 | |
| 1185 | {{code language="http" title="**Response**"}} |
| 1186 | HTTP/1.1 200 OK |
| 1187 | Content-Type: application/json |
| 1188 | |
| 1189 | { |
| 1190 | "redirectUrl": "https://ecom.externalintegration.payex.com/checkout/abc123", |
| 1191 | "status": "Initialized", |
| 1192 | "operations": [] |
| 1193 | } |
| 1194 | {{/code}} |
| 1195 | |
| 1196 | |
| 1197 | ==== 12.2 Create Recurring-card-redirect-registration ==== |
| 1198 | |
| 1199 | Initializes the customer's Recurring Card registration with redirect to SwedbankPay. |
| 1200 | |
| 1201 | {{code language="http" title="**Request**"}} |
| 1202 | POST /ledger/customer/v1/{ownerNo}/customers/{customerNo}/consent/recurring-card-redirect-registration HTTP/1.1 |
| 1203 | Host: - |
| 1204 | Authorization: Bearer<Token> |
| 1205 | Content-Type: application/json |
| 1206 | |
| 1207 | { |
| 1208 | "completeUrl": "https://www.google.com/search?q=cancelurl", |
| 1209 | "cancelUrl": "https://www.google.com/search?q=completeurl", |
| 1210 | "language": "en-US" |
| 1211 | } |
| 1212 | {{/code}} |
| 1213 | |
| 1214 | |
| 1215 | **Request object specification** |
| 1216 | |
| 1217 | (% class="table-bordered table-striped" %) |
| 1218 | |=Property |=Data type|=Format|=Required|=Description |
| 1219 | |completeUrl |string |Type: uri |Yes | |
| 1220 | |cancelUrl |string |Type: uri |Yes | |
| 1221 | |language |string | |Yes | |
| 1222 | |
| 1223 | Customer's ongoing Recurring Card Registration. |
| 1224 | |
| 1225 | {{code language="http" title="**Response**"}} |
| 1226 | HTTP/1.1 200 OK |
| 1227 | Content-Type: application/json |
| 1228 | |
| 1229 | { |
| 1230 | "redirectUrl": "https://ecom.externalintegration.payex.com/checkout/abc123", |
| 1231 | "status": "Initialized", |
| 1232 | "operations": [], |
| 1233 | "@id": "/ledger/customer/v1/xxx/customers/yyy/consent/recurring-card-redirect-registration" |
| 1234 | } |
| 1235 | {{/code}} |
| 1236 | |
| 1237 | |
| 1238 | **Response object specification** |
| 1239 | |
| 1240 | (% class="table-bordered table-striped" %) |
| 1241 | |=Property |=Data type|=Format|=Description |
| 1242 | |@id |string | |Uri identifier of the current resource |
| 1243 | |redirectUrl |string | | |
| 1244 | |status |string | | |
| 1245 | |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]] |
| 1246 | |
| 1247 | == 13. Kyc-questions == |
| 1248 | |
| 1249 | |
| 1250 | Get KYC questions from ledger using company number as identifier |
| 1251 | |
| 1252 | ==== 13.1 Get list of Kyc-questions ==== |
| 1253 | |
| 1254 | {{code language="http" title="**Request**"}} |
| 1255 | GET /ledger/customer/v1/{ownerNo}/kyc-questions?language={language} HTTP/1.1 |
| 1256 | Host: - |
| 1257 | Authorization: Bearer<Token> |
| 1258 | Content-Type: application/json |
| 1259 | |
| 1260 | {{/code}} |
| 1261 | |
| 1262 | Get CompanyInstance KYC questions if configured or a 404 company-kyc-questions-not-configured response if not |
| 1263 | |
| 1264 | {{code language="http" title="**Response**"}} |
| 1265 | HTTP/1.1 200 OK |
| 1266 | Content-Type: application/json |
| 1267 | |
| 1268 | { |
| 1269 | "kycQuestions": [ |
| 1270 | { |
| 1271 | "questionText": "What is your current employment?", |
| 1272 | "answer": { |
| 1273 | "type": "single", |
| 1274 | "required": true, |
| 1275 | "possibleAnswers": [ |
| 1276 | { |
| 1277 | "answerCode": "selfemployed", |
| 1278 | "answerText": "Own business" |
| 1279 | }, |
| 1280 | { |
| 1281 | "answerCode": "private_employee", |
| 1282 | "answerText": "Private employee" |
| 1283 | }, |
| 1284 | { |
| 1285 | "answerCode": "goverment_employee", |
| 1286 | "answerText": "Government employee" |
| 1287 | } |
| 1288 | ] |
| 1289 | }, |
| 1290 | "questionCode": "employment" |
| 1291 | }, |
| 1292 | { |
| 1293 | "questionText": "What is your yearly income", |
| 1294 | "answer": { |
| 1295 | "type": "single", |
| 1296 | "required": true, |
| 1297 | "possibleAnswers": [ |
| 1298 | { |
| 1299 | "answerCode": "incomeinterval1", |
| 1300 | "answerText": "0-100 000 SEK" |
| 1301 | }, |
| 1302 | { |
| 1303 | "answerCode": "incomeinterval2", |
| 1304 | "answerText": "100 001-200 000 SEK" |
| 1305 | }, |
| 1306 | { |
| 1307 | "answerCode": "incomeinterval3", |
| 1308 | "answerText": "200 001-300 000 SEK" |
| 1309 | }, |
| 1310 | { |
| 1311 | "answerCode": "incomeinterval4", |
| 1312 | "answerText": "Over 300 001 SEK" |
| 1313 | } |
| 1314 | ] |
| 1315 | }, |
| 1316 | "questionCode": "income" |
| 1317 | } |
| 1318 | ], |
| 1319 | "operations": [] |
| 1320 | } |
| 1321 | {{/code}} |
| 1322 | |
| 1323 | |
| 1324 | |
| 1325 | **Query parameters** |
| 1326 | |
| 1327 | (% class="table-bordered table-striped" %) |
| 1328 | |=Name |=Required |=Description |
| 1329 | |language |False |format ISO639-1, if not supported or none given request defaults to language code 'en'(English) |
| 1330 | |
| 1331 | |
| 1332 | **Possible problems** |
| 1333 | |
| 1334 | (% class="table-bordered table-striped" %) |
| 1335 | |=Http status |=Problem type |=Description |
| 1336 | |500 |internal-server-error |The requested resource '' could not be processed. Please contact support. |
| 1337 | |500 |handled-exception |The requested resource '' could not be processed. Please contact support. |
| 1338 | |500 |unhandled-exception |The requested resource '' could not be processed. Please contact support. |
| 1339 | |400 |general-validation-error |Validation error when accessing resource . Please refer to the problems property for additional details. |
| 1340 | |404 |company-kyc-questions-not-configured |The requested resource '' was not found. |
| 1341 | |
| 1342 | |
| 1343 | **Response object specification** |
| 1344 | |
| 1345 | (% class="table-bordered table-striped" %) |
| 1346 | |=Property |=Data type|=Format|=Description |
| 1347 | |@id |string | |Uri identifier of the current resource |
| 1348 | |=kycQuestions |array | | |
| 1349 | | questionCode |string | |The code definition of the question |
| 1350 | | questionText |string | |The translated text of the question |
| 1351 | |= answer |object | | |
| 1352 | | type |string | |The type of the expected answer: single ~| multi ~| text |
| 1353 | | required |boolean | |If the answer is required |
| 1354 | | textValidationRegEx |string | |The regex the answer should match |
| 1355 | |= possibleAnswers |array | | |
| 1356 | | answerCode |string | |The code definition of the answer |
| 1357 | | answerText |string | |The translated text of the answer |
| 1358 | |= subQuestions |array | | |
| 1359 | |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]] |
| 1360 | |
| 1361 | == 14. Affordability-questions == |
| 1362 | |
| 1363 | |
| 1364 | Get affordability questions from ledger using company number as identifier |
| 1365 | |
| 1366 | ==== 14.1 Get list of Affordability-questions ==== |
| 1367 | |
| 1368 | {{code language="http" title="**Request**"}} |
| 1369 | GET /ledger/customer/v1/{ownerNo}/affordability-questions?language={language} HTTP/1.1 |
| 1370 | Host: - |
| 1371 | Authorization: Bearer<Token> |
| 1372 | Content-Type: application/json |
| 1373 | |
| 1374 | {{/code}} |
| 1375 | |
| 1376 | Get CompanyInstance affordability questions if configured. It's expected that not all credit assessment levels are configured for every company. |
| 1377 | |
| 1378 | {{code language="http" title="**Response**"}} |
| 1379 | HTTP/1.1 200 OK |
| 1380 | Content-Type: application/json |
| 1381 | |
| 1382 | { |
| 1383 | "creditAssessmentLevel1": [ |
| 1384 | { |
| 1385 | "questionCode": "yearly_revenue", |
| 1386 | "questionText": "What is your yearly revenue?", |
| 1387 | "answer": { |
| 1388 | "type": "single", |
| 1389 | "required": true, |
| 1390 | "possibleAnswers": [ |
| 1391 | { |
| 1392 | "answerCode": "interval1", |
| 1393 | "answerText": "0-500 000 SEK" |
| 1394 | }, |
| 1395 | { |
| 1396 | "answerCode": "interval2", |
| 1397 | "answerText": "500 001-1 000 000 SEK" |
| 1398 | } |
| 1399 | ] |
| 1400 | } |
| 1401 | } |
| 1402 | ], |
| 1403 | "creditAssessmentLevel2": [ |
| 1404 | { |
| 1405 | "questionCode": "number_of_employees", |
| 1406 | "questionText": "How many employees does the company have?", |
| 1407 | "answer": { |
| 1408 | "type": "single", |
| 1409 | "required": true, |
| 1410 | "possibleAnswers": [ |
| 1411 | { |
| 1412 | "answerCode": "interval1", |
| 1413 | "answerText": "1-10" |
| 1414 | }, |
| 1415 | { |
| 1416 | "answerCode": "interval2", |
| 1417 | "answerText": "11-50" |
| 1418 | } |
| 1419 | ] |
| 1420 | } |
| 1421 | } |
| 1422 | ], |
| 1423 | "operations": [] |
| 1424 | } |
| 1425 | {{/code}} |
| 1426 | |
| 1427 | |
| 1428 | |
| 1429 | **Query parameters** |
| 1430 | |
| 1431 | (% class="table-bordered table-striped" %) |
| 1432 | |=Name |=Required |=Description |
| 1433 | |language |False |format ISO639-1, if not supported or none given request defaults to language code 'en'(English) |
| 1434 | |
| 1435 | |
| 1436 | **Possible problems** |
| 1437 | |
| 1438 | (% class="table-bordered table-striped" %) |
| 1439 | |=Http status |=Problem type |=Description |
| 1440 | |500 |internal-server-error |The requested resource '' could not be processed. Please contact support. |
| 1441 | |500 |handled-exception |The requested resource '' could not be processed. Please contact support. |
| 1442 | |500 |unhandled-exception |The requested resource '' could not be processed. Please contact support. |
| 1443 | |400 |general-validation-error |Validation error when accessing resource . Please refer to the problems property for additional details. |
| 1444 | |
| 1445 | |
| 1446 | **Response object specification** |
| 1447 | |
| 1448 | (% class="table-bordered table-striped" %) |
| 1449 | |=Property |=Data type|=Format|=Description |
| 1450 | |@id |string | |Uri identifier of the current resource |
| 1451 | |=creditAssessmentLevel1 |array | | |
| 1452 | | questionCode |string | |The code definition of the question |
| 1453 | | questionText |string | |The translated text of the question |
| 1454 | |= answer |object | | |
| 1455 | | type |string | |The type of the expected answer: single ~| multi ~| text |
| 1456 | | required |boolean | |If the answer is required |
| 1457 | | textValidationRegEx |string | |The regex the answer should match |
| 1458 | |= possibleAnswers |array | | |
| 1459 | | answerCode |string | |The code definition of the answer |
| 1460 | | answerText |string | |The translated text of the answer |
| 1461 | |= subQuestions |array | | |
| 1462 | |=creditAssessmentLevel2 |array | | |
| 1463 | |=creditAssessmentLevel3 |array | | |
| 1464 | |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]] |
| 1465 | |
| 1466 | {{display reference="developer:Main.Invoicing.ledger-api-general-docs.api-section-problems.WebHome"/}} |