├── LICENSE ├── README.md └── openapi.yml /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Rots 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # n26-api 2 | Unofficial N26 API documentation 3 | 4 | It is a collection of observed API calls and methods. No guarantees are provided that they are complete, correct or that they are still functioning as specified. 5 | 6 | The OpenAPI specification is provided in the `openapi.yml` file. 7 | For testing the spec, it is also published at https://app.swaggerhub.com/apis/Rots/N26 8 | 9 | 10 | # Client wrapper generation 11 | 12 | The OpenAPI specification allows for generating client wrappers to access the data. 13 | 14 | Example: 15 | 16 | ``` 17 | docker run --rm -v ${PWD}:/local korchasa/swagger-codegen-openapi generate -i /local/openapi.yml -l java -o /local/out/java 18 | ``` 19 | 20 | # Security warning! 21 | 22 | Do not type in your bank credentials to an untrusted software! 23 | Once you have given full access to a third party, they can indefinitely "keep the bank API session alive" by refreshing their access token and make transactions on your behalf (and change any details on the banking app). 24 | N26 haven't enabled a way to revoke access of third party apps (as far as I know, you can't securely sign in to the bank without giving your password in plain text to the third party). 25 | 26 | If you think that your credentials may have been compromised, immidiately change your login password in the official N26 app and notify the bank of any relevant information. 27 | 28 | # Other known software for N26 29 | 30 | * https://github.com/guitmz/n26 Go API 31 | * https://github.com/PierrickP/n26 JSON API 32 | 33 | -------------------------------------------------------------------------------- /openapi.yml: -------------------------------------------------------------------------------- 1 | openapi: "3.0.0" 2 | info: 3 | description: "Collection of observed API calls and methods. No guarantees are provided that they are still functioning as specified." 4 | version: "0.2" 5 | title: "N26 bank unofficial OpenAPI definition" 6 | termsOfService: "https://next.n26.com/en-de/bug-bounty-program/" 7 | contact: 8 | email: "security@n26.com" 9 | 10 | servers: 11 | - url: "https://api.tech26.de/api" 12 | 13 | security: 14 | - auth: 15 | - read 16 | 17 | paths: 18 | /me: 19 | get: 20 | parameters: 21 | - name: full 22 | in: query 23 | schema: 24 | type: boolean 25 | description: "Get details about current user" 26 | tags: 27 | - account 28 | responses: 29 | 200: 30 | description: "Success" 31 | content: 32 | application/json: 33 | schema: 34 | oneOf: 35 | - $ref: '#/components/schemas/Me' 36 | - type: object 37 | title: full details 38 | properties: 39 | userInfo: 40 | $ref: '#/components/schemas/Me' 41 | account: 42 | type: object 43 | cards: 44 | type: array 45 | addresses: 46 | type: array 47 | userFeatures: 48 | type: array 49 | items: 50 | type: string 51 | features: 52 | type: object 53 | overdraft: 54 | type: object 55 | properties: 56 | status: 57 | type: string 58 | insurance: 59 | type: object 60 | properties: 61 | status: 62 | type: string 63 | userStatus: 64 | type: object 65 | pairingCheck: 66 | type: object 67 | preference: 68 | type: object 69 | userCustomSetting: 70 | type: object 71 | fairUsePolicy: 72 | type: object 73 | 401: 74 | description: "Unauthorized" 75 | content: 76 | application/json: 77 | schema: 78 | $ref: '#/components/schemas/Error' 79 | /me/statuses: 80 | get: 81 | description: "Get details about current user" 82 | tags: 83 | - account 84 | responses: 85 | 200: 86 | description: "Success" 87 | content: 88 | application/json: 89 | schema: 90 | type: object 91 | properties: 92 | id: 93 | type: string 94 | format: uuid 95 | created: 96 | type: integer 97 | updated: 98 | type: integer 99 | singleStepSignup: 100 | type: integer 101 | emailValidationInitiated: 102 | type: integer 103 | emailValidationCompleted: 104 | type: integer 105 | productSelectionCompleted: 106 | type: integer 107 | phonePairingInitiated: 108 | type: integer 109 | phonePairingCompleted: 110 | type: integer 111 | kycInitiated: 112 | type: integer 113 | kycCompleted: 114 | type: integer 115 | kycDetails: 116 | type: object 117 | properties: 118 | status: 119 | type: string 120 | provider: 121 | type: string 122 | cardActivationCompleted: 123 | type: integer 124 | pinDefinitionCompleted: 125 | type: integer 126 | bankAccountCreationInitiated: 127 | type: integer 128 | bankAccountCreationSucceded: 129 | type: integer 130 | coreDataUpdated: 131 | type: integer 132 | firstIncomingTransaction: 133 | type: integer 134 | flexAccount: 135 | type: boolean 136 | 401: 137 | description: "Unauthorized" 138 | content: 139 | application/json: 140 | schema: 141 | $ref: '#/components/schemas/Error' 142 | /accounts/stats: 143 | get: 144 | description: "Get details about current user" 145 | tags: 146 | - account 147 | parameters: 148 | - name: type 149 | in: query 150 | schema: 151 | type: string 152 | - name: from 153 | in: query 154 | schema: 155 | type: integer 156 | - name: to 157 | in: query 158 | schema: 159 | type: integer 160 | - name: numSlices 161 | in: query 162 | schema: 163 | type: integer 164 | responses: 165 | 200: 166 | description: "Success" 167 | content: 168 | application/json: 169 | schema: 170 | type: object 171 | 401: 172 | description: "Unauthorized" 173 | content: 174 | application/json: 175 | schema: 176 | $ref: '#/components/schemas/Error' 177 | /accounts: 178 | get: 179 | description: "Get details about current user" 180 | tags: 181 | - account 182 | responses: 183 | 200: 184 | description: "Success" 185 | content: 186 | application/json: 187 | schema: 188 | type: object 189 | properties: 190 | id: 191 | type: string 192 | format: uuid 193 | availableBalance: 194 | type: number 195 | usableBalance: 196 | type: number 197 | bankBalance: 198 | type: number 199 | iban: 200 | type: string 201 | bic: 202 | type: string 203 | bankName: 204 | type: string 205 | seized: 206 | type: boolean 207 | 401: 208 | description: "Unauthorized" 209 | content: 210 | application/json: 211 | schema: 212 | $ref: '#/components/schemas/Error' 213 | /addresses: 214 | get: 215 | description: "Get details about current user" 216 | tags: 217 | - account 218 | responses: 219 | 200: 220 | description: "Success" 221 | content: 222 | application/json: 223 | schema: 224 | type: object 225 | properties: 226 | paging: 227 | type: object 228 | properties: 229 | totalResults: 230 | type: integer 231 | data: 232 | type: array 233 | items: 234 | type: object 235 | properties: 236 | addressLine1: 237 | type: string 238 | streetName: 239 | type: string 240 | houseNumberBlock: 241 | type: string 242 | zipCode: 243 | type: string 244 | cityName: 245 | type: string 246 | countryName: 247 | type: string 248 | type: 249 | type: string 250 | userId: 251 | type: string 252 | format: uuid 253 | id: 254 | type: string 255 | format: uuid 256 | 401: 257 | description: "Unauthorized" 258 | content: 259 | application/json: 260 | schema: 261 | $ref: '#/components/schemas/Error' 262 | /v2/cards: 263 | get: 264 | description: "List the cards" 265 | tags: 266 | - account 267 | responses: 268 | 200: 269 | description: "Success" 270 | content: 271 | application/json: 272 | schema: 273 | type: array 274 | items: 275 | $ref: '#/components/schemas/Card' 276 | 277 | 401: 278 | description: "Unauthorized" 279 | content: 280 | application/json: 281 | schema: 282 | $ref: '#/components/schemas/Error' 283 | /cards: 284 | get: 285 | description: "List the cards" 286 | tags: 287 | - account 288 | responses: 289 | 200: 290 | description: "Success" 291 | content: 292 | application/json: 293 | schema: 294 | type: object 295 | properties: 296 | paging: 297 | type: object 298 | properties: 299 | totalResults: 300 | type: integer 301 | data: 302 | type: array 303 | items: 304 | $ref: '#/components/schemas/Card' 305 | 306 | 401: 307 | description: "Unauthorized" 308 | content: 309 | application/json: 310 | schema: 311 | $ref: '#/components/schemas/Error' 312 | /cards/{cardId}: 313 | get: 314 | description: "Get details about current user" 315 | tags: 316 | - account 317 | parameters: 318 | - name: cardId 319 | in: path 320 | required: true 321 | schema: 322 | type: string 323 | responses: 324 | 200: 325 | description: "Success" 326 | content: 327 | application/json: 328 | schema: 329 | $ref: '#/components/schemas/Card' 330 | 401: 331 | description: "Unauthorized" 332 | content: 333 | application/json: 334 | schema: 335 | $ref: '#/components/schemas/Error' 336 | /settings/account/limits: 337 | get: 338 | description: "Get details about current user account" 339 | tags: 340 | - account 341 | responses: 342 | 200: 343 | description: "Success" 344 | content: 345 | application/json: 346 | schema: 347 | type: array 348 | items: 349 | type: object 350 | properties: 351 | limit: 352 | type: string 353 | example: POS_DAILY_ACCOUNT 354 | amount: 355 | type: number 356 | example: 2500 357 | 401: 358 | description: "Unauthorized" 359 | content: 360 | application/json: 361 | schema: 362 | $ref: '#/components/schemas/Error' 363 | /settings/limits/{cardId}: 364 | get: 365 | description: "Get card limits" 366 | tags: 367 | - account 368 | parameters: 369 | - name: cardId 370 | required: true 371 | in: path 372 | schema: 373 | type: string 374 | responses: 375 | 200: 376 | description: "Success" 377 | content: 378 | application/json: 379 | schema: 380 | type: array 381 | items: 382 | type: object 383 | required: 384 | - limit 385 | oneOf: 386 | - type: object 387 | properties: 388 | limit: 389 | type: string 390 | example: POS_TRANSACTION 391 | amount: 392 | type: number 393 | example: 2500 394 | - type: object 395 | properties: 396 | limit: 397 | type: string 398 | example: COUNTRY_LIST 399 | countryList: 400 | type: array 401 | items: 402 | type: string 403 | 401: 404 | description: "Unauthorized" 405 | content: 406 | application/json: 407 | schema: 408 | $ref: '#/components/schemas/Error' 409 | /smrt/contacts: 410 | get: 411 | description: "Contacts" 412 | tags: 413 | - account 414 | responses: 415 | 200: 416 | description: "Success" 417 | content: 418 | application/json: 419 | schema: 420 | type: array 421 | items: 422 | type: object 423 | properties: 424 | userId: 425 | type: string 426 | format: uuid 427 | id: 428 | type: string 429 | format: uuid 430 | name: 431 | type: string 432 | subtitle: 433 | type: string 434 | account: 435 | type: object 436 | properties: 437 | accountType: 438 | type: string 439 | iban: 440 | type: string 441 | bic: 442 | type: string 443 | 401: 444 | description: "Unauthorized" 445 | content: 446 | application/json: 447 | schema: 448 | $ref: '#/components/schemas/Error' 449 | /smrt/transactions: 450 | get: 451 | description: "Transactions" 452 | tags: 453 | - transactions 454 | parameters: 455 | - name: from 456 | in: query 457 | description: Timestamp - milliseconds since 1970 in CET 458 | schema: 459 | type: integer 460 | - name: to 461 | in: query 462 | schema: 463 | type: integer 464 | - name: limit 465 | description: Limit the number of transactions to return 466 | in: query 467 | schema: 468 | type: integer 469 | - name: pending 470 | in: query 471 | schema: 472 | type: boolean 473 | - name: categories 474 | description: Comma separated list of category IDs 475 | in: query 476 | schema: 477 | type: string 478 | - name: textFilter 479 | in: query 480 | description: Query string to search for 481 | schema: 482 | type: string 483 | - name: lastId 484 | in: query 485 | schema: 486 | type: string 487 | format: uuid 488 | responses: 489 | 200: 490 | description: "Success" 491 | content: 492 | application/json: 493 | schema: 494 | type: array 495 | items: 496 | type: object 497 | properties: 498 | id: 499 | type: string 500 | format: uuid 501 | userId: 502 | type: string 503 | format: uuid 504 | type: 505 | type: string 506 | amount: 507 | type: number 508 | currencyCode: 509 | type: string 510 | originalAmount: 511 | type: number 512 | originalCurrency: 513 | type: string 514 | exchangeRate: 515 | type: number 516 | merchantCity: 517 | type: string 518 | visibleTS: 519 | type: integer 520 | mcc: 521 | type: integer 522 | mccGroup: 523 | type: integer 524 | merchantName: 525 | type: string 526 | recurring: 527 | type: boolean 528 | partnerBic: 529 | type: string 530 | partnerAccountIsSepa: 531 | type: boolean 532 | partnerName: 533 | type: string 534 | accountId: 535 | type: string 536 | format: uuid 537 | partnerIban: 538 | type: string 539 | category: 540 | type: string 541 | cardId: 542 | type: string 543 | format: uuid 544 | referenceText: 545 | type: string 546 | userAccepted: 547 | type: integer 548 | userCertified: 549 | type: integer 550 | pending: 551 | type: boolean 552 | transactionNature: 553 | type: string 554 | createdTS: 555 | type: integer 556 | merchantCountry: 557 | type: integer 558 | smartLinkId: 559 | type: string 560 | format: uuid 561 | linkId: 562 | type: string 563 | format: uuid 564 | confirmed: 565 | type: integer 566 | 401: 567 | description: "Unauthorized" 568 | content: 569 | application/json: 570 | schema: 571 | $ref: '#/components/schemas/Error' 572 | /smrt/transactions/{transactionId}: 573 | get: 574 | description: Transaction metadata 575 | tags: 576 | - transactions 577 | parameters: 578 | - name: transactionId 579 | in: path 580 | required: true 581 | schema: 582 | type: string 583 | format: uuid 584 | responses: 585 | 200: 586 | description: "Success" 587 | content: 588 | application/json: 589 | schema: 590 | type: object 591 | 401: 592 | description: "Unauthorized" 593 | content: 594 | application/json: 595 | schema: 596 | $ref: '#/components/schemas/Error' 597 | /transactions/{transactionId}/metadata: 598 | get: 599 | description: Transaction metadata 600 | tags: 601 | - transactions 602 | parameters: 603 | - name: transactionId 604 | in: path 605 | required: true 606 | schema: 607 | type: string 608 | format: uuid 609 | responses: 610 | 200: 611 | description: "Metadata" 612 | content: 613 | application/json: 614 | schema: 615 | type: object 616 | 401: 617 | description: "Unauthorized" 618 | content: 619 | application/json: 620 | schema: 621 | $ref: '#/components/schemas/Error' 622 | /smrt/reports/{from}/{to}/statements: 623 | get: 624 | description: "Download transactions as CSV" 625 | tags: 626 | - transactions 627 | parameters: 628 | - name: from 629 | in: path 630 | required: true 631 | schema: 632 | type: integer 633 | - name: to 634 | in: path 635 | required: true 636 | schema: 637 | type: integer 638 | responses: 639 | 200: 640 | description: "Result csv file. Accept headers must not be set." 641 | content: 642 | text/csv: 643 | schema: 644 | type: string 645 | format: binary 646 | 401: 647 | description: "Unauthorized" 648 | content: 649 | application/json: 650 | schema: 651 | $ref: '#/components/schemas/Error' 652 | 406: 653 | description: "" 654 | content: 655 | application/json: 656 | schema: 657 | type: object 658 | example: 659 | timestamp: 1524940310519 660 | status: 406 661 | error: Not Acceptable 662 | exception: org.springframework.web.HttpMediaTypeNotAcceptableException 663 | message: Not Acceptable 664 | path: /smrt/reports/%7Bfrom%7D/%7Bto%7D/statements 665 | /transactions/so: 666 | get: 667 | description: "List standing orders" 668 | tags: 669 | - transactions 670 | responses: 671 | 200: 672 | description: "Success" 673 | content: 674 | application/json: 675 | schema: 676 | type: object 677 | properties: 678 | paging: 679 | type: object 680 | properties: 681 | totalResults: 682 | type: integer 683 | data: 684 | type: array 685 | items: 686 | type: object 687 | 401: 688 | description: "Unauthorized" 689 | content: 690 | application/json: 691 | schema: 692 | $ref: '#/components/schemas/Error' 693 | /statements: 694 | get: 695 | description: "List statements" 696 | tags: 697 | - transactions 698 | responses: 699 | 200: 700 | description: "Success" 701 | content: 702 | application/json: 703 | schema: 704 | type: array 705 | items: 706 | type: object 707 | properties: 708 | id: 709 | type: string 710 | url: 711 | type: string 712 | format: url 713 | visibleTS: 714 | type: integer 715 | month: 716 | type: integer 717 | year: 718 | type: integer 719 | 401: 720 | description: "Unauthorized" 721 | content: 722 | application/json: 723 | schema: 724 | $ref: '#/components/schemas/Error' 725 | /statements/{statementId}: 726 | get: 727 | description: "Bank statements as PDF" 728 | tags: 729 | - transactions 730 | parameters: 731 | - name: statementId 732 | in: path 733 | required: true 734 | schema: 735 | type: string 736 | responses: 737 | 200: 738 | description: "Success" 739 | content: 740 | application/pdf: 741 | schema: 742 | type: string 743 | format: binary 744 | 401: 745 | description: "Unauthorized" 746 | content: 747 | application/json: 748 | schema: 749 | $ref: '#/components/schemas/Error' 750 | /smrt/statistics/categories/{from}/{to}: 751 | get: 752 | description: "" 753 | tags: 754 | - transactions 755 | parameters: 756 | - name: from 757 | in: path 758 | required: true 759 | schema: 760 | type: integer 761 | - name: to 762 | in: path 763 | required: true 764 | schema: 765 | type: integer 766 | responses: 767 | 200: 768 | description: "Success" 769 | content: 770 | application/json: 771 | schema: 772 | type: object 773 | properties: 774 | from: 775 | type: integer 776 | to: 777 | type: integer 778 | total: 779 | type: number 780 | totalIncome: 781 | type: number 782 | totalExpense: 783 | type: number 784 | items: 785 | type: array 786 | items: 787 | $ref: '#/components/schemas/CategoryItem' 788 | incomeItems: 789 | type: array 790 | items: 791 | $ref: '#/components/schemas/CategoryItem' 792 | expenseItems: 793 | type: array 794 | items: 795 | $ref: '#/components/schemas/CategoryItem' 796 | 401: 797 | description: "Unauthorized" 798 | content: 799 | application/json: 800 | schema: 801 | $ref: '#/components/schemas/Error' 802 | /barzahlen/check: 803 | get: 804 | description: "Details about barzahlen" 805 | tags: 806 | - account 807 | responses: 808 | 200: 809 | description: "Success" 810 | content: 811 | application/json: 812 | schema: 813 | type: object 814 | properties: 815 | depositAllowance: 816 | type: string 817 | withdrawAllowance: 818 | type: string 819 | remainingAmountMonth: 820 | type: string 821 | feeRate: 822 | type: string 823 | ash26WithdrawalsCount: 824 | type: string 825 | cash26WithdrawalsSum: 826 | type: string 827 | atmWithdrawalsCount: 828 | type: string 829 | atmWithdrawalsSum: 830 | type: string 831 | monthlyDepositFeeThreshold: 832 | type: string 833 | success: 834 | type: boolean 835 | 401: 836 | description: "Unauthorized" 837 | content: 838 | application/json: 839 | schema: 840 | $ref: '#/components/schemas/Error' 841 | /barzahlen/branches: 842 | get: 843 | description: "List locations" 844 | security: [] 845 | tags: 846 | - public 847 | parameters: 848 | - name: nelat 849 | in: query 850 | required: true 851 | schema: 852 | type: number 853 | example: 49.2 854 | - name: nelon 855 | in: query 856 | required: true 857 | schema: 858 | type: number 859 | example: 8.2 860 | - name: swlat 861 | in: query 862 | required: true 863 | schema: 864 | type: number 865 | example: 49 866 | - name: swlon 867 | in: query 868 | required: true 869 | schema: 870 | type: number 871 | example: 8 872 | responses: 873 | 200: 874 | description: "Success" 875 | content: 876 | application/json: 877 | schema: 878 | type: array 879 | items: 880 | type: object 881 | /smrt/categories: 882 | get: 883 | description: "List categories with icons" 884 | tags: 885 | - misc 886 | responses: 887 | 200: 888 | description: "Success" 889 | content: 890 | application/json: 891 | schema: 892 | type: array 893 | items: 894 | type: object 895 | properties: 896 | id: 897 | type: string 898 | base64image: 899 | description: "Base64 encoded image" 900 | type: string 901 | format: binary 902 | name: 903 | type: string 904 | backgroundUrl: 905 | type: string 906 | format: url 907 | 401: 908 | description: "Unauthorized" 909 | content: 910 | application/json: 911 | schema: 912 | $ref: '#/components/schemas/Error' 913 | /features/countries/{country}: 914 | get: 915 | description: "Country features" 916 | security: [] 917 | tags: 918 | - public 919 | parameters: 920 | - name: country 921 | in: path 922 | required: true 923 | schema: 924 | type: string 925 | example: DEU 926 | responses: 927 | 200: 928 | description: "Success" 929 | content: 930 | application/json: 931 | schema: 932 | type: array 933 | items: 934 | type: string 935 | /products: 936 | get: 937 | description: "Info" 938 | tags: 939 | - misc 940 | responses: 941 | 200: 942 | description: "Success" 943 | content: 944 | application/json: 945 | schema: 946 | type: array 947 | items: 948 | type: object 949 | /version: 950 | get: 951 | description: "Info" 952 | security: [] 953 | tags: 954 | - public 955 | responses: 956 | 200: 957 | description: "Success" 958 | content: 959 | application/json: 960 | schema: 961 | type: object 962 | /aff/invitations: 963 | get: 964 | description: "Info" 965 | tags: 966 | - misc 967 | responses: 968 | 200: 969 | description: "Success" 970 | content: 971 | application/json: 972 | schema: 973 | type: array 974 | components: 975 | schemas: 976 | Me: 977 | properties: 978 | id: 979 | type: string 980 | format: uuid 981 | email: 982 | type: string 983 | format: email 984 | firstName: 985 | type: string 986 | lastName: 987 | type: string 988 | kycFirstName: 989 | type: string 990 | kycLastName: 991 | type: string 992 | title: 993 | type: string 994 | gender: 995 | type: string 996 | birthDate: 997 | type: integer 998 | signupCompleted: 999 | type: boolean 1000 | nationality: 1001 | type: string 1002 | mobilePhoneNumber: 1003 | type: string 1004 | format: phone 1005 | shadowUserId: 1006 | type: string 1007 | format: uuid 1008 | transferWiseTermsAccepted: 1009 | type: boolean 1010 | Card: 1011 | properties: 1012 | id: 1013 | type: string 1014 | format: uuid 1015 | publicToken: 1016 | nullable: true 1017 | pan: 1018 | nullable: true 1019 | maskedPan: 1020 | type: string 1021 | expirationDate: 1022 | type: integer 1023 | cardType: 1024 | type: string 1025 | status: 1026 | type: string 1027 | cardProduct: 1028 | nullable: true 1029 | cardProductType: 1030 | type: string 1031 | pinDefined: 1032 | type: integer 1033 | cardActivated: 1034 | type: integer 1035 | usernameOnCard: 1036 | type: string 1037 | exceetExpressCardDelivery: 1038 | type: boolean 1039 | nullable: true 1040 | membership: 1041 | nullable: true 1042 | exceetActualDeliveryDate: 1043 | nullable: true 1044 | exceetExpressCardDeliveryEmailSent: 1045 | nullable: true 1046 | exceetCardStatus: 1047 | nullable: true 1048 | exceetExpectedDeliveryDate: 1049 | nullable: true 1050 | exceetExpressCardDeliveryTrackingId: 1051 | nullable: true 1052 | cardSettingsId: 1053 | nullable: true 1054 | applePayEligible: 1055 | type: boolean 1056 | googlePayEligible: 1057 | type: boolean 1058 | design: 1059 | type: string 1060 | orderId: 1061 | nullable: true 1062 | mptsCard: 1063 | type: boolean 1064 | CategoryItem: 1065 | properties: 1066 | id: 1067 | type: string 1068 | title: Category ID 1069 | income: 1070 | type: number 1071 | expense: 1072 | type: number 1073 | total: 1074 | type: number 1075 | Error: 1076 | properties: 1077 | error: 1078 | type: string 1079 | error_description: 1080 | type: string 1081 | example: 1082 | error: "unauthorized" 1083 | error_description: "An Authentication object was not found in the SecurityContext" 1084 | securitySchemes: 1085 | auth: 1086 | type: oauth2 1087 | description: "Client ID: android, Client Secret: secret, request type: Request body" 1088 | flows: 1089 | password: 1090 | tokenUrl: https://api.tech26.de/oauth/token 1091 | scopes: 1092 | read: Read data 1093 | write: Write data 1094 | trust: Trust 1095 | tags: 1096 | - name: public 1097 | - name: account 1098 | - name: transactions 1099 | - name: misc 1100 | 1101 | externalDocs: 1102 | description: "Find out more about OpenAPI" 1103 | url: "http://swagger.io" 1104 | 1105 | --------------------------------------------------------------------------------