bunq API
bunq · Finance
***UPDATE:*** *We have released a [beta version of the new bunq API documentation.](https://beta.doc.bunq.com)* ***NOTICE:*** *We have updated the sandbox base url to `https://public-api.sandbox.bunq.com/v1/`. Please update your applications accordingly. Check here: for more info.* ***PSD2 NOTICE:*** *The second Payment Services Directive (PSD2) may affect your current or planned usage of our public API, as some of the API services are now subject
Authentication
Sample Requests
Get a collection of Devices. A Device is either a DevicePhone or a DeviceServer.
Hover any highlighted part to learn what it does
| User-Agent | example |
| X-Bunq-Client-Authentication | example |
curl -X GET "https://api.apis.guru/v2/specs/bunq.com/1.0/device" \ -H "User-Agent: example" \ -H "X-Bunq-Client-Authentication: example"
import requests
headers = {
"User-Agent": "example",
"X-Bunq-Client-Authentication": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/bunq.com/1.0/device",
headers=headers,
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/bunq.com/1.0/device';
const response = await fetch(url, {
headers: {
'User-Agent': 'example',
'X-Bunq-Client-Authentication': 'example'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
)
func main() {
targetURL := "https://api.apis.guru/v2/specs/bunq.com/1.0/device"
req, _ := http.NewRequest("GET", targetURL, nil)
req.Header.Set("User-Agent", "example")
req.Header.Set("X-Bunq-Client-Authentication", "example")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/bunq.com/1.0/device")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
req["User-Agent"] = "example"
req["X-Bunq-Client-Authentication"] = "example"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/bunq.com/1.0/device";
$opts = ["http" => [
"method" => "GET",
"header" => implode("\r\n", [
"User-Agent: example",
"X-Bunq-Client-Authentication: example"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Get a collection of all the DeviceServers you have created.
Hover any highlighted part to learn what it does
| User-Agent | example |
| X-Bunq-Client-Authentication | example |
curl -X GET "https://api.apis.guru/v2/specs/bunq.com/1.0/device-server" \ -H "User-Agent: example" \ -H "X-Bunq-Client-Authentication: example"
import requests
headers = {
"User-Agent": "example",
"X-Bunq-Client-Authentication": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/bunq.com/1.0/device-server",
headers=headers,
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/bunq.com/1.0/device-server';
const response = await fetch(url, {
headers: {
'User-Agent': 'example',
'X-Bunq-Client-Authentication': 'example'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
)
func main() {
targetURL := "https://api.apis.guru/v2/specs/bunq.com/1.0/device-server"
req, _ := http.NewRequest("GET", targetURL, nil)
req.Header.Set("User-Agent", "example")
req.Header.Set("X-Bunq-Client-Authentication", "example")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/bunq.com/1.0/device-server")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
req["User-Agent"] = "example"
req["X-Bunq-Client-Authentication"] = "example"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/bunq.com/1.0/device-server";
$opts = ["http" => [
"method" => "GET",
"header" => implode("\r\n", [
"User-Agent: example",
"X-Bunq-Client-Authentication: example"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));You must have an active session to make this call. This call returns the Id of the the Installation you are using in your session.
Hover any highlighted part to learn what it does
| User-Agent | example |
| X-Bunq-Client-Authentication | example |
curl -X GET "https://api.apis.guru/v2/specs/bunq.com/1.0/installation" \ -H "User-Agent: example" \ -H "X-Bunq-Client-Authentication: example"
import requests
headers = {
"User-Agent": "example",
"X-Bunq-Client-Authentication": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/bunq.com/1.0/installation",
headers=headers,
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/bunq.com/1.0/installation';
const response = await fetch(url, {
headers: {
'User-Agent': 'example',
'X-Bunq-Client-Authentication': 'example'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
)
func main() {
targetURL := "https://api.apis.guru/v2/specs/bunq.com/1.0/installation"
req, _ := http.NewRequest("GET", targetURL, nil)
req.Header.Set("User-Agent", "example")
req.Header.Set("X-Bunq-Client-Authentication", "example")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/bunq.com/1.0/installation")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
req["User-Agent"] = "example"
req["X-Bunq-Client-Authentication"] = "example"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/bunq.com/1.0/installation";
$opts = ["http" => [
"method" => "GET",
"header" => implode("\r\n", [
"User-Agent: example",
"X-Bunq-Client-Authentication: example"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- See official documentation for authentication and setup.
What can you build with bunq API?
bunq API is a Finance API. Developers commonly use finance APIs for:
- processing payments and handling transactions
- building subscription and billing systems
- automating invoicing and financial reporting
- fraud detection and risk scoring
- connecting to banking and accounting software
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. bunq API is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide · Learn about API keys · What is REST?