Svg Vector Icons : http://www.onlinewebfonts.com/icon

Payments

Tikkie

Get paid faster by creating easy payment requests. Share them via any channel you want.

Tutorials

On this page you will find a full tutorial, which will guide you through the different functionalities of the Tikkie API. You can also use this Postman Collection to learn and explore what you can do with the Tikkie API.

Getting an access token

Tikkie API uses client assertion based OAuth as described here for authentication. To use the Tikkie API, you need to obtain an access token from OAuth API with the following scope:

Key Value
scope tikkie

The following tutorials will assume you have a valid access token.

Calling the Tikkie API

After obtaining your access token, you can call the different endpoints of the Tikkie API. To succesfully use the Tikkie API, you should take the following steps:

  1. Start by creating a platform, via the post platform operation. This will get you a platformToken (suggestion: save it somewhere or use GET Platforms to retrieve) that you need to access your platform. You can make only two platforms per account.
  2. Then you can add users to your platform, via the post user operation. For each user a userToken and a bankAccountToken is generated. These can be used to create new payments or to view payments for this user.
  3. The next step would be creating some payment requests on behalf of a user, with the post payment request operation. To create a request, you need the userToken and bankAccountToken generated in the previous step. The response contains the payment url, which you can send to the person that should fulfill the payment. It also contains a paymentRequestToken, which can be used for future reference to this payment request.

To access your payment requests, you can use one of the two GET calls that are offered via this API.

  1. GET Payment request will return the status of one payment request, specified by a paymentRequestToken.
  2. GET User payment requests will return the status of all payment requests made on behalf of this user.

POST Platform

This operation will create a new platform as specified by the body of the request. This operation has these attributes:

Request attributes Value
Method POST
Path v1/tikkie/platforms
Headers Authorization: Bearer {access_token}
API-Key: xxxxx
Body The payload, containing the details of the new platform. See the technical details for a full specification of the format.

Formatting of the payload:

{
  "name": "{new platform name}", 
  "phoneNumber": "{phone number of a contact}", 
  "email": "{e-mail address of a contact (optional)}", 
  "platformUsage":"{type of usage of this platform, possible values are PAYMENT_REQUEST_FOR_MYSELF and PAYMENT_REQUEST_FOR_OTHERS}"
}

The full url looks like:

https://api-sandbox.abnamro.com/v1/tikkie/platforms

An example of a call with curl:

curl -X POST \
https://api-sandbox.abnamro.com/v1/tikkie/platforms \
-H 'authorization: Bearer {your_access_token}' \
-H 'Content-Type: application/json' \
-H 'API-Key:xxxx' -d '{"name": "NewPlatform", "phoneNumber": "0601234567", "email": "x@yz.com","platformUsage":"PAYMENT_REQUEST_FOR_MYSELF"}'

This specific call might return:

{
  "name" : "NewPlatform",
  "platformToken" : "platformtoken1",
  "phoneNumber" : "0601234567",
  "email" : "x@yz.com",
  "notificationUrl" : null,
  "status" : "ACTIVE",
  "platformUsage":"PAYMENT_REQUEST_FOR_MYSELF"
}

Of the return attributes, the platformToken is of special importance, as it is needed for future access to the platform.

GET Platforms

This operation will fetch all platforms created for an API consumer. This operation has these attributes:

Request attributes Value
Method GET
Path v1/tikkie/platforms
Headers Authorization: Bearer {access_token}
API-Key: xxxxx

The full url looks like:

https://api-sandbox.abnamro.com/v1/tikkie/platforms

An example of a call with curl:

curl -X GET \
https://api-sandbox.abnamro.com/v1/tikkie/platforms \
-H 'Authorization: Bearer {your_access_token}' \
-H 'API-Key:xxxx'

This specific call might return:

[
  {
    "name" : "NewPlatform",
    "platformToken" : "platformtoken1",
    "phoneNumber" : "0601234567",
    "email" : "x@yz.com",
    "notificationUrl" : null,
    "status" : "ACTIVE",
  "platformUsage":"PAYMENT_REQUEST_FOR_MYSELF"
  }
]

Of the return attributes, the platformToken is of special importance, as it is needed for future access to the platform.

POST User

This operation will create a new user to an existing platform. The user is specified by the body of the call. The platform is specified by the platformToken that is provided in the path. This operation has these attributes:

Request attributes Value
Method POST
Path v1/tikkie/platforms/{platformToken}/users
Headers Authorization: Bearer {access_token}
API-Key: xxxxx
Body The payload, containing the details of the new user. See technical details for a full specification of the format.

Please note that in the Tikkie API limits the number of users with the same IBAN account number. So if you use an IBAN that has been used too often, it will fail to create a new user.

The payload is formatted as:

{
  "name": "{name of the user}", 
  "phoneNumber": "{phone number of the user}", 
  "iban": "{IBAN account number of the user}", 
  "bankAccountLabel": "{label for the bank account}"
}

The full url looks like:

https://api-sandbox.abnamro.com/v1/tikkie/platforms/{platformToken}/users

An example call with curl:

curl -X POST \
https://api-sandbox.abnamro.com/v1/tikkie/platforms/{your_platform_token}/users \
-H 'authorization: Bearer {your_access_token}' \
-H "Content-Type: application/json" \
-H 'API-Key:xxxx' -d '{"name": "NewUser", "phoneNumber": "0601234567", "iban": "NL02ABNA0123456789", "bankAccountLabel": "Personal account"}'

This specific call might return:

{
  "userToken" : "usertoken1",
  "name" : "NewUser",
  "status" : "ACTIVE",
  "bankAccounts": [
    {
    "bankAccountToken": "bankaccounttoken1",
    "iban": "NL02ABNA0123456789",
    "bankAccountLabel": "Personal account"
  }
  ]
}

GET Users

This operation will fetch the list of users created on a platform by an API cpnsimer. The platform is specified by the platformToken that is provided in the path. This operation has these attributes:

Request attributes Value
Method GET
Path v1/tikkie/platforms/{platformToken}/users
Headers Authorization: Bearer {access_token}
API-Key: xxxxx

The full url looks like:

https://api-sandbox.abnamro.com/v1/tikkie/platforms/{platformToken}/users

An example call with curl:

curl -X GET \
https://api-sandbox.abnamro.com/v1/tikkie/platforms/{your_platform_token}/users \
-H 'authorization: Bearer {your_access_token}' \
-H 'API-Key: xxxxx'

This specific call might return:

[
  {
    "userToken": "usertoken1",
    "name": "NewUser",
    "status": "ACTIVE",
    "bankAccounts": [
      {
        "bankAccountToken": "bankaccounttoken1",
        "iban": "NL02ABNA0123456789",
        "bankAccountLabel": "Personal account"
      }
    ]
  }
]

POST Payment request

This operation will create a payment request as specified by the body of the call, to a user specified in the path. This operation has these attributes:

Request attributes Value
Method POST
Path v1/tikkie/platforms/{platformToken}/users/{userToken}/bankaccounts/{bankAccountToken}/paymentrequests
Headers Authorization: Bearer {access_token}
API-Key: xxxxx
Body The payload, containing the details of the new payment request. See technical details for a full specification of the format.

Formatting of the payload:

{
  "amountInCents": "{requested amount}", 
  "currency": "{currency of the request}", 
  "description": "{description of (the reason for) the request}", 
  "externalId": "{external identifier, e.g. an invoice number (optional)}"
}

The full url looks like:

https://api-sandbox.abnamro.com/v1/tikkie/platforms/{platformToken}/users/{userToken}/bankaccounts/{bankAccountToken}/paymentrequests

An example call with curl:

curl -X POST \
https://api-sandbox.abnamro.com/v1/tikkie/platforms/{your_platform_token}/users/{your_user_token}/bankaccounts/{your_account_token}/paymentrequests \
-H 'authorization: Bearer {your_access_token}' \
-H "Content-Type: application/json" \
-H 'API-Key: xxxxx' -d '{"amountInCents": "123", "currency": "EUR", "description": "Last night's dinner", "externalId": "Invoice: 4567"}'

This specific call might return:

{
  "paymentRequestUrl" : "https://pay.here.com/123",
  "paymentRequestToken" : "paymentrequesttoken1",
  "externalId": "Invoice: 4567"
}

The paymentRequestToken is useful for future reference to this payment request. The paymentRequestURL will lead the user to a page where the request can be paid.

GET User payment requests

This operation will fetch all payment requests for an existing user. The user is specified by the userToken (in the path). The results are paginated based on query parameters. Also filtering based on the creation date is possible through query parameters. This operation has these attributes:

Request attributes Value
Method GET
Path v1/tikkie/platforms/{platformToken}/users/{userToken}/paymentrequests
Headers Authorization: Bearer {access_token}
API-Key: xxxxx
Query parameters offset={starting offset}
&limit={number of requests}
&fromDate={show only requests after this date} (optional)
&toDate={show only requests before this date} (optional)

The full url can look like:

https://api-sandbox.abnamro.com/v1/tikkie/platforms/{platformToken}/users/{userToken}/paymentrequests?offset={starting offset}&limit={max amount of records to return}&fromDate={from date}

An example call with curl:

curl -X GET \
https://api-sandbox.abnamro.com/v1/tikkie/platforms/{your_platform_token}/users/{your_user_token}/paymentrequests?offset=1&limit=3&fromDate=2017-05-31T23:59:59Z \
-H 'authorization: Bearer {your_access_token}' \
-H 'API-Key: xxxxx'

This specific call might return:

{
  "paymentRequests": [
    {
      "paymentRequestToken": "paymentrequesttoken1",
      "amountInCents": "123",
      "currency": "EUR",
      "description": "Last night's dinner",
      "created": "2016-06-09T18:00:00.000Z",
      "expired": null,
      "status": "OPEN",
      "bankAccountYieldedTooFast": false,
      "externalId": "Invoice: 4567",
      "payments": [
        {
          "paymentToken": "paymenttoken1",
          "counterPartyName": "E. Xample",
          "amountInCents": "123",
          "amountCurrency": "EUR",
          "description": "Payment for tikkie",
          "created": "2016-06-09T18:00:00.000Z",
          "onlinePaymentStatus": "NEW"
        }
      ],
    }
  ],
  "totalElements": 1
}

Of particular interest is the token, that allows access to the specific payment request.

GET Payment request

This operation will fetch a single payment request, identified on the basis of a payment token in the path. This operation has these attributes:

Request attributes Value
Method GET
Path v1/tikkie/platforms/{platformToken}/users/{userToken}/paymentrequests/{paymentRequestToken}
Headers Authorization: Bearer {access_token}
API-Key: xxxxx

The full url is formatted as:

https://api-sandbox.abnamro.com/v1/tikkie/platforms/{platformToken}/users/{userToken}/paymentrequests/{paymentRequestToken}

An example call with curl:

curl -X GET \
https://api-sandbox.abnamro.com/v1/tikkie/platforms/{your_platform_token}/users/{your_user_token}/paymentrequests/{your_payment_request_token} \
-H 'authorization: Bearer {your_access_token}' \
-H 'API-Key: xxxxx'

This specific call might return:

{
  "paymentRequestToken": "paymentrequesttoken1",
  "amountInCents": "123",
  "currency": "EUR",
  "description": "Last night's dinner",
  "created": "2016-06-09T18:00:00.000Z",
  "expired": null,
  "status": "OPEN",
  "bankAccountYieldedTooFast": false,
  "externalId": "Invoice: 4567",
  "payments": [
    {
      "paymentToken": "paymenttoken1",
      "counterPartyName": "E. Xample",
      "amountInCents": "123",
      "amountCurrency": "EUR",
      "description": "Payment for tikkie",
      "created": "2016-06-09T18:00:00.000Z",
      "onlinePaymentStatus": "NEW"
    }
  ]
}