Authentication

To manage the data via our API your application needs to gain access on behalf of the user. This is done through obtaining an access token via OAuth2. The access token must then be send in each request in the HTTP header like this: “Authorization: Bearer TOKEN”.

If you just want to explore the API you can use the Playground which will automatically create and insert such an access token to the HTTP header.

When you want to create your own application you need two kinds of credentials to get such a token: The first part is a fixed pair of client id and client secret. They identify your client application which connects to the API. Each application has its own pair of client id and secret, please use the API Client Management to create your own client credentials.

The second part is obtained through the user and can be done in several ways, here we describe the preferred way through the “Authorization Code” grant type. If you want to develop a pure web application you must use PKCE to not expose the client secret.

Authorization Code

In general, the process looks like this:

  1. You redirect the user in a browser to an url on our end.
  2. The user is required to login and needs to accept your application’s authorization request. The browser redirects back to your application with a code parameter.
  3. Your application can then exchange this code together with the client_secret into an access_token through a backend request to our API.
sequenceDiagram participant Your App participant Kontist API participant User Note over Your App,User: Request via GET (Browser) Your App->>Kontist API: Authorization Request Kontist API->>User: Login mask User->>Kontist API: Username, Password, MFA Kontist API->>Your App: Code Note over Your App, Kontist API: Request via POST (Server) Your App->>Kontist API: Code + Client Secret Kontist API->>Your App: Access Token (+ Refresh Token)

Let us go through the process step by step. At first we need to send the user to a special url in the browser:

https://api.kontist.com/api/oauth/authorize?scope=offline&response_type=code&client_id=78b5c170-a600-4193-978c-e6cb3018dba9&redirect_uri=https://your-application/callback&state=OPAQUE_VALUE

Adjust the parameters like this:

Parameter Description
scope Space delimited list of scopes your application is going to access. Please see the list below.
response_type Set fixed as “code”.
client_id This is your client id you got from us. Do not include the secret here.
redirect_uri This is your application’s callback url which is bound to your client id.
state Can be used to verify our response. You can put in anything here and we will send it back to your application later.
skip_mfa Optional, defaults to false. If you skip the MFA process during login you need to do it later manually before you can access most parts of the API.

Response case 1: The user denied giving access to your application:

The browser is being redirected to your url with an error parameter attached.

https://your-application/callback?state=OPAQUE_VALUE&error=%7B%22type%22%3A%22AccessDeniedError%22%7D

Your application might then inform the user that you can not continue without granting access.

Response case 2: The user accepted giving access to your application:

The browser is being redirected to your url with a code parameter attached.

https://your-application/callback?code=59f53e7cfcf12f1d36e2fb56bb46b8d116fb8406&state=OPAQUE_VALUE

You can now create a request in the backend to exchange the code into an access token.

curl https://api.kontist.com/api/oauth/token \
  -X POST \
  -H 'content-type: application/x-www-form-urlencoded' \
  -d grant_type=authorization_code \
  -d code=59f53e7cfcf12f1d36e2fb56bb46b8d116fb8406 \
  -d client_id=78b5c170-a600-4193-978c-e6cb3018dba9 \
  -d client_secret=my-secret \
  -d redirect_uri=https://your-application/callback

This request needs to contain the client secret and should be done from your backend and not in the frontend to keep the secret confidential.

The result is a JSON object which will look like this:

{
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1NzIyODljMy1hNDk4LTQzMDItYjk3My1hNDRlYzdjZDRmZTMiLCJzY29wZSI6Im9mZmxpbmUiLCJjbGllbnRfaWQiOiI3OGI1YzE3MC1hNjAwLTQxOTMtOTc4Yy1lNmNiMzAxOGRiYTkiLCJpYXQiOjE1NjkyMjY3MDksImV4cCI6MTU2OTIzMDMwOX0.XwkfN1jJ_0C5gSIlzvOHRovmbzbpOXRpZ6HCOg1I7j0",
  "token_type": "Bearer",
  "expires_in": 3599,
  "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1NzIyODljMy1hNDk4LTQzMDItYjk3My1hNDRlYzdjZDRmZTMiLCJzY29wZSI6InJlZnJlc2ggb2ZmbGluZSIsImNsaWVudF9pZCI6Ijc4YjVjMTcwLWE2MDAtNDE5My05NzhjLWU2Y2IzMDE4ZGJhOSIsImlhdCI6MTU2OTIyNjcwOSwiZXhwIjoxNTY5MjMzOTA5fQ.GggO8EQznEH70PTRvicEYxj40oF_RQdHZlJw0jf41xQ",
  "scope": "offline"
}

Extract the access_token and use it in your requests by adding the Authorization: Bearer access_token header to your requests. See this example:

curl --request POST \
  --url https://api.kontist.com/api/graphql \
  --header 'authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1NzIyODljMy1hNDk4LTQzMDItYjk3My1hNDRlYzdjZDRmZTMiLCJzY29wZSI6Im9mZmxpbmUiLCJjbGllbnRfaWQiOiI3OGI1YzE3MC1hNjAwLTQxOTMtOTc4Yy1lNmNiMzAxOGRiYTkiLCJpYXQiOjE1NjkyMjY3MDksImV4cCI6MTU2OTIzMDMwOX0.XwkfN1jJ_0C5gSIlzvOHRovmbzbpOXRpZ6HCOg1I7j0' \
  --header 'content-type: application/json' \
  --data '{ "query": "{viewer{id}}" }'

Refresh Token

The access token obtained in the previous section does expire after some time. If you did specify the “offline” scope you can use the refresh_token from the first response to create a new access token.

curl https://api.kontist.com/api/oauth/token \
  -X POST \
  -H 'content-type: application/x-www-form-urlencoded' \
  -d grant_type=refresh_token \
  -d client_id=78b5c170-a600-4193-978c-e6cb3018dba9 \
  -d client_secret=my-secret \
  -d refresh_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1NzIyODljMy1hNDk4LTQzMDItYjk3My1hNDRlYzdjZDRmZTMiLCJzY29wZSI6InJlZnJlc2ggb2ZmbGluZSIsImNsaWVudF9pZCI6Ijc4YjVjMTcwLWE2MDAtNDE5My05NzhjLWU2Y2IzMDE4ZGJhOSIsImlhdCI6MTU2OTIyNjcwOSwiZXhwIjoxNTY5MjMzOTA5fQ.GggO8EQznEH70PTRvicEYxj40oF_RQdHZlJw0jf41xQ

Response is again a JSON object, similar to the original one:

{
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1NzIyODljMy1hNDk4LTQzMDItYjk3My1hNDRlYzdjZDRmZTMiLCJzY29wZSI6Im9mZmxpbmUiLCJjbGllbnRfaWQiOiI3OGI1YzE3MC1hNjAwLTQxOTMtOTc4Yy1lNmNiMzAxOGRiYTkiLCJpYXQiOjE1NjkyMjY5MTksImV4cCI6MTU2OTIzMDUxOX0.CkxIJ2OmXMovqhJhNjQJvI7FMlSMdFTRgheWYTcLMUQ",
  "token_type": "Bearer",
  "expires_in": 3599,
  "scope": "offline"
}

You can use the refresh token multiple times until the refresh token expires itself and you need to go through the process again.

PKCE Extension for Authorization Code

The standarad Authorization Code flow uses client secrets to grant access tokens, however this is not always practical: some environments can’t securely store such a secret (e.g. a single page web application).

For these environments, we can use the Proof Key for Code Exchange (PKCE) extension for the Authorization Code flow.

sequenceDiagram participant Your App participant Kontist API participant User Note over Your App: Build verifier
and challenge Your App->>Kontist API: Authorization Request (includes challenge) Kontist API->>User: Login mask User->>Kontist API: Username, Password, MFA Kontist API->>Your App: Code Your App->>Kontist API: Code + verifier (POST Request) Note over Kontist API: Validate challenge
with verifier Kontist API->>Your App: Access Token

The PKCE-enhanced Authorization Code flow is very similar to the standard Authorization Code flow and uses a concept of Code Verifier which we will have to generate client side. This code verifier will be hashed and sent as a code_challenge parameter to the /authorize endpoint, and then sent in plain along with the authorization code when requesting the access token.

To generate the code verifier, it is recommended to use the output of a random number generator.

Once the code verifier has been generated, we will need to transform it to a code challenge:

  • First hash it using the SHA256 hash function
  • Then encode it to a base64 string
  • And finally, remove padding from the base64 encoded string (as defined in: https://tools.ietf.org/html/rfc7636#appendix-A)

Here is sample javascript code to perform the transformation:

const code_challenge = base64encode(sha256(code_verifier))
  .split("=")[0]
  .replace("+", "-")
  .replace("/", "_");

We will then take users to the authorization url, providing code_challenge and code_challenge_method:

https://api.kontist.com/api/oauth/authorize
  ?scope=transactions
  &response_type=code
  &client_id=78b5c170-a600-4193-978c-e6cb3018dba9
  &redirect_uri=https://your-application/callback
  &state=OPAQUE_VALUE
  &code_challenge_method=S256
  &code_challenge=xc3uY4-XMuobNWXzzfEqbYx3rUYBH69_zu4EFQIJH8w

The parameters are the same as for the standard Authorization Code flow, with these additional parameters:

Parameter Description
code_challenge Code challenge generated from the code verifier.
code_challenge_method Code challenge method, only “S256” is supported.

After the user has accepted the access request, you will be able to obtain an access token with the code you received and the code verifier you used to generate the code challenge (without specifying the client_secret):

curl https://api.kontist.com/api/oauth/token \
  -X POST \
  -H 'content-type: application/x-www-form-urlencoded' \
  -d grant_type=authorization_code \
  -d code=59f53e7cfcf12f1d36e2fb56bb46b8d116fb8406 \
  -d client_id=78b5c170-a600-4193-978c-e6cb3018dba9 \
  -d redirect_uri=https://your-application/callback \
  -d code_verifier=7963393253896189

Note: Using the PKCE flow will not grant you refresh tokens, even if you specify the offline scope. In order to renew an access token when using this authorization flow, you can use the method described below. The above restriction does not apply if you are using a custom scheme for your application (and thus for your redirect_uri, e.g. my-app://callback-uri).

Refresh with PKCE

As you will not get refresh tokens when using the PKCE authorization method, you can use an alternative method leveraging session cookies.

If a user has granted access with the PKCE authorization flow, the successful authorization will be saved to this user’s session, and you will be able to obtain a new access token without prompting the user by specifying prompt=none when accessing the authorization url:

https://api.kontist.com/api/oauth/authorize
  ?scope=transactions
  &response_type=code
  &client_id=78b5c170-a600-4193-978c-e6cb3018dba9
  &redirect_uri=https://your-application/callback
  &state=OPAQUE_VALUE
  &code_challenge_method=S256
  &code_challenge=xc3uY4-XMuobNWXzzfEqbYx3rUYBH69_zu4EFQIJH8w
  &prompt=none

The user will be redirected directly to your application with a new authorization code that you can use to request a new access token.

Web Message Response Mode

While the above method will work for Single Page Applications (SPA), it has the downside of doing redirects, and SPA client application state will be lost.

To work around this issue, we can use the web message response type by following these steps:

  1. Setup a web message listener to get the authorization code:
      window.addEventListener("message", event => {
     if (event.origin === "https://api.kontist.com") {
       const { code } = event.data.response;
     }
      });
    
  2. Create an iframe and set its source to the authorization url, specifying response_mode=web_message:
    const iframe = document.createElement("iframe");
    iframe.style.display = "none";
    document.body.appendChild(iframe);
    iframe.src = "https://api.kontist.com/api/oauth/authorize?scope=transactions&response_type=code&client_id=78b5c170-a600-4193-978c-e6cb3018dba9&redirect_uri=https://your-application/callback&state=OPAQUE_VALUE&code_challenge_method=S256&code_challenge=xc3uY4-XMuobNWXzzfEqbYx3rUYBH69_zu4EFQIJH8w&prompt=none&response_mode=web_message"
    
  3. The server will then send a web message with the new authorization code that we can use to get a new access token

Multi-Factor Authentication

To have access to Kontist API endpoints that require strong customer authentication, you need to pass Multi-Factor Authentication (MFA).

We provide a simplified push notification MFA flow for users who have installed the Kontist Application and paired their device in it.

sequenceDiagram participant Your App participant Kontist API participant Kontist App Your App->>Kontist API: Create Challenge Kontist API->>Your App: Challenge ID Kontist API->>+Kontist App: MFA Request loop Poll Your App->>Kontist API: Get challenge status Kontist API->>Your App: PENDING end Note over Kontist App: User clicks "confirm" Kontist App->>-Kontist API: MFA Confirmation Your App->>Kontist API: Get challenge status Kontist API->>Your App: VERIFIED Your App->>Kontist API: Get Token Kontist API->>Your App: Access Token

Creating a challenge

To initiate the MFA procedure, you will need to create an MFA Challenge:

curl "https://api.kontist.com/api/user/mfa/challenges" \
  -H "Authorization: Bearer ey..." \
  -X POST

The above command returns JSON structured like this:

{
  "id": "5f7c36e2-e0bf-4755-8376-ac6d0711192e",
  "status": "PENDING",
  "expiresAt": "2019-12-02T16:25:15.933+00:00"
}
HTTP Request

POST https://api.kontist.com/api/user/mfa/challenges

Response
Field Description
id ID of the challenge.
status Status of the challenge. One of PENDING, VERIFIED, DENIED. When created, it will be “PENDING”.
expiresAt Time at which the challenge will expire.

Verifying a challenge

The next step to pass MFA is to verify the challenge that was just created.

The Kontist user will receive a push notification on his device prompting him to “Confirm login”. After logging into the application and confirming, the challenge will be verified (its status will be updated to VERIFIED).

Polling for challenge verification

Once a challenge has been created and you are waiting for its verification, you can periodically access the below endpoint until the status changes to VERIFIED or DENIED:

curl "https://api.kontist.com/api/user/mfa/challenges/5f7c36e2-e0bf-4755-8376-ac6d0711192e" \
  -H "Authorization: Bearer ey..." \
  -X GET

The above command returns JSON structured like this:

{
  "id": "5f7c36e2-e0bf-4755-8376-ac6d0711192e",
  "status": "VERIFIED",
  "expiresAt": "2019-12-02T16:25:15.933+00:00"
}
HTTP Request

GET https://api.kontist.com/api/user/mfa/challenges/{challenge_id}

Response
Field Description
id ID of the challenge.
status Status of the challenge. One of PENDING, VERIFIED, DENIED.
expiresAt Time at which the challenge will expire.

Getting a confirmed token

Once the challenge has been verified (status updated to VERIFIED), you can obtain one (and only one) confirmed access token.

If the OAuth2 client involved uses refresh tokens, you will also obtain a confirmed refresh token with the response. Such a refresh token can be used to renew confirmed access tokens. This will allow you to perform the MFA procedure only once for the whole lifetime of your refresh token.

curl "https://api.kontist.com/api/user/mfa/challenges/5f7c36e2-e0bf-4755-8376-ac6d0711192e/token" \
  -H "Authorization: Bearer ey..." \
  -X POST

The above command returns JSON structured like this:

{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI4ODNjNTc4ZS01M2QwLTRhYmEtOTBiNC02MmRmZmFkNTE5NTMiLCJzY29wZSI6ImF1dGgiLCJjbmYiOnsia2lkIjoiMmExNjRlYzYtZTJkNC00OTI4LTk5NDItZDU5YWI2Yzc4ZDU5In0sImlhdCI6MTU2NzQwOTExNSwiZXhwIjoxNTY3NDEyNzE1fQ.m35NDpQMAB5DMebXUxEzWupP3i-iAwoyVy2sGF1zp_8",
  "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIwMTIwMmUwZi0yOWE4LTRlNDgtODcyNi01OGFiMDAxNDBiNTgiLCJzY29wZSI6InJlZnJlc2ggYWNjb3VudHMgb2ZmbGluZSIsImNsaWVudF9pZCI6IjU4NjcwYmRhLWQxZDEtNGJlOC1hZGEyLTcwNjFkZWVhYjMxNyIsImNuZiI6eyJraWQiOiJlNTA3NTQ5NC1iNWM0LTRjYTEtYjE4MC01ZjNjNTBhNjA2OWMifSwiaWF0IjoxNTc2ODM2MDU5LCJleHAiOjE1NzY4NDMyNTl9.DydSAzxAFncGlWQMNZZp4q48EjAoz6FR6IboxTPx2j4"
}
HTTP Request

POST https://api.kontist.com/api/user/mfa/challenges/{challenge_id}/token

Response
Field Description
token Auth token with confirmation claim that should be used for endpoints that require strong customer authentication.
refresh_token Refresh token with confirmation claim that can be used to renew confirmed access tokens.

Scopes

  • accounts
  • clients (manage OAuth2 clients, usually not required)
  • offline (required for refresh token)
  • statements
  • subscriptions
  • transactions
  • transfers
  • users

Logout

During login, we do create a browser-based session and store which clients and scopes already have been authenticated by the user. So next time the user wants to access the application we do not require the user to enter his credentials again. This session is automatically destroyed once the browser is closed. If you want to explicitly logout the user you can redirect him to the /oauth/logout endpoint. This should be done inside the browser context and in a hidden iframe.

Limits

To ensure our API is available to all of our users, we do apply some limits. Depending on the situation, the actual limits may vary. Please make sure to stay below the following values to be on the safe side. For single requests these values might be exceeded.

Limit Description
Requests <100 per minute
Query size <10,000 characters
Query complexity limited, i.e. <500 different fields
Errors <= 3 errors are returned

Advanced Topics

Some clients might use device binding with certificates as MFA or make use of other OAuth2 grant types. This depends on the environment where this application will run. Please see our advanced topics on authentication.

Using the GraphQL API

Fetch transactions

Transactions are returned using the Connection pattern to allow pagination. A simple query showing the first 3 transactions may look like this:

{
  viewer {
    mainAccount {
      transactions(first: 3) {
        edges {
          node {
            name
            amount
            iban
          }
        }
      }
    }
  }
}

Just send the query inside of a POST request to /api/graphl and wrap it into a query property.

curl --request POST \
  --url https://api.kontist.com/api/graphql \
  --header 'authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1NzIyODljMy1hNDk4LTQzMDItYjk3My1hNDRlYzdjZDRmZTMiLCJzY29wZSI6Im9mZmxpbmUiLCJjbGllbnRfaWQiOiI3OGI1YzE3MC1hNjAwLTQxOTMtOTc4Yy1lNmNiMzAxOGRiYTkiLCJpYXQiOjE1NjkyMjY3MDksImV4cCI6MTU2OTIzMDMwOX0.XwkfN1jJ_0C5gSIlzvOHRovmbzbpOXRpZ6HCOg1I7j0' \
  --header 'content-type: application/json' \
  --data '{ "query": "{viewer{mainAccount{...}}}" }'

Result:

{
  "data": {
    "viewer": {
      "mainAccount": {
        "transactions": {
          "edges": [
            {
              "node": {
                "name": "Autoservice Gmbh",
                "amount": -16700,
                "iban": "DE89370400440532013000"
              }
            },
            {
              "node": {
                "name": "John Doe",
                "amount": 84609,
                "iban": "DE89370400440532013000"
              }
            },
            {
              "node": {
                "name": "John Doe",
                "amount": 13900,
                "iban": "DE89370400440532013000"
              }
            }
          ]
        }
      }
    }
  }
}

Create a new transfer

Creating transfers consist of two steps. First the transfer is created with createTransfer which will return the confirmationId of the new transfer. Then we send a SMS to the user that contains a code and we need to call confirmTransfer.

sequenceDiagram participant Your App participant Kontist API participant User Your App->>Kontist API: createTransfer Kontist API->>Your App: confirmationId Kontist API->>User: SMS with code User->>Your App: Code from SMS Your App->>Kontist API: confirmTransfer (with confirmationId, code)

1. Step - add a new transfer

mutation {
  createTransfer(
    transfer: { iban: "DE1234....", recipient: "Johnny Cash", amount: 1234 }
  ) {
    confirmationId
  }
}

2. Step - verify the transfer

mutation {
  confirmTransfer(confirmationId: "1234", authorizationToken: "4567") {
    id
    recipient
  }
}

Schema Reference

Query

Field Argument Type Description
getReceiptExports [ReceiptExport!]! Get all existing receipt exports requested by the user
BWASummary BWASummary!
year Int!
datevExports [DatevExport!]! Get all existing DATEV Exports requested by the user
hasDeviceRestrictedKey Boolean! Determines if user device has restricted key added
deviceId String!
listBoundDevices [BoundDevice!]! Returns list of bound devices
getDeviceBindingRequest DeviceBindingRequest Get device binding request
id String
draftTransactions [DraftTransaction!]!
status SystemStatus!
listPaymentMethods [PaymentMethod!]!
getIBANInformation IBANInformation! Get bank information for IBAN
iban String! IBAN to get information for
naceCodes [NACECode!]!
contacts [Contact!]!
filter String
genericFeatures [GenericFeature!]! Get all released generic features, that are needed before user creation
termsAndConditions [TermsAndConditions!]
name String
viewer User The current user information

Mutation

Field Argument Type Description
createTransactionAsset CreateAssetResponse! Create a transaction Asset and obtain an upload config
uploadPlatform RequestPlatform
assetableType String
filetype String!
name String!
transactionId ID!
finalizeTransactionAssetUpload TransactionAsset! Confirm and validate an Asset upload as completed
assetId ID!
deleteTransactionAsset MutationResult! Remove an Asset from the Transaction
assetId ID!
updateTaxYearSettings [TaxYearSetting!]! Update individual tax-related settings per year
taxYearSettings [TaxYearSettingInput!]!
updateVatYearSetting VatYearSetting!
vatPaymentFrequency PaymentFrequency!
year Int!
agerasLeadRedirect MutationResult! Send Lead data to designated Zap to redirect lead to Agreas
finalizeAssetUpload Asset! Confirm and validate an Asset upload as completed
assetId ID!
deleteAsset MutationResult! Remove an Asset
assetId ID!
createOCRAsset CreateAssetResponse! Create an OCR Asset and obtain an upload config
filetype String!
name String!
extractOCRData OCRResult Performs OCR on the asset and extracts data
assetId String!
generateReceiptExport ReceiptExportResult! Exports list of receipts for given time frame
payload ReceiptExportInput!
createClient Client! Create an OAuth2 client
client CreateClientInput!
updateClient Client! Update an OAuth2 client
client UpdateClientInput!
deleteClient Client! Delete an OAuth2 client
id String!
createTransfers ConfirmationRequest! Create multiple transfers at once. Only regular SEPA Transfers are supported
transfers [CreateSepaTransferInput!]!
confirmTransfers BatchTransfer! Confirm the transfers creation
authorizationToken String! The confirmation token received by SMS on the user's phone
confirmationId String!
confirmBizTaxBookkeeping BizTaxBookkeepingConfirmation!
year Int!
previewBizTaxDeclaration BizTaxDeclarationSubmission!
year Int!
type BizTaxDeclarationType!
submitBizTaxDeclaration BizTaxDeclarationSubmission!
year Int!
type BizTaxDeclarationType!
createBusinessAddress BusinessAddress! Creates an user's business address
payload CreateBusinessAddressInput!
exitBusinessAsset MutationResult! Exit business asset
payload ExitBusinessAssetPayload!
id ID!
deleteBusinessAsset MutationResult! Delete business asset
id ID!
createCard Card! Create a new card
type CardType!
cardHolderRepresentation String
activateCard Card! Activate a card
verificationToken String
id String!
addGooglePayCardToken GooglePayCardToken! Adds Google Pay card token reference id for given wallet id
tokenRefId String!
walletId String!
id String!
cardPushProvisioning ⚠️ PushProvisioningOutput! Adds card to given wallet

⚠️ DEPRECATED

Please use more secure requestCardPushProvisioning and confirmCardPushProvisioning
android PushProvisioningAndroidInput
ios PushProvisioningIosInput
cardId String!
requestCardPushProvisioning AuthorizeChangeRequestResponse! Adds card to Apple/Google Pay wallet
android PushProvisioningAndroidInput
ios PushProvisioningIosInput
deviceId String!
cardId String!
confirmCardPushProvisioning PushProvisioningOutput! Confirms adding card to Apple/Google Pay wallet
payload ConfirmChangeRequestArgs!
cardId String!
deleteGooglePayCardToken GooglePayCardToken! Deletes Google Pay card token reference id for given wallet id
tokenRefId String!
walletId String!
id String!
updateCardSettings CardSettings! Update settings (e.g. limits)
settings CardSettingsInput!
id String!
changeCardStatus Card! Block or unblock or close a card
id String!
action CardAction!
changeCardPIN ConfirmationRequest! Set a new PIN, needs to be confirmed
pin String!
id String!
confirmChangeCardPIN ConfirmationStatus! Confirm a PIN change request
authorizationToken String!
confirmationId String!
id String!
changeCardPINEncrypted Card! Encrypted card PIN change
payload ChangeCardPINEncryptedInput!
id String!
changeCardPINWithChangeRequest ConfirmationRequest! Encrypted card PIN change with Change Request
payload ChangeCardPINWithChangeRequestInput!
id String!
replaceCard Card! Call when customer's card is lost or stolen
id String!
reorderCard Card! Close and order new card. Call when customer's card is damaged
id String!
setCardHolderRepresentation String! Set the card holder representation for the customer
cardHolderRepresentation String!
virtualCardDetails String! Returns encrypted card details for virtual card
args VirtualCardDetailsArgs!
id String!
whitelistCard WhitelistCardResponse!
confirmFraud ConfirmFraudResponse!
authorizeChangeRequest AuthorizeChangeRequestResponse!
deviceId String!
changeRequestId String!
confirmChangeRequest ConfirmChangeRequestResponse!
changeRequestId String!
deviceId String!
signature String
authorizationToken String
createDatevExport DatevExport! Creates a DATEV export
payload DatevExportInput!
categorizeTransactionForDeclaration CategorizeTransactionForDeclarationResponse! Categorize transaction for VAT declaration
id ID!
categoryCode String
vatCategoryCode String
category TransactionCategory
date String
isSplit Boolean
businessAssetInput BusinessAssetInput
submitDeclaration Declaration! Submits UStVA declaration
year Int!
period String!
upsertDeclaration Declaration! Submits UStVA declaration
payload UpsertDeclarationArgs!
addDeviceKey String! Add restricted key to selected device
signature String!
key String!
deviceId String!
deleteBoundDevice Boolean! Delete bound device
deviceId String!
createDeviceBindingRequest DeviceBindingRequest! Create device binding request
deviceId String
deviceName String!
updateDeviceBindingRequest Boolean! Update device binding request
isConfirmation Boolean!
id String!
createConsentForDeviceMonitoring String Records consent from the given person to collect device fingerprints on their registered device
eventType DeviceConsentEventType!
updateConsentForDeviceMonitoring MutationResult Records change of consent to collect device fingerprints on their registered device
eventType DeviceConsentEventType!
deviceConsentId String!
createActivityForDeviceMonitoring MutationResult! Creates user activity for device monitoring
activityType DeviceActivityType!
createUserEmailAlias MutationResult!
hash String!
alias String!
matchEmailDocumentToTransaction MutationResult!
transactionId ID!
emailDocumentId ID!
deleteEmailDocument MutationResult!
id ID!
createDraftTransaction CreateDraftTransactionResponse! Creates a draft external transaction entry
fileName String!
updateDraftTransaction DraftTransaction Updates draft external transaction entry. Returns null if finalized transaction was created
payload UpdateDraftTransactionInput!
deleteDraftTransaction MutationResult! Deletes draft transaction
id String!
requestFrodaAccessUrl String Request access url
onboardUser String! Onboards user if needed
getLendingEligibility FrodaLendingEligibility! Check if user is eligible for lending
connectIntegration MutationResult! Connect user to a bookkeeping partner
type IntegrationType!
authorizationData String! Authorization data sent by the bookkeeping partner to allow a user to connect to it
updateInvoiceCustomer InvoiceCustomerOutput!
payload InvoiceCustomerInput!
createInvoiceLogo CreateInvoiceLogoResponse! The logo a user can add to his invoice. The path to it is stored in invoiceSettings
filetype String!
deleteInvoiceLogo MutationResult! Deletes the logo of a user's settings entry
updateInvoice InvoiceOutput!
payload InvoiceInput!
deleteInvoice MutationResult!
id ID!
duplicateInvoice InvoiceOutput!
id ID!
updateInvoiceSettings InvoiceSettingsOutput!
payload InvoiceSettingsInput!
upsertProducts [Product!]! Create or update user products that can be linked to the user's invoice(s)
payload [UserProductInput!]!
updateUserNotifications [Notification!]! Update the push-notifications a user should receive
active Boolean!
type NotificationType!
requestOverdraft Overdraft Create Overdraft Application - only available for Kontist Application
activateOverdraft Overdraft Activate Overdraft Application - only available for Kontist Application
updateOverdraft Overdraft Updates overdraft application timestamps for rejected and offered overdraft screens - only available for Kontist Application
offeredScreenShown Boolean
rejectionScreenShown Boolean
updateExternalTransaction RawTransactionProjection! Updates external transaction
payload UserExternalTransactionInput!
deleteExternalTransaction MutationResult! Deletes external transaction
id String!
upsertQuestionnaireDocument QuestionnaireDocument!
payload QuestionnaireDocumentInput!
questionnaireId ID!
createQuestionnaireDocumentAsset CreateAssetResponse!
filetype String!
name String!
questionnaireDocumentId ID!
deleteQuestionnaireDocument MutationResult!
questionnaireDocumentId ID!
startQuestionnaire Questionnaire!
questionnaireId ID
year Int!
type QuestionnaireType!
submitQuestionnaireAnswer Questionnaire!
value JSON
questionName String!
questionnaireId ID!
postponeQuestionnaireAnswer Questionnaire!
questionName String!
questionnaireId ID!
resetLastQuestionnaireAnswer Questionnaire!
questionnaireId ID!
resetQuestionnaire MutationResult!
questionnaireId ID!
submitBookkeepingQuestionnaire Questionnaire!
questionnaireId ID!
createReview CreateReviewResponse!
platform ReviewTriggerPlatform!
triggerName ReviewTriggerName!
updateReview MutationResult!
status UserReviewStatus!
reviewId Int!
signSeizurePaymentOrder MutationResult! Allow user to sign the seizure payment order
signature String!
seizureId ID!
updateDocument Document! Updates document meta
id ID! Document id
name String Document's name
metadata UpdateDocumentMetadata Document's metadata
deleteDocument MutationResult! Deletes document
id ID!
subscribeToPlan UserSubscription! Subscribe user to a plan
couponCode String
type PurchaseType!
updateSubscriptionPlan UpdateSubscriptionPlanResult! Update user's subscription plan
couponCode String
newPlan PurchaseType!
finalizeTaxCase TaxCase!
shouldFinalizeIncomeTax Boolean
shouldFinalizeBusinessTax Boolean
taxCaseId ID!
skipIncomeTax TaxCase!
taxCaseId ID!
approveDeclaration DeclarationApproval!
payload CreateDeclarationApprovalInput!
declineDeclaration DeclarationDecline!
payload CreateDeclarationDeclineInput!
createTopUp TopUpCreationResult!
topUpData TopUpInput!
deletePaymentMethod Boolean!
paymentMethodId String!
refundDirectDebit MutationResult!
transactionId String!
initDirectDebitRefund AuthorizeThroughDeviceSigningOrMobileNumberResponse!
deliveryMethod DeliveryMethod!
deviceId String!
transactionId String!
confirmDirectDebitRefund MutationResult!
token String
signature String
deviceId String!
changeRequestId String!
updateTransaction Transaction! Categorize a transaction with an optional custom booking date for VAT or Tax categories, and add a personal note
id String!
category TransactionCategory
userSelectedBookingDate DateTime When a transaction corresponds to a tax or vat payment, the user may specify at which date it should be considered booked
personalNote String The personal note of the transaction - 250 max characters
vatRate VatRate
categoryCode String
vatCategoryCode String
splits [TransactionSplitInput!]
businessAssetInput BusinessAssetInput
createTransactionSplits RawTransactionProjection! Create transaction splits
splits [CreateTransactionSplitsInput!]!
transactionId ID!
updateTransactionSplits RawTransactionProjection! Update transaction splits
splits [UpdateTransactionSplitsInput!]!
transactionId ID!
deleteTransactionSplits RawTransactionProjection! Delete transaction splits
transactionId ID!
cancelTransfer ConfirmationRequestOrTransfer! Cancel an existing Timed Order or Standing Order
deliveryMethod DeliveryMethod
deviceId String
id String!
type TransferType!
confirmCancelTransfer Transfer! Confirm a Standing Order cancellation
signature String Signed stringToSign from transfer cancelation response
deviceId String ID of device which requested transfer cancelation
authorizationToken String The confirmation token received by SMS on the user's phone
confirmationId String!
type TransferType!
createTransfer ConfirmationRequest! Create a transfer. The transfer's type will be determined based on the provided input
deliveryMethod DeliveryMethod Delivery method of transfer confirmation
deviceId String ID of device which requested transfer creation
transfer CreateTransferInput! Transfer payload
updateTransfer ConfirmationRequestOrTransfer!
deliveryMethod DeliveryMethod Delivery method of transfer confirmation
deviceId String ID of device which requested transfer update
transfer UpdateTransferInput!
confirmTransfer Transfer! Confirm a transfer creation
signature String Signed stringToSign from transfer creation response
deviceId String ID of device which requested transfer creation
authorizationToken String The confirmation token received by SMS on the user's phone
confirmationId String! ID obtained on transfer creation
createContact Contact! Create contact
payload CreateContactArgs!
updateContact Contact! Update contact
payload UpdateContactArgs!
deleteContact MutationResult! Delete contact
id ID!
createUser PublicMutationResult! Create a new user
payload CreateUserInput!
signPOA MutationResult! Allow user to sign Power of Attorney
dependents [UserDependentInput!]
signature String!
updateTermsAndConditions TermsAndConditions! Change Terms And Conditions confirmation status
payload UpdateTermsAndConditionsArgs!
dismissBanner MutationResult!
name BannerName!
userConfirmation MutationResult!
confirmation UserConfirmation!
year Int
requestIdentification IdentificationDetails! Create a new identification if applicable
updateUserTaxDetails MutationResult! Update user's tax details
payload UserTaxDetailsInput!
updateTaxNumber TaxNumber! Updates user's taxNumber
payload UpdateTaxNumberInput!
id ID!
createTaxNumber TaxNumber! Create user's taxNumber
payload CreateTaxNumberInput!
deleteTaxNumber MutationResult! Delete user's taxNumber
id ID!
upsertUserTour UserTour! Upsert user tour
payload UpsertUserTourInput!
updateUserSignupInformation MutationResult! Update user signup information
payload UserUpdateInput!
updateSolarisUser UserOrAuthResponse! Update user fields on solaris
deliveryMethod DeliveryMethod
payload UpdateSolarisUserInput!
deviceId String!
confirmUpdateSolarisUser User! Confirms update of user fields on solaris
payload ConfirmChangeRequestArgs!
submitQuestionSet Boolean! Submit answer to a question
input SubmitQuestionSetInput!

Objects

Account

The bank account of the current user

Field Argument Type Description
publicId ID!
createdAt DateTime!
iban String!
cardHolderRepresentation String
availableBalance Int!
bic String!
freeTopUpCreated Boolean!
canCreateOverdraft Boolean!
cardHolderRepresentations [String!]!
hasPendingCardFraudCase Boolean!
pendingTransactionVerification PendingTransactionVerification!
balance Int!
solarisBalance SolarisAccountBalance! Retrieve account balance from Solaris
stats AccountStats! Different information about account balances, e.g. taxes, VAT, ...
taxYearSettings [TaxYearSetting!]! Individual tax-related settings per year
vatYearSettings [VatYearSetting!]! Account vat-related settings
year Int
cards [Card!]!
card Card
filter CardFilter
declarations [Declaration!]!
type DeclarationType!
declarationPdfUrl String
id Int!
declarationStats DeclarationStats!
year Int!
period String!
overdraft Overdraft Overdraft Application - only available for Kontist Application
transaction RawTransactionProjection
id ID!
transactions TransactionsConnection!
preset FilterPresetInput
filter TransactionFilter
first Int The number of items to return after the provided cursor up to 50
last Int The number of items to return before the provided cursor up to 50
after String The cursor of the item to start from. Use in conjunction with 'first'
before String The cursor of the item to start from. Use in conjunction with 'last'
transactionFilterPresets [FilterPreset!]!
transactionsCSV String!
to DateTime
from DateTime
transfer Transfer
id ID!
type TransferType!
transfers TransfersConnection!
where TransfersConnectionFilter
type TransferType!
first Int The number of items to return after the provided cursor up to 50
last Int The number of items to return before the provided cursor up to 50
after String The cursor of the item to start from. Use in conjunction with 'first'
before String The cursor of the item to start from. Use in conjunction with 'last'
transferSuggestions [TransferSuggestion!] A list of iban/name combinations based on existing user's transactions, provided to assist users when creating new transfers

AccountBalance

Field Argument Type Description
value Float!
currency String
unit String

AccountStats

Field Argument Type Description
accountBalance Int! The amount that is currently available on the bank account
yours Int! The amount that can be spent after VAT and taxes calculation
unknown Int! The amount that is not categorized
main Int! The amount that can be spent plus the amount from uknown
vatTotal Int! The amount of VAT that is owed (current + last years)
vatAmount Int! The amount of VAT that is owed in the current year
vatMissing Int! The difference between vatTotal and accountBalance, if vatTotal > accountBalance
taxTotal Int! The amount of tax that is owed (current + last years)
taxCurrentYearAmount Int! The amount of tax that is owed in the current year
taxPastYearsAmount Int The amount of tax that was owed for all past years combined
taxMissing Int! The difference between taxTotal and accountBalance, if taxTotal > accountbalance

Asset

Field Argument Type Description
id ID!
name String!
filetype String!
assetableId ID!
path String!
thumbnail String!
fullsize String!

AuthorizeChangeRequestResponse

Field Argument Type Description
stringToSign String!
changeRequestId String

AuthorizeThroughDeviceSigningOrMobileNumberResponse

Field Argument Type Description
stringToSign String
changeRequestId String!

AvailableStatements

Field Argument Type Description
year Int!
months [Int!]!

BWASummary

Field Argument Type Description
income Int! Income amount in cents
expenses Int! Expenses amount in cents
netIncome Int! NetIncome amount in cents
withdrawalsAndDeposits122 Int! Withdrawals and deposits amount in cents
withdrawalsAndDeposits123 Int! Withdrawals and deposits amount in cents
Field Argument Type Description
name BannerName!
dismissedAt DateTime
isVisible Boolean!

BatchTransfer

Field Argument Type Description
id String!
status BatchTransferStatus!
transfers [SepaTransfer!]!

BizTaxBookkeepingConfirmation

Field Argument Type Description
year Int!
confirmedAt DateTime!

BizTaxCarUsageEuerRows

Field Argument Type Description
row106 Int!
row140 Int!
row142 Int!
row176 Int!

BizTaxDeclarationResultMessage

Field Argument Type Description
type BizTaxDeclarationResultMessageType!
text String!
formLineNumber String!
fieldIdentifier String!

BizTaxDeclarationSubmission

Field Argument Type Description
year Int!
type BizTaxDeclarationType!
isFinal Boolean!
isSuccessful Boolean!
submittedAt DateTime!
pdf String
calculationSheet String
messages [BizTaxDeclarationResultMessage!]!

BizTaxHomeOfficeEuerRows

Field Argument Type Description
row172 Int!
row185 Int!

BizTaxQuestionnairesEuer

Field Argument Type Description
travelExpenses BizTaxTravelExpensesEuerRows!
homeOffice BizTaxHomeOfficeEuerRows!
carUsage BizTaxCarUsageEuerRows!

BizTaxTravelExpensesEuerRows

Field Argument Type Description
row147 Int!
row171 Int!
row176 Int!

BoundDevice

Field Argument Type Description
id String!
name String!

BusinessAddress

Business Address of a Kontax User

Field Argument Type Description
id ID!
street String!
postCode String!
city String!
movingDate DateTime!
deletedAt DateTime

BusinessAssetMetaData

Field Argument Type Description
amount Float!
transactionName String
transactionValutaDate DateTime
transactionDescription String

BusinessAssetReceipt

Field Argument Type Description
id String!
filetype String!
fullsize String!

BusinessAssetResponse

Field Argument Type Description
id String!
assetClass String!
assetType AssetType!
amount Float!
purchaseDate DateTime!
depreciationPeriodYears Float!
receipts [BusinessAssetReceipt!]!
depreciations [Depreciation!]!
naturallyDepreciated Boolean!
categoryCode String!
note String
endAmount Int
exitReason ExitReason
isExitedWithVat Boolean
exitDate DateTime
exitAmount Int
bookValueOnExit Int
metaData BusinessAssetMetaData

Card

Field Argument Type Description
id String!
status CardStatus!
type CardType!
pinSet Boolean!
addedToApplePay Boolean!
newCardOrdered Boolean!
holder String
formattedExpirationDate String
maskedPan String
settings CardSettings!
googlePayTokens [GooglePayCardToken!]!
pinKey CardPINKey!

CardLimit

Field Argument Type Description
maxAmountCents Float!
maxTransactions Float!

CardLimits

Field Argument Type Description
daily CardLimit!
monthly CardLimit!

CardPINKey

Field Argument Type Description
kid String!
kty String!
use String!
alg String!
n String!
e String!

CardSettings

Field Argument Type Description
cardSpendingLimits CardSpendingLimits

CardSpendingLimits

Field Argument Type Description
atm CardLimits!
purchase CardLimits!

CategorizeTransactionForDeclarationResponse

Field Argument Type Description
categoryCode String
category TransactionCategory
date String
vatCategoryCode String

CategoryGroup

Field Argument Type Description
categoryCode String!
amount Int!
categoryCodeTranslation String!
transactions [TransactionForAccountingView!]!

Client

Field Argument Type Description
id ID!
redirectUri String The URL to redirect to after authentication
name String! The name of the OAuth2 client displayed when users log in
grantTypes [GrantType!] The grant types (i.e. ways to obtain access tokens) allowed for the client
scopes [ScopeType!] The scopes the client has access to, limiting access to the corresponding parts of the API

ConfirmChangeRequestResponse

Field Argument Type Description
success Boolean!

ConfirmFraudResponse

Field Argument Type Description
id String!
resolution CaseResolution!

ConfirmationRequest

Field Argument Type Description
confirmationId String!
stringToSign String

ConfirmationStatus

Field Argument Type Description
status String!

Contact

User transfer contacts

Field Argument Type Description
id ID!
iban String!
name String!
favorite Boolean!

CreateAssetResponse

Field Argument Type Description
assetId ID!
url String!
formData [FormDataPair!]!
name String

CreateDraftTransactionResponse

Field Argument Type Description
id ID!
assetData CreateAssetResponse!

CreateInvoiceLogoResponse

Field Argument Type Description
url String!
formData [InvoiceLogoFormDataPair!]!

CreateReviewResponse

Field Argument Type Description
id Float
error String

Customer

Field Argument Type Description
id ID!
name String
email String
address String
country String
vatNumber String
taxNumber String

DashboardInvoice

Field Argument Type Description
id ID!
status InvoiceStatusType!
invoiceNumber Int
dueDate DateTime
paidAt DateTime
transactionId ID
amount Int
name String

DatevExport

Field Argument Type Description
id ID!
year Int!
skr SKR!
withReceipts Boolean!
uploadedAt DateTime
status DatevExportStatus!
createdAt DateTime!
url String

Declaration

Field Argument Type Description
period String!
year Int!
id Int!
amount Int
uploadedAt DateTime
submissionStatus SubmissionStatus

DeclarationApproval

Field Argument Type Description
id ID!
jointDeclaration Boolean
delaySubmission Boolean
updatedAt DateTime!
createdAt DateTime!

DeclarationDecline

Field Argument Type Description
id ID!
reason String!
updatedAt DateTime!
createdAt DateTime!

DeclarationStats

Field Argument Type Description
amount Int!
categoryGroups [CategoryGroup!]!
uncategorized [TransactionForAccountingView!]!
exitedBusinessAssetsWithVat [BusinessAssetResponse!]!

Depreciation

Field Argument Type Description
year Float!
startAmount Float!
depreciationAmount Float!
depreciationMonths Float!

DeviceBindingRequest

Device binding attempts

Field Argument Type Description
id ID!
ipAddress String!
deviceName String!
address String!
confirmedAt DateTime
rejectedAt DateTime
createdAt DateTime!

DirectDebitFee

Field Argument Type Description
id Int!
type TransactionFeeType!
name String
amount Int!
usedAt DateTime
invoiceStatus InvoiceStatus!

Discount

Field Argument Type Description
amount Float!
couponIsValid Boolean!
subtitle String
description String

Document

Field Argument Type Description
id ID!
name String!
type String!
note String
createdAt DateTime!
url String!
downloadUrl String!
metadata DocumentMetadata

DocumentCategory

Field Argument Type Description
id ID!
categoryName String!
folderName String!

DocumentMetadata

Field Argument Type Description
category DocumentCategory!

DraftTransaction

Field Argument Type Description
id ID!
paymentDate DateTime
vatCategoryCode String
name String
note String
amount Int
isCashTransaction Boolean!
categoryCode CategoryCode
vatRate VatRate
assets [Asset!]!

EmailDocument

Field Argument Type Description
id ID!
transactionId ID
amount Int
currency String
date DateTime
documentNumber String
name String
iban String
matchStatus DocumentMatchStatus
createdAt DateTime!
url String!
filename String!
matches [Transaction!] Returns an array of transactions which potential match with an email document. Note that just a subset of transaction fields gets returned

FibuFinalCheckTask

Field Argument Type Description
status FibuFinalCheckTaskStatus!
type FibuFinalCheckTaskType!

FormDataPair

Field Argument Type Description
key String!
value String!

FrodaLendingEligibility

Field Argument Type Description
eligible Boolean!
canRetryOn DateTime

GenericFeature

Field Argument Type Description
name String!

GenericFilterPreset

Field Argument Type Description
value String!

GooglePayCardToken

Field Argument Type Description
walletId String!
tokenRefId String!

IBANInformation

Field Argument Type Description
isSepaInstantTransferAvailable Boolean!
bankName String
bic String

Icon

Field Argument Type Description
uri String!

IdentificationDetails

Field Argument Type Description
link String The link to use for IDNow identification
status IdentificationStatus The user's IDNow identification status
attempts Int! The number of identifications attempted by the user

Invoice

Field Argument Type Description
id ID!
invoiceSettingsId String
customer Customer
status String!
invoiceNumber Float
dueDate DateTime
note String
transactionId ID!
products [InvoiceProductOutput!] A list of products from the invoice

InvoiceCustomerOutput

Field Argument Type Description
id ID!
name String
email String
address String
country String
vatNumber String
taxNumber String

InvoiceLogoFormDataPair

Field Argument Type Description
key String!
value String!

InvoiceOutput

Field Argument Type Description
invoiceSettingsId String
customerId String
status String!
dueDate DateTime
note String
id String
customer InvoiceCustomerOutput
invoiceNumber Float
products [InvoiceProductOutput!]

InvoicePageInfo

Field Argument Type Description
hasNextPage Boolean!
hasPreviousPage Boolean!
currentPage Int!

InvoiceProductOutput

Field Argument Type Description
description String
price Float
vat String
quantity Float
id String!

InvoiceSettingsOutput

Field Argument Type Description
senderName String
companyName String
streetLine String
postCode String
city String
country String
email String
phoneNumber String
dueDateDefaultOffset Float Number of days which get added to today's date to create a default value for due date on invoice creation form
nextInvoiceNumber Float
taxNumber String
vatNumber String
id String!
logoUrl String If a user's setting has a logoPath, we calculate a url to the thumbnail from it

InvoicingDashboardData

Field Argument Type Description
pageInfo InvoicePageInfo!
data [DashboardInvoice!]!

MissingTaxAssetsFilterPreset

Field Argument Type Description
value String!
year Int!

Money

Field Argument Type Description
amount Int! The amount the user pays
discountAmount Int! The amount the user saves
fullAmount Int The amount plus discount amount
discountPercentage Int The amount the user saves in percentage

MutationResult

Field Argument Type Description
success Boolean!

NACECode

NACE codes

Field Argument Type Description
id Float!
code String!
enDescription String!
deDescription String!
priority Boolean!

Notification

Field Argument Type Description
type NotificationType!
active Boolean!

OCRResult

Field Argument Type Description
amount Int
name String
description String
iban String

Overdraft

Field Argument Type Description
id String!
status OverdraftApplicationStatus! Overdraft status
limit Int Available overdraft limit
requestedAt DateTime! Overdraft request date
offeredScreenShown Boolean! Indicates if offered screen for overdraft was shown
rejectionScreenShown Boolean! Indicates if rejection screen for overdraft was shown

PageInfo

Field Argument Type Description
startCursor String
endCursor String
hasNextPage Boolean!
hasPreviousPage Boolean!

PaymentMethod

Field Argument Type Description
paymentMethodId String!
cardLast4 String!
cardBrand String!

PendingTransactionVerification

Field Argument Type Description
name String! Transaction merchant name
amount String! Transaction amount
expiresAt String! When verification gets expired
declineChangeRequestId String! Change request id to decline verification
authenticateChangeRequestId String! Change request id to authenticate verification

Product

Field Argument Type Description
id ID!
description String
price Float
vat String

PublicMutationResult

Field Argument Type Description
success Boolean!

PushProvisioningOutput

Field Argument Type Description
walletPayload String
activationData String
encryptedPassData String
ephemeralPublicKey String

Question

Field Argument Type Description
id String!
question String!
answerType AnswerType!
documentType String

QuestionSet

Field Argument Type Description
id String!
description String
deadline String
questions [Question!]!

Questionnaire

Field Argument Type Description
id ID!
type QuestionnaireType!
year Int!
context JSON
startedAt DateTime
completedAt DateTime
syncedAt DateTime
status QuestionnaireStatus!
nextQuestion QuestionnaireQuestion
includePostponed Boolean
lastAnswer QuestionnaireAnswer
documents [QuestionnaireDocument!]!
answers [QuestionnaireAnswer!]!
questionNames [String!]

QuestionnaireAnswer

Field Argument Type Description
questionName String!
value JSON
postponedAt DateTime
submittedAt DateTime
syncedAt DateTime
updatedAt DateTime
documentsStatus QuestionnaireAnswerDocumentsStatus!

QuestionnaireDocument

Field Argument Type Description
id ID!
type QuestionnaireDocumentType!
inputs JSON
isLastYearSuggestion Boolean!
syncedAt DateTime
createdAt DateTime!
updatedAt DateTime!
assets [Asset!]!

QuestionnaireQuestion

Field Argument Type Description
name String!
topic String
inputConfig JSONObject
postponable Boolean
allowExit Boolean
suggestLastYearAnswer Boolean
lastYearAnswer QuestionnaireAnswer
previousQuestionsAnswers [QuestionnaireAnswer!]
defaultAnswer JSON

QuestionnaireTask

Field Argument Type Description
status QuestionnaireTaskStatus!
type QuestionnaireType!
year Int!

RawTransactionProjection

Field Argument Type Description
id ID!
amount Int! The amount of the transaction in cents
iban String
description String
type TransactionProjectionType!
valutaDate DateTime The date at which the transaction was processed and the amount deducted from the user's account
e2eId String
mandateNumber String
createdAt DateTime!
merchantCountryCode String
merchantCategoryCode String
source TransactionSource!
receiptName String
fees [TransactionFee!]!
splits [TransactionSplit!]! Metadata of separate pseudo-transactions created when splitting the parent transaction
assets [TransactionAsset!]! List of uploaded Asset files for this transaction
bookingDate DateTime! The date at which the transaction was booked (created)
directDebitFees [DirectDebitFee!]!
name String
paymentMethod String!
category TransactionCategory
categorizationType CategorizationType
userSelectedBookingDate DateTime When a transaction corresponds to a tax or vat payment, the user may specify at which date it should be considered booked
personalNote String
predictedCategory TransactionCategory
predictedUserSelectedBookingDate DateTime Date predicted for tax/vat payment/refund predicted category
purpose String
documentNumber String
documentPreviewUrl String
documentDownloadUrl String
documentType DocumentType
foreignCurrency String
originalAmount Float
categoryCode String
vatCategoryCode String
vatRate VatRate
actionReason ActionReason
canBeRecategorized Boolean!
hasAssets Boolean!
verified Boolean
categoryCodeTranslation String
recurlyInvoiceNumber String
transactionAssets [Asset!]! List Assets for a transaction
asset TransactionAsset View a single Asset for a transaction
assetId ID!
transactionAsset Asset View a single Asset for a transaction
assetId ID!
businessAsset BusinessAssetResponse View a single Business Asset for a transaction

ReceiptExport

Field Argument Type Description
filename String!
url String!
creationDate DateTime!
expirationDate DateTime!

ReceiptExportResult

Field Argument Type Description
count Int!

RecurlyAccount

Field Argument Type Description
recurlyAccountId String!
balance Float!
pastDue Boolean!
pastDueSince DateTime
accountManagementUrl String!

RecurlyInvoice

Field Argument Type Description
id ID!
recurlyCreatedAt DateTime
url String!

ReferralDetails

Field Argument Type Description
code String
link String
bonusAmount Int! Amount in euros granted to user and their referee
copy String!

SeizureProtection

Field Argument Type Description
currentBlockedAmount AccountBalance!
protectedAmount AccountBalance!
protectedAmountExpiring AccountBalance!
protectedAmountExpiringDate String!

SepaTransfer

Field Argument Type Description
status SepaTransferStatus! The status of the SEPA Transfer
amount Int! The amount of the SEPA Transfer in cents
purpose String The purpose of the SEPA Transfer - 140 max characters
id String!
recipient String! The name of the SEPA Transfer recipient
iban String! The IBAN of the SEPA Transfer recipient
e2eId String The end to end ID of the SEPA Transfer
assets [Asset!]! List of uploaded Asset files for this transfer

SolarisAccountBalance

Field Argument Type Description
balance AccountBalance
availableBalance AccountBalance
seizureProtection SeizureProtection

Subscription

Field Argument Type Description
newTransaction Transaction!

SubscriptionFeature

Field Argument Type Description
title String!
icon Icon

SubscriptionFeatureGroup

Field Argument Type Description
title String
icon Icon
features [SubscriptionFeature!]!

SubscriptionPlan

Field Argument Type Description
type PurchaseType!
subtitle String
fee Money!
title String @deprecated For backwards compatibility on mobile only. From now on use the title copy coming from Lokalise instead.
description String @deprecated For backwards compatibility on mobile only. From now on use the description copy coming from Lokalise instead.
button String @deprecated For backwards compatibility on mobile only. From now on use the button copy coming from Lokalise instead.
featuresToggleLabel String @deprecated For backwards compatibility on mobile only.
featureGroups [SubscriptionFeatureGroup!] @deprecated For backwards compatibility on mobile only. From now on use the features copy coming from Lokalise instead.

SubscriptionPlansResponse

Field Argument Type Description
plans [SubscriptionPlan!]!
couponCode String
couponValidFor [PurchaseType!]

SystemStatus

Field Argument Type Description
type Status
message String

TaxCase

Field Argument Type Description
id ID!
year Int!
deadline DateTime!
taxOfficeDeadline DateTime
finalizedAt DateTime
incomeTaxFinalizedAt DateTime
businessTaxFinalizedAt DateTime
userFinalizedAt DateTime
incomeTaxSkippedAt DateTime
status TaxCaseStatus!

TaxDeclaration

Field Argument Type Description
id ID!
declarationType TaxDeclarationType!
year Int!
status TaxDeclarationStatus!
statusUpdatedAt DateTime
declarationApproval DeclarationApproval
previewForms TaxDeclarationSavedDraftInfo
finalForms TaxDeclarationSubmissionInfo

TaxDeclarationExternalAsset

Field Argument Type Description
filetype String!
url String!
createdAt DateTime!

TaxDeclarationSavedDraftInfo

Field Argument Type Description
pdfUrl String
calculationSheetUrl String
createdBy String
createdAt DateTime
updatedAt DateTime
externalAssets [TaxDeclarationExternalAsset!]

TaxDeclarationSubmissionInfo

Field Argument Type Description
pdfUrl String
calculationSheetUrl String
submissionAgent String
submissionDate DateTime
externalAssets [TaxDeclarationExternalAsset!]

TaxNumber

Tax numbers of users

Field Argument Type Description
id ID!
taxNumber String!
type TaxNumberType!
description String!
validFrom DateTime
isMainBusinessTaxNumber Boolean!
deletedAt DateTime

TaxYearSetting

Field Argument Type Description
year Int! Tax year the individual settings apply to
taxRate Int Tax rate that should be applied in the corresponding year
excluded Boolean Flag if the corresponding year should be excluded from the tax calculations completely

TermsAndConditions

Terms And conditions

Field Argument Type Description
id ID!
confirmedAt DateTime
rejectedAt DateTime
name TermsAndConditionsName!

TopUpCreationResult

Field Argument Type Description
clientSecret String!

Transaction

Field Argument Type Description
id ID!
amount Int! The amount of the transaction in cents
iban String
description String
type TransactionProjectionType!
valutaDate DateTime The date at which the transaction was processed and the amount deducted from the user's account
e2eId String
mandateNumber String
createdAt DateTime!
merchantCountryCode String
merchantCategoryCode String
source TransactionSource!
receiptName String
fees [TransactionFee!]!
splits [TransactionSplit!]! Metadata of separate pseudo-transactions created when splitting the parent transaction
assets [TransactionAsset!]! List of uploaded Asset files for this transaction
bookingDate DateTime! The date at which the transaction was booked (created)
directDebitFees [DirectDebitFee!]!
name String
paymentMethod String!
category TransactionCategory
categorizationType CategorizationType
userSelectedBookingDate DateTime When a transaction corresponds to a tax or vat payment, the user may specify at which date it should be considered booked
personalNote String
predictedCategory TransactionCategory
predictedUserSelectedBookingDate DateTime Date predicted for tax/vat payment/refund predicted category
purpose String
documentNumber String
documentPreviewUrl String
documentDownloadUrl String
documentType DocumentType
foreignCurrency String
originalAmount Float
categoryCode String
vatCategoryCode String
vatRate VatRate
actionReason ActionReason
canBeRecategorized Boolean!
hasAssets Boolean!
verified Boolean
categoryCodeTranslation String
recurlyInvoiceNumber String
transactionAssets [Asset!]! List Assets for a transaction
asset TransactionAsset View a single Asset for a transaction
assetId ID!
transactionAsset Asset View a single Asset for a transaction
assetId ID!
businessAsset BusinessAssetResponse View a single Business Asset for a transaction

TransactionAsset

Field Argument Type Description
id ID!
name String!
filetype String!
assetableId ID!
path String!
thumbnail String!
fullsize String!

TransactionFee

Field Argument Type Description
type TransactionFeeType!
status TransactionFeeStatus!
unitAmount Int
usedAt DateTime

TransactionForAccountingView

Field Argument Type Description
id ID!
amount Int!
name String
purpose String
valutaDate DateTime!
selectedBookingDate DateTime
category TransactionCategory
categoryCode String
vatRate String
vatCategoryCode String
vatAmount Int
isSplit Boolean!

TransactionSplit

Field Argument Type Description
id Int!
uuid ID!
amount Int!
category TransactionCategory
userSelectedBookingDate DateTime
categorizationType CategorizationType
vatCategoryCode VatCategoryCode
categoryCode String
categoryCodeTranslation String
vatRate VatRate

TransactionsConnection

Field Argument Type Description
edges [TransactionsConnectionEdge!]!
pageInfo PageInfo!

TransactionsConnectionEdge

Field Argument Type Description
node Transaction!
cursor String!

Transfer

Field Argument Type Description
id String!
uuid String!
recipient String! The name of the transfer recipient
iban String! The IBAN of the transfer recipient
amount Int! The amount of the transfer in cents
status TransferStatus The status of the transfer
executeAt DateTime The date at which the payment will be executed for Timed Orders or Standing Orders
lastExecutionDate DateTime The date at which the last payment will be executed for Standing Orders
purpose String The purpose of the transfer - 140 max characters
personalNote String The personal note of the transfer - 250 max characters
e2eId String The end to end ID of the transfer
reoccurrence StandingOrderReoccurrenceType The reoccurrence type of the payments for Standing Orders
nextOccurrence DateTime The date at which the next payment will be executed for Standing Orders
category TransactionCategory The user selected category for the SEPA Transfer
assets [Asset!] List of uploaded Asset files for this transfer
userSelectedBookingDate DateTime When a transaction corresponds to a tax or vat payment, the user may specify at which date it should be considered booked
reference String Unique id of transfer session

TransferSuggestion

Field Argument Type Description
iban String!
name String!

TransfersConnection

Field Argument Type Description
edges [TransfersConnectionEdge!]!
pageInfo PageInfo!

TransfersConnectionEdge

Field Argument Type Description
node Transfer!
cursor String!

UnfinishedTransfer

Field Argument Type Description
amount Int!
recipient String!
iban String!
purpose String!

UpdateSubscriptionPlanResult

Field Argument Type Description
newPlan String!
previousPlans [PurchaseType!]!
hasOrderedPhysicalCard Boolean!
updateActiveAt String!
hasCanceledDowngrade Boolean!
couponCode String

User

Field Argument Type Description
email String!
createdAt ⚠️ DateTime!

⚠️ DEPRECATED

This field will be removed in an upcoming release
businessAddress UserBusinessAddress
vatPaymentFrequency ⚠️ PaymentFrequency

⚠️ DEPRECATED

This field will be removed in an upcoming release and should now be queried from "viewer.taxDetails.vatPaymentFrequency"
taxPaymentFrequency ⚠️ TaxPaymentFrequency

⚠️ DEPRECATED

This field will be removed in an upcoming release and should now be queried from "viewer.taxDetails.taxPaymentFrequency"
vatRate ⚠️ UserVatRate

⚠️ DEPRECATED

This field will be removed in an upcoming release and should now be queried from "viewer.taxDetails.vatRate"
taxRate ⚠️ Int

⚠️ DEPRECATED

This field will be removed in an upcoming release and should now be queried from "viewer.taxDetails.taxRate"
identificationStatus ⚠️ IdentificationStatus The user's IDNow identification status

⚠️ DEPRECATED

This field will be removed in an upcoming release and should now be queried from "viewer.identification.status"
identificationLink ⚠️ String The link to use for IDNow identification

⚠️ DEPRECATED

This field will be removed in an upcoming release and should now be queried from "viewer.identification.link"
screeningStatus ⚠️ ScreeningStatus The user's Solaris screening status

⚠️ DEPRECATED

This field will be removed in an upcoming release and should now be queried from "screeningProgress"
screeningProgress ScreeningProgress The user's Solaris screening progress
riskClassificationStatus RiskClassificationStatus The user's Solaris risk clarification status
customerVettingStatus CustomerVettingStatus The user's Solaris customer vetting status
gender Gender
firstName String
lastName String
birthPlace String
birthDate DateTime
nationality Nationality
street String
postCode String
city String
mobileNumber String
untrustedPhoneNumber String
isUSPerson Boolean Indicates whether the user pays taxes in the US
companyType ⚠️ CompanyType

⚠️ DEPRECATED

This field will be removed in an upcoming release. You should now rely on "isSelfEmployed" instead.
publicId ID!
language String
country String
businessPurpose String Business description provided by the user
economicSector String The economic sector of the user's business
otherEconomicSector String Business economic sector provided by the user
vatNumber ⚠️ String

⚠️ DEPRECATED

This field will be removed in an upcoming release and should now be queried from "viewer.taxDetails.vatNumber"
referralCode ⚠️ String The user's referral code to use for promotional purposes

⚠️ DEPRECATED

This field will be removed in an upcoming release and should now be queried from "viewer.referral.code"
accountState AccountState The current state of user's Kontist account based on his subscription plan
businessTradingName String
couponCodeOffer String Coupon code assigned to the user that can be redeemed during subscription update
isSelfEmployed Boolean
taxServiceOnboardingCompletedAt DateTime
poaSignedAt DateTime
poaExportedAt DateTime
invoicePdf String!
invoiceAsset String!
isBase64 Boolean!
invoiceId ID!
vatDeclarationBannerDismissedAt DateTime
invoice Invoice
id String!
hasBusinessTaxNumber Boolean
hasBusinessTaxNumberUpdatedAt DateTime
missingBusinessTaxNumberNote String
hasPersonalTaxNumber Boolean
hasPersonalTaxNumberUpdatedAt DateTime
missingPersonalTaxNumberNote String
receiptMatchingIntroDismissedAt DateTime
workAsHandyman Boolean
amlFollowUpDate DateTime
amlConfirmedOn DateTime
naceCodeId Float
websiteSocialMedia String
expectedMonthlyRevenueCents Float
mainAccount Account
clients [Client!]! The list of all OAuth2 clients for the current user
client Client The details of an existing OAuth2 client
id String!
bizTaxBookkeepingConfirmation BizTaxBookkeepingConfirmation
year Int!
bizTaxDeclarationSubmissions [BizTaxDeclarationSubmission!]!
year Int!
bizTaxQuestionnairesEuer BizTaxQuestionnairesEuer!
year Int!
businessAddresses [BusinessAddress!]! User's business addresses
lastBusinessAddress BusinessAddress! User's last business address before a specific date
businessAssets [BusinessAssetResponse!] User's business assets
businessAsset BusinessAssetResponse Return a business asset by id
businessAssetId ID!
emailDocuments [EmailDocument!]!
filterByUnmatched Boolean
uploadSources [DocumentUploadSource!]
emailDocument EmailDocument!
id String
fibuFinalCheckTasks [FibuFinalCheckTask!]
year Int!
integrations [UserIntegration!]! Bookkeeping partners information for user
invoiceSettings InvoiceSettingsOutput
invoiceCustomers [InvoiceCustomerOutput!] The list of all customers of the current user
invoices InvoicingDashboardData!
pageNumber Int!
notifications [Notification!]! All push-notification types and their state
questionnaire Questionnaire
questionnaireId ID
year Int!
type QuestionnaireType!
questionnaires [Questionnaire!]
year Int!
questionnaireTasks [QuestionnaireTask!]!
recurlyAccount RecurlyAccount The user's associated Recurly Account
recurlyInvoices [RecurlyInvoice!]!
draftSeizurePaymentOrder String! Retrieves draft of seizure payment order
seizureId ID!
documents [Document!]! User's documents
year Int
categoryIds [String!]
documentCategories [DocumentCategory!]! User's documents
categoryNames [String!]
availablePlans [SubscriptionPlan!]! Information about the plans a user can subscribe to
couponCode String
premiumSubscriptionDiscount Discount! Premium subscription discount for user
couponCode String
subscriptionPlans SubscriptionPlansResponse! The available subscription plans
couponCode String
subscriptions [UserSubscription!]! The plans a user has subscribed to
taxCase TaxCase
year Int!
euerDeclaration TaxDeclaration
year Int!
incomeTaxDeclaration TaxDeclaration
year Int!
tradeTaxDeclaration TaxDeclaration
year Int!
vatAnnualDeclaration TaxDeclaration
year Int!
unfinishedTransfers [UnfinishedTransfer!]!
banners [Banner!] The state of banners in mobile or web app for the user
isWebapp Boolean
features [String!]! Active user features
identification IdentificationDetails! IDNow identification details for user
metadata UserMetadata! User metadata. These fields are likely to get frequently updated or changed.
platform Platform
poaUrl String Retrieves signed POA PDF for user.
referral ReferralDetails! Referral details for user
taxDetails UserTaxDetails! Tax details for user
taxNumbers [TaxNumber!]! User's tax numbers
userTours [UserTour!]! User's tours
showQuestionSet QuestionSet Show question set

UserBusinessAddress

Business Address of a User

Field Argument Type Description
id ID!
street String!
postCode String!
country String!
city String!

UserDependent

Field Argument Type Description
id ID!
type UserDependentType!
firstName String!
lastName String!
birthDate DateTime!
deTaxId String
marriageStartDate DateTime
marriageEndDate DateTime

UserIntegration

Field Argument Type Description
type IntegrationType!
hasAccount Boolean!
isConnected Boolean!

UserMetadata

Field Argument Type Description
currentTermsAccepted Boolean!
acceptedTermsVersion String
lastTermsVersionAcceptedAt DateTime
lastTermsVersionRejectedAt DateTime
newTermsDeadlineDate String!
lastTermsVersionSkippedAt DateTime
availableStatements [AvailableStatements!] List of months user can request a bank statement for
isAccountClosed Boolean! Is user's Kontist account closed
currentTermsVersion String!
intercomDigest String
directDebitMandateAccepted Boolean!
marketingConsentAccepted Boolean!
phoneNumberVerificationRequired Boolean!
signupCompleted Boolean!
categorizationScreenShown Boolean
taxAdvisoryTermsVersionAccepted Boolean!
emailFetchSetupUrl String
emailConnections [String!]!

UserSubscription

Field Argument Type Description
type PurchaseType! The type of the plans a user has subscribed to
state PurchaseState! The state of the subscription

UserTaxDetails

Field Argument Type Description
adjustAdvancePayments Boolean!
lastTaxPaymentDate DateTime
lastVatPaymentDate DateTime
vatPaymentFrequency PaymentFrequency
taxPaymentFrequency ⚠️ TaxPaymentFrequency

⚠️ DEPRECATED

This field will be removed in an upcoming release. Do not rely on it for any new features
taxRate Int
vatRate UserVatRate
taxNumber String
personalTaxNumber String
deTaxId String
vatNumber String
needsToProvideTaxIdentification Boolean!
permanentExtensionStatus PermanentExtensionStatus
hasBusinessTaxNumber Boolean
missingBusinessTaxNumberNote String
missingPersonalTaxNumberNote String
dependents [UserDependent!]
vatExemptionWithItd VatExemptionWithItd
vatExemptionWithoutItd VatExemptionWithoutItd

UserTour

Tours of users

Field Argument Type Description
name TourName!
status TourStatus!

VatYearSetting

An account’s VAT settings specific to a year

Field Argument Type Description
year Float!
vatPaymentFrequency String!

WhitelistCardResponse

Field Argument Type Description
id String!
resolution CaseResolution!
whitelistedUntil String!

Inputs

AddressInput

Field Type Description
streetName String!
streetNumber String!
city String!
postCode String!
country String!

AttributionData

Field Type Description
platform Platform Platform used for signup
trackingId String
preselected_plan String
utm_source String
irclickid String

BusinessAddressInput

Field Type Description
streetName String!
streetNumber String!
city String!
postCode String!
country String!

BusinessAssetForm

Field Type Description
assetType AssetType!
assetClass String!
purchaseDate String!
depreciationPeriodYears Int!

BusinessAssetInput

Field Type Description
assetClass String!
assetType AssetType!
depreciationPeriodYears Int!

CardFilter

Field Type Description
id String
type CardType

CardLimitInput

Field Type Description
maxAmountCents Float
maxTransactions Float

CardLimitsInput

Field Type Description
daily CardLimitInput
monthly CardLimitInput

CardSettingsInput

Field Type Description
purchaseLimits CardLimitsInput
atmLimits CardLimitsInput

ChangeCardPINEncryptedInput

Field Type Description
encryptedPin String!
keyId String!
deviceId String!
signature String!

ChangeCardPINWithChangeRequestInput

Field Type Description
encryptedPin String!
keyId String!

ConfirmChangeRequestArgs

Field Type Description
changeRequestId String!
deviceId String!
signature String
authorizationToken String

CreateBusinessAddressInput

Field Type Description
street String!
postCode String!
city String!
movingDate DateTime!

CreateClientInput

The available fields to create an OAuth2 client

Field Type Description
name String! The name of the OAuth2 client displayed when users log in
secret String The OAuth2 client secret
redirectUri String The URL to redirect to after authentication
grantTypes [GrantType!]! The grant types (i.e. ways to obtain access tokens) allowed for the client
scopes [ScopeType!]! The scopes the client has access to, limiting access to the corresponding parts of the API

CreateContactArgs

Field Type Description
favorite Boolean
iban String!
name String!

CreateDeclarationApprovalInput

Field Type Description
declarationId ID!
declarationType TaxDeclarationType!
jointDeclaration Boolean
delaySubmission Boolean

CreateDeclarationDeclineInput

Field Type Description
declarationId ID!
declarationType TaxDeclarationType!
reason String!

CreateSepaTransferInput

The available fields to create a SEPA Transfer

Field Type Description
recipient String! The name of the SEPA Transfer recipient
iban String! The IBAN of the SEPA Transfer recipient
amount Int! The amount of the SEPA Transfer in cents
purpose String The purpose of the SEPA Transfer - 140 max characters
personalNote String The personal note of the SEPA Transfer - 250 max characters
e2eId String The end to end ID of the SEPA Transfer

CreateTaxNumberInput

Field Type Description
taxNumber String!
type TaxNumberType!
description String!
validFrom DateTime
isMainBusinessTaxNumber Boolean!

CreateTransactionSplitsInput

Field Type Description
amount Int!
category TransactionCategory
userSelectedBookingDate DateTime
categoryCode String
vatRate VatRate
vatCategoryCode String

CreateTransferInput

The available fields to create a transfer

Field Type Description
recipient String! The name of the transfer recipient
iban String! The IBAN of the transfer recipient
amount Int! The amount of the transfer in cents
executeAt DateTime The date at which the payment will be executed for Timed Orders or Standing Orders
lastExecutionDate DateTime The date at which the last payment will be executed for Standing Orders
purpose String The purpose of the transfer - 140 max characters
personalNote String The personal note of the transfer - 250 max characters
e2eId String The end to end ID of the transfer
reoccurrence StandingOrderReoccurrenceType The reoccurrence type of the payments for Standing Orders
category TransactionCategory The user selected category for the SEPA Transfer
userSelectedBookingDate DateTime When a transaction corresponds to a tax or vat payment, the user may specify at which date it should be considered booked
type TransferType The type of transfer created by user
reference String Unique id of transfer session

CreateUserInput

Field Type Description
email String! User's email. This will be used as their username.
password String!
language String
attribution AttributionData
impactAttribution AttributionData
marketingConsentAccepted Boolean
terms Boolean User has accepted latest Kontist terms when signing up

DatevExportInput

Field Type Description
year Int!
skr SKR!
withReceipts Boolean!

DependentsTaxIds

Field Type Description
id ID!
deTaxId String!

ExitBusinessAssetPayload

Field Type Description
exitReason ExitReason!
exitDate String!
exitAmount Float
isExitedWithVat Boolean!
note String!

FilterPresetInput

Field Type Description
value String!
year Int

InvoiceCustomerInput

Field Type Description
id String
name String
email String
address String
country String
vatNumber String
taxNumber String

InvoiceInput

Field Type Description
invoiceSettingsId String
customerId String
status String!
dueDate DateTime
note String
id String
products [InvoiceProductInput!]

InvoiceProductInput

Field Type Description
description String
price Float
vat String
quantity Float
id String

InvoiceSettingsInput

Field Type Description
senderName String
companyName String
streetLine String
postCode String
city String
country String
email String
phoneNumber String
dueDateDefaultOffset Float Number of days which get added to today's date to create a default value for due date on invoice creation form
nextInvoiceNumber Float
taxNumber String
vatNumber String

JWE

Field Type Description
alg String!
enc String!

JWK

Field Type Description
kty String!
n String!
e String!

PushProvisioningAndroidInput

Field Type Description
deviceId String Stable identifier for a physical Android device Google refers to this atribute as a Stable hardware ID in their SDK documentation the method getStableHardwareId describes how you can retrieve this value.
walletAccountId String Unique 24-byte identifier for each instance of a [Android user, Google account] pair wallet. ID is computed as a keyed hash of the Android user ID and the Google account ID. The key to this hash lives on Google servers, meaning the wallet ID is created during user setup as an RPC.

PushProvisioningIosInput

Field Type Description
nonce String A one-time-use nonce in Base64 encoded format provided by Apple
nonceSignature String Nonce signature in Base64 encoded format provided by Apple
certificates [String!] An array of leaf and sub-CA certificates in Base64 encoded format provided by Apple. Each object contains a DER encoded X.509 certificate, with the leaf first and followed by sub-CA

QuestionAnswer

Field Type Description
questionId String!
answer String!
documentIds [String!]

QuestionnaireDocumentInput

Field Type Description
id ID
type QuestionnaireDocumentType!
inputs JSONObject!

ReceiptExportInput

Field Type Description
fromDate DateTime!
toDate DateTime!

SubmitQuestionSetInput

Field Type Description
questionSetId String!
answers [QuestionAnswer!]!

TaxYearSettingInput

Field Type Description
year Int! Tax year the individual settings apply to
taxRate Int Tax rate that should be applied in the corresponding year
excluded Boolean Flag if the corresponding year should be excluded from the tax calculations completely

TopUpInput

Field Type Description
amount Float!
paymentMethodId String

TransactionCondition

Field Type Description
operator BaseOperator
amount_lt Int
amount_gt Int
amount_gte Int
amount_lte Int
amount_eq Int
amount_ne Int
amount_in [Int!]
iban_eq String
iban_ne String
iban_like String
iban_likeAny [String!]
iban_in [String!]
type_eq TransactionProjectionType
valutaDate_eq DateTime
valutaDate_ne DateTime
valutaDate_gt DateTime
valutaDate_lt DateTime
valutaDate_gte DateTime
valutaDate_lte DateTime
source_eq String
source_ne String
source_in [String!]
splits_exist Boolean
assets_exist Boolean
vatAssets_exist Boolean
bookingDate_eq DateTime
bookingDate_ne DateTime
bookingDate_gt DateTime
bookingDate_lt DateTime
bookingDate_gte DateTime
bookingDate_lte DateTime
name_eq String
name_ne String
name_like String
name_likeAny [String!]
name_in [String!]
category_eq TransactionCategory
category_in [TransactionCategory!]
purpose_eq String
purpose_ne String
purpose_like String
purpose_likeAny [String!]
categoryCode_exist Boolean
vatCategoryCode_exist Boolean

TransactionFilter

Field Type Description
operator BaseOperator
amount_lt Int
amount_gt Int
amount_gte Int
amount_lte Int
amount_eq Int
amount_ne Int
amount_in [Int!]
iban_eq String
iban_ne String
iban_like String
iban_likeAny [String!]
iban_in [String!]
type_eq TransactionProjectionType
valutaDate_eq DateTime
valutaDate_ne DateTime
valutaDate_gt DateTime
valutaDate_lt DateTime
valutaDate_gte DateTime
valutaDate_lte DateTime
source_eq String
source_ne String
source_in [String!]
splits_exist Boolean
assets_exist Boolean
vatAssets_exist Boolean
bookingDate_eq DateTime
bookingDate_ne DateTime
bookingDate_gt DateTime
bookingDate_lt DateTime
bookingDate_gte DateTime
bookingDate_lte DateTime
name_eq String
name_ne String
name_like String
name_likeAny [String!]
name_in [String!]
category_eq TransactionCategory
category_in [TransactionCategory!]
purpose_eq String
purpose_ne String
purpose_like String
purpose_likeAny [String!]
categoryCode_exist Boolean
vatCategoryCode_exist Boolean
conditions [TransactionCondition!]

TransactionSplitInput

Field Type Description
amount Int!
category TransactionCategory
userSelectedBookingDate DateTime
categoryCode String
vatRate VatRate
vatCategoryCode String
id Int

TransfersConnectionFilter

Field Type Description
status TransferStatus

UpdateClientInput

The available fields to update an OAuth2 client

Field Type Description
name String The name of the OAuth2 client displayed when users log in
secret String The OAuth2 client secret
redirectUri String The URL to redirect to after authentication
grantTypes [GrantType!] The grant types (i.e. ways to obtain access tokens) allowed for the client
scopes [ScopeType!] The scopes the client has access to, limiting access to the corresponding parts of the API
id String! The id of the OAuth2 client to update

UpdateContactArgs

Field Type Description
id ID!
favorite Boolean
iban String
name String

UpdateDocumentMetadata

Field Type Description
documentCategoryId String Document's category Id

UpdateDraftTransactionInput

Field Type Description
id ID!
assetUploaded Boolean
name String
paymentDate DateTime
note String
amount Int
vatCategoryCode String
categoryCode String
vatRate VatRate
isCashTransaction Boolean
splits [TransactionSplitInput!]
businessAsset BusinessAssetInput

UpdateSolarisUserInput

Field Type Description
amlConfirmed Boolean
email String
businessTradingName String
websiteSocialMedia String
businessPurpose String
naceCode String
naceCodeId Float
address AddressInput
businessAddress BusinessAddressInput
expectedMonthlyRevenueCents Int

UpdateTaxNumberInput

Field Type Description
type TaxNumberType!
description String!
validFrom DateTime
isMainBusinessTaxNumber Boolean!
taxNumber String!

UpdateTermsAndConditionsArgs

Field Type Description
name String!
confirmed Boolean!

UpdateTransactionSplitsInput

Field Type Description
amount Int!
category TransactionCategory
userSelectedBookingDate DateTime
categoryCode String
vatRate VatRate
vatCategoryCode String
id Int

UpdateTransferInput

The available fields to update a transfer

Field Type Description
id String! The ID of the transfer to update
type TransferType! The type of transfer to update, currently only Standing Orders are supported
amount Int The amount of the Standing Order payment in cents
lastExecutionDate DateTime The date at which the last payment will be executed
purpose String The purpose of the Standing Order - 140 max characters, if not specified with the update, it will be set to null
personalNote String The personal note of the transfer - 250 max characters
e2eId String The end to end ID of the Standing Order, if not specified with the update, it will be set to null
reoccurrence StandingOrderReoccurrenceType The reoccurrence type of the payments for Standing Orders
category TransactionCategory The user selected category for the SEPA Transfer
userSelectedBookingDate DateTime When a transaction corresponds to a tax or vat payment, the user may specify at which date it should be considered booked
reference String Unique id of transfer session

UpsertDeclarationArgs

Field Type Description
period String!
year Int!
submissionStatus SubmissionStatus!

UpsertUserTourInput

Field Type Description
name TourName!
status TourStatus!

UserDependentInput

Field Type Description
id ID
deTaxId String
firstName String!
lastName String!
birthDate String!
marriageStartDate String
marriageEndDate String
type UserDependentType!

UserExternalTransactionInput

Field Type Description
id String
amount Float!
paymentDate DateTime!
categoryCode String
vatCategoryCode String
name String
iban String
description String
businessAssetForm BusinessAssetForm
splits [TransactionSplitInput!]
note String
vatRate VatRate
isCashTransaction Boolean
businessAsset BusinessAssetInput

UserProductInput

Field Type Description
description String
price Float
vat String
id String

UserTaxDetailsInput

Field Type Description
deTaxId String
taxNumber String
personalTaxNumber String
vatNumber String
hasBusinessTaxNumber Boolean
hasPersonalTaxNumber Boolean
missingBusinessTaxNumberNote String
missingPersonalTaxNumberNote String
vatPaymentFrequency PaymentFrequency
permanentExtensionStatus PermanentExtensionStatus
dependentsTaxIds [DependentsTaxIds!]
vatExemptionWithItd VatExemptionWithItd
vatExemptionWithoutItd VatExemptionWithoutItd

UserUpdateInput

Field Type Description
birthDate DateTime
city String
firstName String
lastName String
country Nationality
nationality Nationality
postCode String
street String
birthPlace String
untrustedPhoneNumber String Sets a mobile number for the user to be verified later
vatPaymentFrequency PaymentFrequency
vatNumber String
vatRate Int
language String
gender Gender
isUSPerson Boolean Indicates whether the user pays taxes in the US
acceptedTermsVersion String The version of terms user has accepted
businessPurpose String
economicSector String
otherEconomicSector String
businessTradingName String
adjustAdvancePayments Boolean
companyType CompanyType
isSelfEmployed Boolean
directDebitMandateAccepted Boolean Indicates user has accepted Kontist direct debit mandate
ownEconomicInterestConfirmed Boolean Indicates user has confirmed he is opening their account in their name, for the use of their business
nonConsumerConfirmed Boolean Indicates user has confirmed he is acting as a business and not a consumer
marketingConsentAccepted Boolean Indicates user has accepted to receive Kontist marketing communication
categorizationScreenShown Boolean
profession String
accountingTool String
hasSecondBusinessAccount Boolean
maximumCashTransactionsPercentage MaximumCashTransactionsPercentage
hasEmployees Boolean
internationalCustomers InternationalCustomers
permanentExtensionStatus PermanentExtensionStatus
taxAdvisoryTermsVersionAccepted String
subjectToAccounting ThreeStateAnswer
workingInEcommerce Boolean
workAsHandyman Boolean
hasMoreThanOneBusiness Boolean
idnowReminderType IdnowReminderType
idnowReminderTime DateTime
taxServiceOnboardingStarted Boolean Indicates if user started upgrading to Kontax plan
websiteSocialMedia String The website or social media url of the user
expectedMonthlyRevenueCents Int Expected monthly revenue in euro cents

VirtualCardDetailsArgs

Field Type Description
signature String!
deviceId String!
jwk JWK!
jwe JWE!

Enums

AccountState

Value Description
FREE
TRIAL
PREMIUM
BLOCKED
FREE_OLD
PREMIUM_OLD

ActionReason

Value Description
SMALL_BUSINESS_MISSING
WRONG_TAXRATE_ANCILLARY_SERVICE
MISSING_TAX_EXEMPT_SALES
NO_REDUCED_TAX
REVERSE_CHARGE_MISSING
OBLIGED_TAXES
INCOMING_AMOUNT_WRONG
INVALID_RECEIPT
NO_HOSPITALITY_RECEIPT
OUTGOING_AMOUNT_WRONG
REVERSE_CHARGE_INFORMATION

AnswerType

Value Description
TEXT_ONLY
TEXT_AND_FILES

AssetType

Value Description
MOVABLE_MOTOR_VEHICLES
MOVABLE_OFFICE_EQUIPMENT
MOVABLE_OTHERS
IMMOVABLE
INTANGIBLE

BannerName

Value Description
OVERDRAFT
BOOKKEEPING
FRIEND_REFERRAL
PRIMARY_WEBAPP
TAX_SERVICE
VAT_DECLARATION
RECEIPT_MATCHING

BaseOperator

Value Description
OR
AND

BatchTransferStatus

Value Description
AUTHORIZATION_REQUIRED
CONFIRMATION_REQUIRED
ACCEPTED
FAILED
SUCCESSFUL

BizTaxDeclarationResultMessageType

Value Description
VALIDATION_ERROR
NOTICE

BizTaxDeclarationType

Value Description
EUER
VAT_ANNUAL
TRADE_TAX

CardAction

Value Description
CLOSE
BLOCK
UNBLOCK

CardStatus

Value Description
PROCESSING
INACTIVE
ACTIVE
BLOCKED
BLOCKED_BY_SOLARIS
ACTIVATION_BLOCKED_BY_SOLARIS
CLOSED
CLOSED_BY_SOLARIS

CardType

Value Description
VIRTUAL_VISA_BUSINESS_DEBIT
VISA_BUSINESS_DEBIT
VISA_BUSINESS_DEBIT_2
MASTERCARD_BUSINESS_DEBIT
VIRTUAL_MASTERCARD_BUSINESS_DEBIT
VIRTUAL_VISA_FREELANCE_DEBIT

CaseResolution

Value Description
PENDING
CONFIRMED
WHITELISTED
TIMED_OUT
TIMEOUT

CategorizationType

Value Description
AUTOMATIC_KONTIST_ML
SUGGESTED_BY_ML
BOOKKEEPING_PARTNER
USER
KONTAX
INVOICING
USER_OVERWRITE
SCRIPT

CategoryCode

Value Description
PRIVATE_IN
INCOME_GERMANY
INCOME_EU
INCOME_INTL
VAT_REFUND
TAX_REFUND
TRADE_TAX_REFUND
CORONA_HELP
CONSTRUCTION_REVENUE
REVENUE_SB
VAT_ON_UNPAID_ITEMS
OTHER_USAGE_AND_SERVICE_WITHDRAWALS
FREE_VALUE_DELIVERY
FREE_VALUE_DELIVERY_PV_19
FREE_VALUE_SERVICE
ELECTRONIC_SERVICE_EU_B2C_KU
INCOME_ONLY_VAT
ELECTRONIC_SERVICE_EU_B2C
OTHER_EXPENSES
TRAVEL_COSTS
ADVERTISING
PRIVATE_OUT
FEES
TELECOMMUNICATION
IT_COSTS
LEASING_MOVABLES
OFFICE_COSTS
LEGAL_TAX_CONSULTING
RENT
EDUCATION
VAT_PAYMENT
EXTERNAL_FREELANCER
ENTERTAINMENT
ACCOMMODATION
GOODS
PAYROLL
ASSETS_LESS_THAN_EUR_250
ASSETS_GREATER_THAN_EUR_250
ASSETS_GREATER_THAN_EUR_800
MAINTENANCE_COSTS
SHIPPING_COSTS
INTERESTS_ASSETS
INTERESTS_CAR_ASSETS
INTERESTS_OTHER
GIFTS
DAILY_ALLOWANCE
LEASING_CAR
CAR_FEES
WASTE_DISPOSALS
TAX_PAYMENT
TRADE_TAX_PAYMENT
VAT
PRIVATE_WITHDRAWAL
CAR_COSTS
PUBLIC_TRANSPORT
LIMITED_DEDUCTIBLE_EXPENSES
LIMITED_NOT_DEDUCTIBLE_EXPENSES
BANK_FEES
INSURANCES
SOFTWARE_AND_LICENSES
BOOKS
DOWN_PAYMENT
IMPORT_VAT
DEPOSIT

CompanyType

Value Description
SELBSTAENDIG
EINZELUNTERNEHMER
FREIBERUFLER
GEWERBETREIBENDER
LIMITED
E_K
PARTGG
GBR
OHG
KG
KGAA
GMBH
GMBH_UND_CO_KG
UG

CustomerVettingStatus

Value Description
NOT_VETTED
NO_MATCH
POTENTIAL_MATCH
INFORMATION_REQUESTED
INFORMATION_RECEIVED
RISK_ACCEPTED
RISK_REJECTED
CUSTOMER_UNRESPONSIVE
VETTING_NOT_REQUIRED

DatevExportStatus

Value Description
CREATED
IN_PROGRESS
SUCCEEDED
FAILED

DeclarationType

Value Description
UStVA
EUER
USt
GewSt

DeliveryMethod

Value Description
MOBILE_NUMBER
DEVICE_SIGNING

DeviceActivityType

Value Description
APP_START
PASSWORD_RESET
CONSENT_PROVIDED

DeviceConsentEventType

Value Description
APPROVED
REJECTED

DocumentMatchStatus

Value Description
TOO_MANY_MATCHES
NO_MATCHES
LATER_MATCH
ALREADY_HAS_ASSET
OTHER_PROVIDER_MATCH
WRONG_MATCH
MANUAL_MATCH
MANUAL_MATCH_USER

DocumentType

Value Description
VOUCHER
INVOICE
EXPENSE

DocumentUploadSource

Value Description
EMAIL
BACKOFFICE
EMAIL_FETCH
WEB
MOBILE

ExitReason

Value Description
SOLD
LOST
PRIVATE_USE
DEPRECIATED

FibuFinalCheckTaskStatus

Value Description
TODO
COMPLETED

FibuFinalCheckTaskType

Value Description
TAX_RECEIPTS
UPLOAD_ADVISOR
UPLOAD_TOOL
UPLOAD_MANUAL
SUBMIT_EXTERNAL_TRANSACTIONS
SUBMIT_ASSETS

Gender

Value Description
MALE
FEMALE

GrantType

Value Description
PASSWORD
AUTHORIZATION_CODE
REFRESH_TOKEN
CLIENT_CREDENTIALS

IdentificationStatus

Value Description
PENDING
PENDING_SUCCESSFUL
PENDING_FAILED
SUCCESSFUL
FAILED
EXPIRED
CREATED
ABORTED
CANCELED

IdnowReminderType

Value Description
EMAIL
SMS

IntegrationType

Value Description
LEXOFFICE
FASTBILL

InternationalCustomers

Value Description
NONE
EU
WORLDWIDE

InvoiceStatus

Value Description
OPEN
CLOSED
REJECTED
PENDING

InvoiceStatusType

Value Description
DRAFT
CREATED
SENT
PAID

MaximumCashTransactionsPercentage

Value Description
NULL
TEN
HUNDRED

Nationality

Value Description
DE
AD
AE
AF
AG
AI
AL
AM
AO
AQ
AR
AS
AT
AU
AW
AX
AZ
BA
BB
BD
BE
BF
BG
BH
BI
BJ
BL
BM
BN
BO
BR
BS
BT
BV
BW
BY
BZ
CA
CC
CD
CF
CG
CH
CI
CK
CL
CM
CN
CO
CR
CU
CV
CW
CX
CY
CZ
DJ
DK
DM
DO
DZ
EC
EE
EG
EH
ER
ES
ET
FI
FJ
FK
FM
FO
FR
GA
GB
GD
GE
GF
GG
GH
GI
GL
GM
GN
GP
GQ
GR
GS
GT
GU
GW
GY
HK
HM
HN
HR
HT
HU
ID
IE
IL
IM
IN
IO
IQ
IR
IS
IT
JE
JM
JO
JP
KE
KG
KH
KI
KM
KN
KP
KR
KW
KY
KZ
LA
LB
LC
LI
LK
LR
LS
LT
LU
LV
LY
MA
MC
MD
ME
MF
MG
MH
MK
ML
MM
MN
MO
MP
MQ
MR
MS
MT
MU
MV
MW
MX
MY
MZ
NA
NC
NE
NF
NG
NI
NL
NO
NP
NR
NU
NZ
OM
PA
PE
PF
PG
PH
PK
PL
PM
PN
PR
PS
PT
PW
PY
QA
RE
RO
RS
RU
RW
SA
SB
SC
SD
SE
SG
SI
SJ
SK
SL
SM
SN
SO
SR
SS
ST
SV
SX
SY
SZ
TC
TD
TF
TG
TH
TJ
TK
TL
TM
TN
TO
TR
TT
TV
TW
TZ
UA
UG
UM
US
UY
UZ
VA
VC
VE
VG
VI
VN
VU
WF
WS
XK
YE
YT
ZA
ZM
ZW

NotificationType

Value Description
CARD_TRANSACTIONS
INCOMING_TRANSACTIONS
DIRECT_DEBIT_TRANSACTIONS
ATM_WITHDRAWAL_TRANSACTIONS
TRANSACTIONS
STATEMENTS
PRODUCT_INFO
TAX
RECEIPT_SCANNING
ALL

OverdraftApplicationStatus

Value Description
CREATED
INITIAL_SCORING_PENDING
ACCOUNT_SNAPSHOT_PENDING
ACCOUNT_SNAPSHOT_VERIFICATION_PENDING
OFFERED
REJECTED
OVERDRAFT_CREATED
EXPIRED

PaymentFrequency

Value Description
MONTHLY
QUARTERLY
NONE_QUARTERLY
YEARLY
NONE

PermanentExtensionStatus

Value Description
DOES_HAVE
DOES_NOT_HAVE
DOES_NOT_KNOW

Platform

Value Description
IOS
ANDROID
WEB

PurchaseState

Value Description
PROCESSED
PENDING

PurchaseType

Value Description
BASIC_INITIAL
BASIC
PREMIUM
CARD
LEXOFFICE
KONTAX
KONTAX_SB
KONTAX_PENDING
BOOKKEEPING
BIZ_TAX

QuestionnaireAnswerDocumentsStatus

Value Description
NOT_REQUIRED
PENDING
DELETED
UPLOADED

QuestionnaireDocumentType

Value Description
EOY_CAR_USAGE_PURCHASE_CONTRACT
EOY_CAR_USAGE_PRIVATELY_PAID_CAR_EXPENSES
EOY_CAR_USAGE_LOGBOOK
EOY_CAR_USAGE_TRAVELED_KM_WITH_PRIVATE_CAR
EOY_CAR_USAGE_OTHER
EOY_OFFICE_USAGE_RENT_OR_INTEREST
EOY_OFFICE_USAGE_PHONE_OR_INTERNET
EOY_OFFICE_USAGE_ELECTRICITY
EOY_OFFICE_USAGE_HEATING
EOY_OFFICE_USAGE_UTILITY
EOY_OFFICE_USAGE_UTILITY_AFTER_PAYMENT
EOY_OFFICE_USAGE_FLOOR_PLAN
EOY_OFFICE_USAGE_OTHER
EOY_TRAVEL_EXPENSES_BUSINESS_TRIPS
EOY_TRAVEL_EXPENSES_OTHER
EOY_INCOME_TAX_BASIC_DATA_PROOF_OF_DISABILITY
EOY_INCOME_TAX_BASIC_DATA_RENTAL_AND_LEASE
EOY_INCOME_TAX_BASIC_DATA_OTHER
EOY_INCOME_TAX_BASIC_DATA_PARTNER_PROOF_OF_DISABILITY
EOY_INCOME_TAX_BASIC_DATA_PARTNER_OTHER
EOY_INCOME_TAX_CHILD_PROOF_OF_DISABILITY
EOY_INCOME_TAX_CHILD_CHILDCARE
EOY_INCOME_TAX_CHILD_SCHOOL_FEES
EOY_INCOME_TAX_CHILD_ADDITIONAL_HEALTH_INSURANCE
EOY_INCOME_TAX_CHILD_EXTENSIVE_MEDICAL_EXPENSES
EOY_INCOME_TAX_CHILD_DISABILITY_COSTS
EOY_INCOME_TAX_CHILD_UNIVERSITY_FEES
EOY_INCOME_TAX_CHILD_OTHER
EOY_INCOME_TAX_ADDITIONAL_INCOME_OTHER
EOY_INCOME_TAX_ADDITIONAL_INCOME_SALE_OF_PROPERTY
EOY_INCOME_TAX_ADDITIONAL_INCOME_ADDL_SELF_EMPLOYMENT
EOY_INCOME_TAX_ADDITIONAL_INCOME_INTERNATIONAL_INCOME
EOY_INCOME_TAX_ADDITIONAL_INCOME_CRYPTO
EOY_INCOME_TAX_ADDITIONAL_INCOME_PENSIONS
EOY_INCOME_TAX_ADDITIONAL_INCOME_CAPITAL_ASSETS_INTL
EOY_INCOME_TAX_ADDITIONAL_INCOME_EMPLOYED_WORK
EOY_INCOME_TAX_ADDITIONAL_INCOME_EMPLOYMENT_EXPENSES
EOY_INCOME_TAX_ADDITIONAL_INCOME_PARTNER_OTHER
EOY_INCOME_TAX_ADDITIONAL_INCOME_PARTNER_SALE_OF_PROPERTY
EOY_INCOME_TAX_ADDITIONAL_INCOME_PARTNER_ADDL_SELF_EMPLOYMENT
EOY_INCOME_TAX_ADDITIONAL_INCOME_PARTNER_INTERNATIONAL_INCOME
EOY_INCOME_TAX_ADDITIONAL_INCOME_PARTNER_CRYPTO
EOY_INCOME_TAX_ADDITIONAL_INCOME_PARTNER_PENSIONS
EOY_INCOME_TAX_ADDITIONAL_INCOME_PARTNER_CAPITAL_ASSETS_INTL
EOY_INCOME_TAX_ADDITIONAL_INCOME_PARTNER_EMPLOYED_WORK
EOY_INCOME_TAX_ADDITIONAL_INCOME_PARTNER_EMPLOYMENT_EXPENSES
EOY_INCOME_TAX_PRIVATE_EXPENSES_HEALTH_INSURANCE
EOY_INCOME_TAX_PRIVATE_EXPENSES_RURUP
EOY_INCOME_TAX_PRIVATE_EXPENSES_REISTER
EOY_INCOME_TAX_PRIVATE_EXPENSES_UNEMPLOYMENT_INSURANCE
EOY_INCOME_TAX_PRIVATE_EXPENSES_PENSION_INSURANCE
EOY_INCOME_TAX_PRIVATE_EXPENSES_VEHICLE_LIABILITY
EOY_INCOME_TAX_PRIVATE_EXPENSES_ACCIDENT_INSURANCE
EOY_INCOME_TAX_PRIVATE_EXPENSES_LIFE_INSURANCE
EOY_INCOME_TAX_PRIVATE_EXPENSES_DISABILITY_INSURANCE
EOY_INCOME_TAX_PRIVATE_EXPENSES_EXTRAORDINARY_BURDENS
EOY_INCOME_TAX_PRIVATE_EXPENSES_PRIVATE_DONATIONS
EOY_INCOME_TAX_PRIVATE_EXPENSES_HOUSEHOLD_SERVICES
EOY_INCOME_TAX_PRIVATE_EXPENSES_ALIMENTS
EOY_INCOME_TAX_PRIVATE_EXPENSES_UNIVERSITY_FEES
EOY_INCOME_TAX_PRIVATE_EXPENSES_OTHER
EOY_INCOME_TAX_PRIVATE_EXPENSES_PARTNER_HEALTH_INSURANCE
EOY_INCOME_TAX_PRIVATE_EXPENSES_PARTNER_RURUP
EOY_INCOME_TAX_PRIVATE_EXPENSES_PARTNER_REISTER
EOY_INCOME_TAX_PRIVATE_EXPENSES_PARTNER_UNEMPLOYMENT_INSURANCE
EOY_INCOME_TAX_PRIVATE_EXPENSES_PARTNER_PENSION_INSURANCE
EOY_INCOME_TAX_PRIVATE_EXPENSES_PARTNER_VEHICLE_LIABILITY
EOY_INCOME_TAX_PRIVATE_EXPENSES_PARTNER_ACCIDENT_INSURANCE
EOY_INCOME_TAX_PRIVATE_EXPENSES_PARTNER_LIFE_INSURANCE
EOY_INCOME_TAX_PRIVATE_EXPENSES_PARTNER_DISABILITY_INSURANCE
EOY_INCOME_TAX_PRIVATE_EXPENSES_PARTNER_EXTRAORDINARY_BURDENS
EOY_INCOME_TAX_PRIVATE_EXPENSES_PARTNER_PRIVATE_DONATIONS
EOY_INCOME_TAX_PRIVATE_EXPENSES_PARTNER_HOUSEHOLD_SERVICES
EOY_INCOME_TAX_PRIVATE_EXPENSES_PARTNER_ALIMENTS
EOY_INCOME_TAX_PRIVATE_EXPENSES_PARTNER_UNIVERSITY_FEES
EOY_INCOME_TAX_PRIVATE_EXPENSES_PARTNER_OTHER
BIZ_TAX_CAR_USAGE_PURCHASE_CONTRACT
BIZ_TAX_CAR_USAGE_LOGBOOK
BIZ_TAX_CAR_USAGE_TRAVELED_KM_WITH_PRIVATE_CAR
BIZ_TAX_OFFICE_USAGE_RENT_OR_INTEREST
BIZ_TAX_OFFICE_USAGE_PHONE_OR_INTERNET
BIZ_TAX_OFFICE_USAGE_ELECTRICITY
BIZ_TAX_OFFICE_USAGE_HEATING
BIZ_TAX_OFFICE_USAGE_UTILITY
BIZ_TAX_OFFICE_USAGE_UTILITY_AFTER_PAYMENT
BIZ_TAX_OFFICE_USAGE_FLOOR_PLAN
BIZ_TAX_OFFICE_USAGE_OTHER
BIZ_TAX_TRAVEL_EXPENSES_BUSINESS_TRIPS

QuestionnaireStatus

Value Description
NOT_STARTED
STARTED
COMPLETED
DOCUMENTS_UPLOADED

QuestionnaireTaskStatus

Value Description
TO_DO
IN_PROGRESS
IN_REVIEW
COMPLETED

QuestionnaireType

Value Description
START_OF_THE_YEAR
EOY_BASIC_DATA
EOY_CAR_USAGE
EOY_OFFICE_USAGE
EOY_TRAVEL_EXPENSES
EOY_INCOME_TAX
EOY_BOOKKEEPING
EOY_INCOME_TAX_BASIC_DATA
EOY_INCOME_TAX_PRIVATE_EXPENSES
EOY_INCOME_TAX_ADDITIONAL_INCOME
EOY_INCOME_TAX_CHILD
EOY_INCOME_TAX_BASIC_DATA_PARTNER
EOY_INCOME_TAX_PRIVATE_EXPENSES_PARTNER
EOY_INCOME_TAX_ADDITIONAL_INCOME_PARTNER
BIZ_TAX_BASIC_DATA
BIZ_TAX_CAR_USAGE
BIZ_TAX_OFFICE_USAGE
BIZ_TAX_TRAVEL_EXPENSES

RequestPlatform

Value Description
MOBILE
WEB
GIOVANNI
BACKOFFICE
EMAIL
INVOICING
BACKEND
NATIVE_SHARE

ReviewTriggerName

Value Description
GOOGLEPAY
OVERDRAFT_OFFERED
VIRTUAL_CARD_ACTIVATED
PHYSICAL_CARD_ACTIVATED
OUTGOING_TRANSACTIONS
RECEIPTS_SCANNED
BATCH_TRANSFERS
SETTINGS_BUTTON_CLICKED

ReviewTriggerPlatform

Value Description
MOBILE
WEBAPP

RiskClassificationStatus

Value Description
NOT_SCORED
POTENTIAL_RISK
NORMAL_RISK
INFORMATION_REQUESTED
INFORMATION_RECEIVED
RISK_ACCEPTED
RISK_REJECTED
CUSTOMER_UNRESPONSIVE
SCORING_NOT_REQUIRED

SKR

Value Description
SKR03
SKR04

ScopeType

Value Description
OFFLINE
ACCOUNTS
USERS
TRANSACTIONS
TRANSFERS
SUBSCRIPTIONS
STATEMENTS
ADMIN
CLIENTS
OVERDRAFT
BANNERS
SIGNUP
CARD_FRAUD
CHANGE_REQUEST

ScreeningProgress

Value Description
NOT_SCREENED
POTENTIAL_MATCH
SCREENED_ACCEPTED
SCREENED_DECLINED

ScreeningStatus

Value Description
NOT_SCREENED
POTENTIAL_MATCH
SCREENED_ACCEPTED
SCREENED_DECLINED

SepaTransferStatus

Value Description
AUTHORIZED
CONFIRMED
BOOKED

StandingOrderReoccurrenceType

Value Description
MONTHLY
QUARTERLY
EVERY_SIX_MONTHS
ANNUALLY
BIWEEKLY
WEEKLY

Status

Value Description
ERROR

SubmissionStatus

Value Description
NOT_NEEDED
ALREADY_SUBMITTED

TaxCaseStatus

Value Description
NOT_STARTED
IN_PROGRESS
DONE

TaxDeclarationStatus

Value Description
NOT_RELEVANT
OPEN
IN_PROGRESS_DATA
CONSULTATION_DATA
COMPLETED_BY_DATA
IN_PROGRESS_OPS
COMPLETED_BY_OPS
IN_PROGRESS_TAX_CONSULTANT
APPROVED_BY_TAX_CONSULTANT
OBJECTED_BY_TAX_CONSULTANT
WAITING_FOR_USER_APPROVAL
APPROVED_BY_USER
OBJECTED_BY_USER
SUBMITTED
OBJECTED_BY_FINANZAMT
RECEIVED_TAX_BILL
CLOSED
APPEAL_PROCESS_STARTED
APPEAL_PROCESS_COMPLETED

TaxDeclarationType

Value Description
EUER
VAT_ANNUAL
TRADE_TAX
INCOME_TAX

TaxNumberType

Value Description
PERSONAL
BUSINESS

TaxPaymentFrequency

Value Description
QUARTERLY

TermsAndConditionsName

Value Description
TOP_UP
INSTANT_CREDIT_TRANSFER
LOAN

ThreeStateAnswer

Value Description
YES
NO
NOT_SURE

TourName

Value Description
BOOKKEEPING_ONBOARDING
BIZ_TAX_QUESTIONNAIRE_PREVIEW

TourStatus

Value Description
STARTED
DISMISSED
FINISHED

TransactionCategory

Value Description
PRIVATE
VAT
VAT_0
VAT_5
VAT_7
VAT_16
VAT_19
TAX_PAYMENT
VAT_PAYMENT
TAX_REFUND
VAT_REFUND
VAT_SAVING
TAX_SAVING
REVERSE_CHARGE

TransactionFeeStatus

Value Description
CREATED
CHARGED
REFUNDED
CANCELLED
REFUND_INITIATED

TransactionFeeType

Value Description
ATM
FOREIGN_TRANSACTION
DIRECT_DEBIT_RETURN
SECOND_REMINDER_EMAIL
CARD_REPLACEMENT
KONTIST_TRANSACTION
FREE_KONTIST_TRANSACTION
TOP_UP
INSTANT_CREDIT_TRANSFER

TransactionProjectionType

Value Description
CARD_USAGE
ATM
CASH_MANUAL
CREDIT_PRESENTMENT
CASH_ATM_REVERSAL
CASH_MANUAL_REVERSAL
PURCHASE_REVERSAL
OCT
FORCE_POST_TRANSACTION
DEBIT_PRESENTMENT
DISPUTE_TRANSACTION
CANCEL_MANUAL_LOAD
DIRECT_DEBIT_AUTOMATIC_TOPUP
DIRECT_DEBIT_RETURN
DISPUTE_CLEARING
MANUAL_LOAD
WIRE_TRANSFER_TOPUP
TRANSFER_TO_BANK_ACCOUNT
CANCELLATION_BOOKING
CANCELLATION_DOUBLE_BOOKING
CREDIT_TRANSFER_CANCELLATION
CURRENCY_TRANSACTION_CANCELLATION
DIRECT_DEBIT
FOREIGN_PAYMENT
OTHER
SEPA_CREDIT_TRANSFER_RETURN
SEPA_CREDIT_TRANSFER
SEPA_DIRECT_DEBIT_RETURN
SEPA_DIRECT_DEBIT
TRANSFER
INTERNATIONAL_CREDIT_TRANSFER
CANCELLATION_SEPA_DIRECT_DEBIT_RETURN
REBOOKING
CANCELLATION_DIRECT_DEBIT
CANCELLATION_SEPA_CREDIT_TRANSFER_RETURN
CARD_TRANSACTION
INTEREST_ACCRUED
CANCELLATION_INTEREST_ACCRUED
COMMISSION_OVERDRAFT
CHARGE
DEPOSIT_FEE
VERIFICATION_CODE
CANCELLATION_CARD_TRANSACTION
CANCELLATION_CHARGE
INTRA_CUSTOMER_TRANSFER
INTERNAL_TRANSFER
SEPAInstantCreditTransfer
Target2CreditTransfer1
Target2CreditTransfer2
CorrectionCardTransaction
RebookedSEPADirectDebitCoreReturn
RebookedSEPACreditTransferReturn
ChargeRecallRequest
CorrectionSEPACreditTransfer
InterestExcessDeposit
InterestOverdraft
InterestOverdraftExceeded
ReimbursementCustomer
CorrectionNostro
TopUpCard
TopUpCardRefund
TopUpCardChargeback
EXTERNAL_TRANSACTION
EXTERNAL_TRANSACTION_CASH

TransactionSource

Value Description
SOLARIS
BACKOFFICE_MANUAL
USER

TransferStatus

Value Description
AUTHORIZED
CONFIRMED
BOOKED
CREATED
ACTIVE
INACTIVE
CANCELED
AUTHORIZATION_REQUIRED
CONFIRMATION_REQUIRED
SCHEDULED
EXECUTED
FAILED

TransferType

Value Description
SEPA_TRANSFER
STANDING_ORDER
TIMED_ORDER
INSTANT_CREDIT_TRANSFER

UserConfirmation

Value Description
TAX_DECLARATION_NOT_NEEDED
TOOLS_DOCUMENTS_UPLOADED
ADVISOR_DOCUMENTS_UPLOADED
MANUAL_DOCUMENTS_UPLOADED
SUBMIT_EXTERNAL_TRANSACTIONS
SUBMIT_ASSETS

UserDependentType

Value Description
PARTNER
CHILD

UserReviewStatus

Value Description
REVIEWED
POSITIVE_REMINDER
POSITIVE_PENDING
NEGATIVE_PENDING
NEGATIVE_REMINDER
FEEDBACK

UserVatRate

Value Description
VAT_0
VAT_19

VatCategoryCode

Value Description
INCOME_19
INCOME_7
INCOME_16
INCOME_5
INCOME_0_ITD
INCOME_0
INCOME_EU_B2B
INCOME_EU_INTRA_B2B
INCOME_EU_INTRA_B2C_19
INCOME_EU_INTRA_B2C_7
INCOME_EU_INTRA_B2C_16
INCOME_EU_INTRA_B2C_5
INCOME_EU_B2C_19
INCOME_EU_B2C_7
INCOME_EU_B2C_16
INCOME_EU_B2C_5
EXPORT_DELIVERY
NON_TAXABLE
INCOME_13B5_USTG
DIT_19
DIT_7
DIT_16
DIT_5
INTRA_ACQUISITION_IT
REVERSE_CHARGE_IT
REVERSE_CHARGE
NO_ITD
NO_VAT

VatExemptionWithItd

Value Description
SECTION_4_NR_7

VatExemptionWithoutItd

Value Description
SECTION_4_NR_8
SECTION_4_NR_11
SECTION_4_NR_14
SECTION_4_NR_16
SECTION_4_NR_20
SECTION_4_NR_21
SECTION_4_NR_22

VatRate

Value Description
VAT_0
VAT_5
VAT_7
VAT_16
VAT_19
REVERSE_CHARGE

Scalars

Boolean

The Boolean scalar type represents true or false.

DateTime

The javascript Date as string. Type represents date and time as the ISO Date string.

Float

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

ID

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Int

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

JSON

The JSON scalar type represents JSON values as specified by ECMA-404.

JSONObject

The JSONObject scalar type represents JSON objects as specified by ECMA-404.

String

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Interfaces

FilterPreset

Field Argument Type Description
value String!