Developer docs

IBAN API code snippets

A ready-to-run /validate call in each language below. Swap in your real API_KEY and the IBAN you want to check.

PHP (cURL)

Uses PHP's built-in curl extension, no third-party package required.

PHP
$curl = curl_init();
curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.ibanapi.com/v1/validate',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => ['iban' => 'IBAN', 'api_key' => 'API_KEY'],
]);

$response = curl_exec($curl);
if ($response === false) {
    throw new RuntimeException(curl_error($curl));
}
curl_close($curl);

echo $response;

Node.js

Node 18+ ships a global fetch and FormData, so this needs no dependency at all.

Node.js (fetch)
const form = new FormData();
form.append('iban', 'IBAN');
form.append('api_key', 'API_KEY');

const response = await fetch('https://api.ibanapi.com/v1/validate', {
  method: 'POST',
  body: form
});

const data = await response.json();
console.log(data);

Prefer Axios? Here's the same call with it.

Node.js (Axios)
const axios = require('axios');
const FormData = require('form-data');

const form = new FormData();
form.append('iban', 'IBAN');
form.append('api_key', 'API_KEY');

const response = await axios.post('https://api.ibanapi.com/v1/validate', form, {
  headers: form.getHeaders()
});

console.log(response.data);

Java (OkHttp)

OkHttp is the most common native-feeling HTTP client on the JVM and Android.

Java
OkHttpClient client = new OkHttpClient();

RequestBody body = new MultipartBody.Builder()
    .setType(MultipartBody.FORM)
    .addFormDataPart("iban", "IBAN")
    .addFormDataPart("api_key", "API_KEY")
    .build();

Request request = new Request.Builder()
    .url("https://api.ibanapi.com/v1/validate")
    .post(body)
    .build();

try (Response response = client.newCall(request).execute()) {
    System.out.println(response.body().string());
}

Python (Requests)

The requests library is the de facto standard for HTTP in Python.

Python
import requests

response = requests.post(
    "https://api.ibanapi.com/v1/validate",
    data={"iban": "IBAN", "api_key": "API_KEY"}
)

print(response.json())

C# (RestSharp)

Written against RestSharp v107+, the current major version.

C#
var client = new RestClient("https://api.ibanapi.com/v1/validate");

var request = new RestRequest()
    .AddParameter("iban", "IBAN")
    .AddParameter("api_key", "API_KEY");

var response = await client.PostAsync(request);
Console.WriteLine(response.Content);

Dart (http)

Uses the Dart team's own http package from pub.dev.

Dart
import 'package:http/http.dart' as http;

final uri = Uri.parse('https://api.ibanapi.com/v1/validate');
final request = http.MultipartRequest('POST', uri)
  ..fields['iban'] = 'IBAN'
  ..fields['api_key'] = 'API_KEY';

final streamed = await request.send();
final response = await http.Response.fromStream(streamed);

if (response.statusCode == 200) {
  print(response.body);
} else {
  print(response.reasonPhrase);
}