HBCI
Get all HBCI credentials
GET/api/hbci/credentials
Query parameters
searchStringstring | text to search for in the list |
orderFieldNamestring | name of the order field |
orderFieldSortstring | sorting modeAllowed: DESCASC |
pageinteger | page of the list |
pageSizeinteger | number of entries for each page |
withMaxPageNumberstring | returns the number of pages available as a header if this is set |
Responses
200Returns a list of HBCI credentialsarray<HbciCredential>
Show fields (19)
idintegerPrimary key of the HBCI credential. Internal ID.
billing_payout_accountBillingPayoutAccount3Payout account the credential belongs to.
Show fields (5)
idintegerPrimary key of the payout account. Internal ID.
deletedbooleanThis property is used to mark an entity as deleted / archived
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
bank_dataHbciBankDataBank data of the credential.
Show fields (9)
idintegerPrimary key of the bank data. Internal ID.
blzstringBank code (BLZ) of the bank.
bicstringBIC of the bank.
institute_namestringName of the bank institute.
citystringCity of the bank institute.
organizationstringOrganization of the bank for FinTS.
hbci_urlstringURL of the FinTS server.
pin_tan_urlstringURL of the PIN/TAN service.
fints_versionstringFinTS version supported by the bank.
enabledbooleanThe credential is enabled.
usernamestringLogin name at the bank.
tan_mode_idintegerID of the TAN mode selected at the bank.
tan_mode_namestringName of the TAN mode.
tan_medium_namestringName of the TAN medium.
bpd_cache_updatedstring (date-time)Time the bank parameter data was updated.
last_syncstring (date-time)Time of the last synchronization.
last_sync_errorstringError of the last synchronization.
auto_import_enabledbooleanAutomatic import of bank transactions is enabled.
last_auto_import_atstring (date-time)Time of the last automatic import.
auto_import_statusstringStatus of the last automatic import.
auto_import_messagestringMessage of the last automatic import.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
curl --request GET \
--url https://your-instance.iw-erp.de/api/hbci/credentials \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/hbci/credentials', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/hbci/credentials"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://your-instance.iw-erp.de/api/hbci/credentials', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/hbci/credentials"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/hbci/credentials")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/hbci/credentials"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/hbci_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await HbciController.getCredentials();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"username": "lena.hartmann@example.org",
"tan_mode_name": "Beispiel",
"tan_medium_name": "Beispiel",
"name": "Beispiel",
"billing_payout_account": {
"id": 42,
"name": "Beispiel",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"bank_data": {
"id": 42,
"bic": "BYLADEM1001",
"institute_name": "Beispiel",
"city": "Hannover",
"hbci_url": "https://vynst.de",
"pin_tan_url": "https://vynst.de",
"blz": "string",
"organization": "string",
"fints_version": "string"
},
"enabled": true,
"tan_mode_id": 42,
"bpd_cache_updated": "2026-10-15T09:30:00+02:00"
}
]Create new HBCI credential
POST/api/hbci/credentials
Request body application/json
dataHbciCredential2Show fields (1)
deletedbooleanThis property is used to mark an entity as deleted / archived
Responses
200Create a new HBCI credentialHbciCredential
Show fields (19)
idintegerPrimary key of the HBCI credential. Internal ID.
billing_payout_accountBillingPayoutAccount3Payout account the credential belongs to.
Show fields (5)
idintegerPrimary key of the payout account. Internal ID.
deletedbooleanThis property is used to mark an entity as deleted / archived
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
bank_dataHbciBankDataBank data of the credential.
Show fields (9)
idintegerPrimary key of the bank data. Internal ID.
blzstringBank code (BLZ) of the bank.
bicstringBIC of the bank.
institute_namestringName of the bank institute.
citystringCity of the bank institute.
organizationstringOrganization of the bank for FinTS.
hbci_urlstringURL of the FinTS server.
pin_tan_urlstringURL of the PIN/TAN service.
fints_versionstringFinTS version supported by the bank.
enabledbooleanThe credential is enabled.
usernamestringLogin name at the bank.
tan_mode_idintegerID of the TAN mode selected at the bank.
tan_mode_namestringName of the TAN mode.
tan_medium_namestringName of the TAN medium.
bpd_cache_updatedstring (date-time)Time the bank parameter data was updated.
last_syncstring (date-time)Time of the last synchronization.
last_sync_errorstringError of the last synchronization.
auto_import_enabledbooleanAutomatic import of bank transactions is enabled.
last_auto_import_atstring (date-time)Time of the last automatic import.
auto_import_statusstringStatus of the last automatic import.
auto_import_messagestringMessage of the last automatic import.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
curl --request POST \
--url https://your-instance.iw-erp.de/api/hbci/credentials \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"deleted": true
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({data: {deleted: true}})
};
fetch('https://your-instance.iw-erp.de/api/hbci/credentials', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/hbci/credentials"
payload = { "data": { "deleted": True } }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://your-instance.iw-erp.de/api/hbci/credentials', [
'body' => '{"data":{"deleted":true}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/hbci/credentials"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"deleted\":true}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"deleted\":true}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/hbci/credentials")
.post(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/hbci/credentials"
payload := strings.NewReader("{\"data\":{\"deleted\":true}}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/hbci_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/hbci/hbci_credential.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await HbciController.createCredential(HbciCredential.fromJson({
"deleted": true
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"username": "lena.hartmann@example.org",
"tan_mode_name": "Beispiel",
"tan_medium_name": "Beispiel",
"name": "Beispiel",
"billing_payout_account": {
"id": 42,
"name": "Beispiel",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"bank_data": {
"id": 42,
"bic": "BYLADEM1001",
"institute_name": "Beispiel",
"city": "Hannover",
"hbci_url": "https://vynst.de",
"pin_tan_url": "https://vynst.de",
"blz": "string",
"organization": "string",
"fints_version": "string"
},
"enabled": true,
"tan_mode_id": 42,
"bpd_cache_updated": "2026-10-15T09:30:00+02:00"
}Get single HBCI credential
GET/api/hbci/credentials/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Returns a single HBCI credentialHbciCredential
Show fields (19)
idintegerPrimary key of the HBCI credential. Internal ID.
billing_payout_accountBillingPayoutAccount3Payout account the credential belongs to.
Show fields (5)
idintegerPrimary key of the payout account. Internal ID.
deletedbooleanThis property is used to mark an entity as deleted / archived
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
bank_dataHbciBankDataBank data of the credential.
Show fields (9)
idintegerPrimary key of the bank data. Internal ID.
blzstringBank code (BLZ) of the bank.
bicstringBIC of the bank.
institute_namestringName of the bank institute.
citystringCity of the bank institute.
organizationstringOrganization of the bank for FinTS.
hbci_urlstringURL of the FinTS server.
pin_tan_urlstringURL of the PIN/TAN service.
fints_versionstringFinTS version supported by the bank.
enabledbooleanThe credential is enabled.
usernamestringLogin name at the bank.
tan_mode_idintegerID of the TAN mode selected at the bank.
tan_mode_namestringName of the TAN mode.
tan_medium_namestringName of the TAN medium.
bpd_cache_updatedstring (date-time)Time the bank parameter data was updated.
last_syncstring (date-time)Time of the last synchronization.
last_sync_errorstringError of the last synchronization.
auto_import_enabledbooleanAutomatic import of bank transactions is enabled.
last_auto_import_atstring (date-time)Time of the last automatic import.
auto_import_statusstringStatus of the last automatic import.
auto_import_messagestringMessage of the last automatic import.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
curl --request GET \
--url https://your-instance.iw-erp.de/api/hbci/credentials/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/hbci/credentials/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/hbci/credentials/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://your-instance.iw-erp.de/api/hbci/credentials/42', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/hbci/credentials/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/hbci/credentials/42")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/hbci/credentials/42"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/hbci_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await HbciController.getCredential(42);
if (result.success) {
print(result.data);
}{
"id": 42,
"username": "lena.hartmann@example.org",
"tan_mode_name": "Beispiel",
"tan_medium_name": "Beispiel",
"name": "Beispiel",
"billing_payout_account": {
"id": 42,
"name": "Beispiel",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"bank_data": {
"id": 42,
"bic": "BYLADEM1001",
"institute_name": "Beispiel",
"city": "Hannover",
"hbci_url": "https://vynst.de",
"pin_tan_url": "https://vynst.de",
"blz": "string",
"organization": "string",
"fints_version": "string"
},
"enabled": true,
"tan_mode_id": 42,
"bpd_cache_updated": "2026-10-15T09:30:00+02:00"
}Update HBCI credential
PUT/api/hbci/credentials/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataHbciCredential2Show fields (1)
deletedbooleanThis property is used to mark an entity as deleted / archived
Responses
200Update an HBCI credentialHbciCredential
Show fields (19)
idintegerPrimary key of the HBCI credential. Internal ID.
billing_payout_accountBillingPayoutAccount3Payout account the credential belongs to.
Show fields (5)
idintegerPrimary key of the payout account. Internal ID.
deletedbooleanThis property is used to mark an entity as deleted / archived
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
bank_dataHbciBankDataBank data of the credential.
Show fields (9)
idintegerPrimary key of the bank data. Internal ID.
blzstringBank code (BLZ) of the bank.
bicstringBIC of the bank.
institute_namestringName of the bank institute.
citystringCity of the bank institute.
organizationstringOrganization of the bank for FinTS.
hbci_urlstringURL of the FinTS server.
pin_tan_urlstringURL of the PIN/TAN service.
fints_versionstringFinTS version supported by the bank.
enabledbooleanThe credential is enabled.
usernamestringLogin name at the bank.
tan_mode_idintegerID of the TAN mode selected at the bank.
tan_mode_namestringName of the TAN mode.
tan_medium_namestringName of the TAN medium.
bpd_cache_updatedstring (date-time)Time the bank parameter data was updated.
last_syncstring (date-time)Time of the last synchronization.
last_sync_errorstringError of the last synchronization.
auto_import_enabledbooleanAutomatic import of bank transactions is enabled.
last_auto_import_atstring (date-time)Time of the last automatic import.
auto_import_statusstringStatus of the last automatic import.
auto_import_messagestringMessage of the last automatic import.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
curl --request PUT \
--url https://your-instance.iw-erp.de/api/hbci/credentials/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"deleted": true
}
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({data: {deleted: true}})
};
fetch('https://your-instance.iw-erp.de/api/hbci/credentials/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/hbci/credentials/42"
payload = { "data": { "deleted": True } }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PUT', 'https://your-instance.iw-erp.de/api/hbci/credentials/42', [
'body' => '{"data":{"deleted":true}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Put,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/hbci/credentials/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"deleted\":true}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"deleted\":true}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/hbci/credentials/42")
.put(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/hbci/credentials/42"
payload := strings.NewReader("{\"data\":{\"deleted\":true}}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/hbci_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/hbci/hbci_credential.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await HbciController.updateCredential(HbciCredential.fromJson({
"deleted": true
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"username": "lena.hartmann@example.org",
"tan_mode_name": "Beispiel",
"tan_medium_name": "Beispiel",
"name": "Beispiel",
"billing_payout_account": {
"id": 42,
"name": "Beispiel",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"bank_data": {
"id": 42,
"bic": "BYLADEM1001",
"institute_name": "Beispiel",
"city": "Hannover",
"hbci_url": "https://vynst.de",
"pin_tan_url": "https://vynst.de",
"blz": "string",
"organization": "string",
"fints_version": "string"
},
"enabled": true,
"tan_mode_id": 42,
"bpd_cache_updated": "2026-10-15T09:30:00+02:00"
}Delete HBCI credential (soft delete)
DELETE/api/hbci/credentials/{identifier}
Path parameters
identifierrequiredstring |
Responses
default
curl --request DELETE \
--url https://your-instance.iw-erp.de/api/hbci/credentials/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'DELETE', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/hbci/credentials/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/hbci/credentials/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.delete(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('DELETE', 'https://your-instance.iw-erp.de/api/hbci/credentials/42', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Delete,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/hbci/credentials/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/hbci/credentials/42")
.delete(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/hbci/credentials/42"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/hbci_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await HbciController.deleteCredential(42);
if (result.success) {
print(result.data);
}Get available TAN modes for credential
GET/api/hbci/credentials/{identifier}/tan-modes
Path parameters
identifierrequiredstring |
Responses
default
curl --request GET \
--url https://your-instance.iw-erp.de/api/hbci/credentials/42/tan-modes \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/hbci/credentials/42/tan-modes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/hbci/credentials/42/tan-modes"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://your-instance.iw-erp.de/api/hbci/credentials/42/tan-modes', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/hbci/credentials/42/tan-modes"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/hbci/credentials/42/tan-modes")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/hbci/credentials/42/tan-modes"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/hbci_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await HbciController.getTanModes(42);
if (result.success) {
print(result.data);
}Get available TAN media for a TAN mode
GET/api/hbci/credentials/{identifier}/tan-modes/{tanModeId}/media
Path parameters
identifierrequiredstring | |
tanModeIdrequiredstring |
Responses
default
curl --request GET \
--url https://your-instance.iw-erp.de/api/hbci/credentials/42/tan-modes/42/media \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/hbci/credentials/42/tan-modes/42/media', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/hbci/credentials/42/tan-modes/42/media"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://your-instance.iw-erp.de/api/hbci/credentials/42/tan-modes/42/media', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/hbci/credentials/42/tan-modes/42/media"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/hbci/credentials/42/tan-modes/42/media")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/hbci/credentials/42/tan-modes/42/media"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/hbci_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await HbciController.getTanMedia(42, 42);
if (result.success) {
print(result.data);
}Test login with credential (returns accounts)
POST/api/hbci/credentials/{identifier}/login
Path parameters
identifierrequiredstring |
Responses
default
curl --request POST \
--url https://your-instance.iw-erp.de/api/hbci/credentials/42/login \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/hbci/credentials/42/login', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/hbci/credentials/42/login"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://your-instance.iw-erp.de/api/hbci/credentials/42/login', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/hbci/credentials/42/login"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/hbci/credentials/42/login")
.post(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/hbci/credentials/42/login"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/hbci_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await HbciController.login(42);
if (result.success) {
print(result.data);
}Fetch statements for credential
POST/api/hbci/credentials/{identifier}/fetch-statements
Path parameters
identifierrequiredstring |
Responses
default
curl --request POST \
--url https://your-instance.iw-erp.de/api/hbci/credentials/42/fetch-statements \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/hbci/credentials/42/fetch-statements', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/hbci/credentials/42/fetch-statements"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://your-instance.iw-erp.de/api/hbci/credentials/42/fetch-statements', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/hbci/credentials/42/fetch-statements"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/hbci/credentials/42/fetch-statements")
.post(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/hbci/credentials/42/fetch-statements"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/hbci_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await HbciController.fetchStatements(42);
if (result.success) {
print(result.data);
}Submit TAN for pending session
POST/api/hbci/sessions/{sessionToken}/submit-tan
Path parameters
sessionTokenrequiredstring |
Responses
default
curl --request POST \
--url https://your-instance.iw-erp.de/api/hbci/sessions/42/submit-tan \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/hbci/sessions/42/submit-tan', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/hbci/sessions/42/submit-tan"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://your-instance.iw-erp.de/api/hbci/sessions/42/submit-tan', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/hbci/sessions/42/submit-tan"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/hbci/sessions/42/submit-tan")
.post(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/hbci/sessions/42/submit-tan"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/hbci_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await HbciController.submitTan('42', '…');
if (result.success) {
print(result.data);
}Check decoupled authentication status
GET/api/hbci/sessions/{sessionToken}/check-decoupled
Path parameters
sessionTokenrequiredstring |
Responses
default
curl --request GET \
--url https://your-instance.iw-erp.de/api/hbci/sessions/42/check-decoupled \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/hbci/sessions/42/check-decoupled', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/hbci/sessions/42/check-decoupled"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://your-instance.iw-erp.de/api/hbci/sessions/42/check-decoupled', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/hbci/sessions/42/check-decoupled"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/hbci/sessions/42/check-decoupled")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/hbci/sessions/42/check-decoupled"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/hbci_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await HbciController.checkDecoupled('42');
if (result.success) {
print(result.data);
}Get session status
GET/api/hbci/sessions/{sessionToken}
Path parameters
sessionTokenrequiredstring |
Responses
200Returns HBCI session statusHbciSession
Show fields (13)
idintegerPrimary key of the HBCI session. Internal ID.
hbci_credentialHbciCredential3HBCI credential used for the session.
Show fields (17)
idintegerPrimary key of the HBCI credential. Internal ID.
bank_dataHbciBankDataBank data of the credential.
enabledbooleanThe credential is enabled.
usernamestringLogin name at the bank.
tan_mode_idintegerID of the TAN mode selected at the bank.
tan_mode_namestringName of the TAN mode.
tan_medium_namestringName of the TAN medium.
last_syncstring (date-time)Time of the last synchronization.
last_sync_errorstringError of the last synchronization.
auto_import_enabledbooleanAutomatic import of bank transactions is enabled.
last_auto_import_atstring (date-time)Time of the last automatic import.
auto_import_statusstringStatus of the last automatic import.
auto_import_messagestringMessage of the last automatic import.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
session_tokenstringToken of the session.
statusstringStatus of the session, for example running, waiting for TAN or done.
action_typestringAction of the session, for example fetch transactions or send payment.
tan_challengestringTAN challenge text shown to the user.
tan_challenge_imagestringTAN challenge image, for example for chip TAN.
tan_challenge_image_mimestringMIME type of the TAN challenge image.
is_decoupledbooleanThe TAN is confirmed in the bank app.
expires_atstring (date-time)Time the session expires.
error_messagestringError message of the session.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
curl --request GET \
--url https://your-instance.iw-erp.de/api/hbci/sessions/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/hbci/sessions/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/hbci/sessions/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://your-instance.iw-erp.de/api/hbci/sessions/42', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/hbci/sessions/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/hbci/sessions/42")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/hbci/sessions/42"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/hbci_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await HbciController.getSession('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"hbci_credential": {
"id": 42,
"username": "lena.hartmann@example.org",
"tan_mode_name": "Beispiel",
"tan_medium_name": "Beispiel",
"name": "Beispiel",
"bank_data": {
"id": 42,
"bic": "BYLADEM1001",
"institute_name": "Beispiel",
"city": "Hannover",
"hbci_url": "https://vynst.de",
"pin_tan_url": "https://vynst.de",
"blz": "string",
"organization": "string",
"fints_version": "string"
},
"enabled": true,
"tan_mode_id": 42,
"last_sync": "2026-10-15T09:30:00+02:00",
"last_sync_error": "string"
},
"session_token": "string",
"status": "string",
"action_type": "string",
"tan_challenge": "string",
"tan_challenge_image": "string",
"tan_challenge_image_mime": "string",
"is_decoupled": true,
"expires_at": "2026-10-15T09:30:00+02:00"
}List HBCI payment submissions (newest first)
GET/api/hbci/payment_submission
Query parameters
idstring | |
typestring | |
statusstring | |
batchKeystring | |
executionNamestring | |
billingPaymentProfilestring | |
hbciCredentialstring | |
requestedDatestring | |
createdstring | |
updatedstring | |
searchStringstring | text to search for in the list |
orderFieldNamestring | name of the order field |
orderFieldSortstring | sorting modeAllowed: DESCASC |
pageinteger | page of the list |
pageSizeinteger | number of entries for each page |
withMaxPageNumberstring | returns the number of pages available as a header if this is set |
Responses
200Returns a list of HBCI payment submissionsarray<HbciPaymentSubmission>
Show fields (35)
total_amountnumber (float)billing_payment_profile_idintegerhbci_credential_idintegersession_tokenstringtan_challengestringis_decoupledbooleanprepared_by_idintegerprepared_by_namestringapproved_by_namestringresolved_by_namestringhas_blocking_warningsbooleanidintegerPrimary key of the payment submission. Internal ID.
typestringType of the submission, for example direct debit or transfer.
statusstringStatus of the submission, for example prepared, approved or sent.
batch_keystringKey of the batch the submission belongs to.
execution_namestringName of the execution.
pain_formatstringFormat of the SEPA file, for example pain.008.
pain_xml_hashstringHash of the SEPA XML file.
transaction_countintegerNumber of transactions in the submission.
total_centsintegerTotal amount of the submission in cents.
requested_datestring (date-time)Requested execution date.
sequence_typestringSequence type of the direct debits, for example first or recurring.
own_ibanstringIBAN of the creditor.
own_namestringName of the creditor.
creditor_idstringCreditor ID of the creditor.
order_sentbooleanThe order was sent to the bank.
tan_submittedbooleanThe TAN for the submission was entered.
error_messagestringError message of the submission.
approved_atstring (date-time)Time the submission was approved.
submitted_atstring (date-time)Time the submission was sent to the bank.
resolutionstringResolution of the submission.
resolution_notestringNote on how the submission was resolved.
resolved_atstring (date-time)Time the submission was resolved.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
curl --request GET \
--url https://your-instance.iw-erp.de/api/hbci/payment_submission \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/hbci/payment_submission', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/hbci/payment_submission"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://your-instance.iw-erp.de/api/hbci/payment_submission', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/hbci/payment_submission"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/hbci/payment_submission")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/hbci/payment_submission"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/hbci_payment_submission_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await HbciPaymentSubmissionController.getAll();
if (result.success) {
print(result.data);
}[
{
"prepared_by_name": "Beispiel",
"approved_by_name": "Beispiel",
"resolved_by_name": "Beispiel",
"id": 42,
"execution_name": "Beispiel",
"own_iban": "DE02120300000000202051",
"own_name": "Beispiel",
"total_amount": 49.9,
"billing_payment_profile_id": 42,
"hbci_credential_id": 42
}
]Prepare the submission of a SEPA run (step 1 of the four-eyes principle). Nothing is sent to the bank.
POST/api/hbci/payment_submission/action/prepare
Body: name (run name), payment_profile (id, optional), type (direct_debit|donation_direct_debit|credit_transfer, optional - derived from the run name), credential (HbciCredential id, optional), requested_date (Y-m-d, optional)
Query parameters
idstring | |
typestring | |
statusstring | |
batchKeystring | |
executionNamestring | |
billingPaymentProfilestring | |
hbciCredentialstring | |
requestedDatestring | |
createdstring | |
updatedstring | |
searchStringstring | text to search for in the list |
orderFieldNamestring | name of the order field |
orderFieldSortstring | sorting modeAllowed: DESCASC |
pageinteger | page of the list |
pageSizeinteger | number of entries for each page |
withMaxPageNumberstring | returns the number of pages available as a header if this is set |
Responses
200The prepared drafts, one per payment grouparray<HbciPaymentSubmission>
Show fields (35)
total_amountnumber (float)billing_payment_profile_idintegerhbci_credential_idintegersession_tokenstringtan_challengestringis_decoupledbooleanprepared_by_idintegerprepared_by_namestringapproved_by_namestringresolved_by_namestringhas_blocking_warningsbooleanidintegerPrimary key of the payment submission. Internal ID.
typestringType of the submission, for example direct debit or transfer.
statusstringStatus of the submission, for example prepared, approved or sent.
batch_keystringKey of the batch the submission belongs to.
execution_namestringName of the execution.
pain_formatstringFormat of the SEPA file, for example pain.008.
pain_xml_hashstringHash of the SEPA XML file.
transaction_countintegerNumber of transactions in the submission.
total_centsintegerTotal amount of the submission in cents.
requested_datestring (date-time)Requested execution date.
sequence_typestringSequence type of the direct debits, for example first or recurring.
own_ibanstringIBAN of the creditor.
own_namestringName of the creditor.
creditor_idstringCreditor ID of the creditor.
order_sentbooleanThe order was sent to the bank.
tan_submittedbooleanThe TAN for the submission was entered.
error_messagestringError message of the submission.
approved_atstring (date-time)Time the submission was approved.
submitted_atstring (date-time)Time the submission was sent to the bank.
resolutionstringResolution of the submission.
resolution_notestringNote on how the submission was resolved.
resolved_atstring (date-time)Time the submission was resolved.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
curl --request POST \
--url https://your-instance.iw-erp.de/api/hbci/payment_submission/action/prepare \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/hbci/payment_submission/action/prepare', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/hbci/payment_submission/action/prepare"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://your-instance.iw-erp.de/api/hbci/payment_submission/action/prepare', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/hbci/payment_submission/action/prepare"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/hbci/payment_submission/action/prepare")
.post(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/hbci/payment_submission/action/prepare"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/hbci_payment_submission_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await HbciPaymentSubmissionController.prepare(name: '…');
if (result.success) {
print(result.data);
}[
{
"prepared_by_name": "Beispiel",
"approved_by_name": "Beispiel",
"resolved_by_name": "Beispiel",
"id": 42,
"execution_name": "Beispiel",
"own_iban": "DE02120300000000202051",
"own_name": "Beispiel",
"total_amount": 49.9,
"billing_payment_profile_id": 42,
"hbci_credential_id": 42
}
]Single HBCI payment submission with the full review (all transactions and findings)
GET/api/hbci/payment_submission/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Returns a single HBCI payment submissionHbciPaymentSubmission
Show fields (35)
total_amountnumber (float)billing_payment_profile_idintegerhbci_credential_idintegersession_tokenstringtan_challengestringis_decoupledbooleanprepared_by_idintegerprepared_by_namestringapproved_by_namestringresolved_by_namestringhas_blocking_warningsbooleanidintegerPrimary key of the payment submission. Internal ID.
typestringType of the submission, for example direct debit or transfer.
statusstringStatus of the submission, for example prepared, approved or sent.
batch_keystringKey of the batch the submission belongs to.
execution_namestringName of the execution.
pain_formatstringFormat of the SEPA file, for example pain.008.
pain_xml_hashstringHash of the SEPA XML file.
transaction_countintegerNumber of transactions in the submission.
total_centsintegerTotal amount of the submission in cents.
requested_datestring (date-time)Requested execution date.
sequence_typestringSequence type of the direct debits, for example first or recurring.
own_ibanstringIBAN of the creditor.
own_namestringName of the creditor.
creditor_idstringCreditor ID of the creditor.
order_sentbooleanThe order was sent to the bank.
tan_submittedbooleanThe TAN for the submission was entered.
error_messagestringError message of the submission.
approved_atstring (date-time)Time the submission was approved.
submitted_atstring (date-time)Time the submission was sent to the bank.
resolutionstringResolution of the submission.
resolution_notestringNote on how the submission was resolved.
resolved_atstring (date-time)Time the submission was resolved.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
curl --request GET \
--url https://your-instance.iw-erp.de/api/hbci/payment_submission/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/hbci/payment_submission/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/hbci/payment_submission/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://your-instance.iw-erp.de/api/hbci/payment_submission/42', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/hbci/payment_submission/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/hbci/payment_submission/42")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/hbci/payment_submission/42"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/hbci_payment_submission_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await HbciPaymentSubmissionController.get(42);
if (result.success) {
print(result.data);
}{
"prepared_by_name": "Beispiel",
"approved_by_name": "Beispiel",
"resolved_by_name": "Beispiel",
"id": 42,
"execution_name": "Beispiel",
"own_iban": "DE02120300000000202051",
"own_name": "Beispiel",
"total_amount": 49.9,
"billing_payment_profile_id": 42,
"hbci_credential_id": 42
}The pain XML exactly as it is (or was) sent to the bank
GET/api/hbci/payment_submission/{identifier}/xml
Path parameters
identifierrequiredstring |
Responses
200pain.008 / pain.001 XML file
curl --request GET \
--url https://your-instance.iw-erp.de/api/hbci/payment_submission/42/xml \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/hbci/payment_submission/42/xml', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/hbci/payment_submission/42/xml"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://your-instance.iw-erp.de/api/hbci/payment_submission/42/xml', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/hbci/payment_submission/42/xml"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/hbci/payment_submission/42/xml")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/hbci/payment_submission/42/xml"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with package:http (no controller in the iw_erp_api package)
import 'package:http/http.dart' as http;
final response = await http.get(
Uri.parse('https://your-instance.iw-erp.de/api/hbci/payment_submission/42/xml'),
headers: {'x-iw-jwt-token': '<TOKEN>'},
);
print(response.body);Approve a prepared submission and send it to the bank (step 2, by a second person)
POST/api/hbci/payment_submission/{identifier}/approve
Body: pain_xml_hash (the hash shown in the review), confirmed (true) Returns the bank step result (needs_tan, session_token, ...) and the updated submission.
Path parameters
identifierrequiredstring |
Responses
200Result of the bank dialog and the submission
curl --request POST \
--url https://your-instance.iw-erp.de/api/hbci/payment_submission/42/approve \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/hbci/payment_submission/42/approve', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/hbci/payment_submission/42/approve"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://your-instance.iw-erp.de/api/hbci/payment_submission/42/approve', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/hbci/payment_submission/42/approve"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/hbci/payment_submission/42/approve")
.post(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/hbci/payment_submission/42/approve"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/hbci_payment_submission_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await HbciPaymentSubmissionController.approve(42, painXmlHash: '…', confirmed: true);
if (result.success) {
print(result.data);
}Withdraw a draft or abort the TAN entry
POST/api/hbci/payment_submission/{identifier}/cancel
Path parameters
identifierrequiredstring |
Responses
200The cancelled submissionHbciPaymentSubmission
Show fields (35)
total_amountnumber (float)billing_payment_profile_idintegerhbci_credential_idintegersession_tokenstringtan_challengestringis_decoupledbooleanprepared_by_idintegerprepared_by_namestringapproved_by_namestringresolved_by_namestringhas_blocking_warningsbooleanidintegerPrimary key of the payment submission. Internal ID.
typestringType of the submission, for example direct debit or transfer.
statusstringStatus of the submission, for example prepared, approved or sent.
batch_keystringKey of the batch the submission belongs to.
execution_namestringName of the execution.
pain_formatstringFormat of the SEPA file, for example pain.008.
pain_xml_hashstringHash of the SEPA XML file.
transaction_countintegerNumber of transactions in the submission.
total_centsintegerTotal amount of the submission in cents.
requested_datestring (date-time)Requested execution date.
sequence_typestringSequence type of the direct debits, for example first or recurring.
own_ibanstringIBAN of the creditor.
own_namestringName of the creditor.
creditor_idstringCreditor ID of the creditor.
order_sentbooleanThe order was sent to the bank.
tan_submittedbooleanThe TAN for the submission was entered.
error_messagestringError message of the submission.
approved_atstring (date-time)Time the submission was approved.
submitted_atstring (date-time)Time the submission was sent to the bank.
resolutionstringResolution of the submission.
resolution_notestringNote on how the submission was resolved.
resolved_atstring (date-time)Time the submission was resolved.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
curl --request POST \
--url https://your-instance.iw-erp.de/api/hbci/payment_submission/42/cancel \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/hbci/payment_submission/42/cancel', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/hbci/payment_submission/42/cancel"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://your-instance.iw-erp.de/api/hbci/payment_submission/42/cancel', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/hbci/payment_submission/42/cancel"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/hbci/payment_submission/42/cancel")
.post(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/hbci/payment_submission/42/cancel"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with package:http (no controller in the iw_erp_api package)
import 'package:http/http.dart' as http;
final response = await http.post(
Uri.parse('https://your-instance.iw-erp.de/api/hbci/payment_submission/42/cancel'),
headers: {'x-iw-jwt-token': '<TOKEN>'},
);
print(response.body);{
"prepared_by_name": "Beispiel",
"approved_by_name": "Beispiel",
"resolved_by_name": "Beispiel",
"id": 42,
"execution_name": "Beispiel",
"own_iban": "DE02120300000000202051",
"own_name": "Beispiel",
"total_amount": 49.9,
"billing_payment_profile_id": 42,
"hbci_credential_id": 42
}Resolve a submission whose outcome is unknown after checking the online banking
POST/api/hbci/payment_submission/{identifier}/resolve
Body: resolution (executed|not_executed), note (optional)
Path parameters
identifierrequiredstring |
Responses
200The resolved submissionHbciPaymentSubmission
Show fields (35)
total_amountnumber (float)billing_payment_profile_idintegerhbci_credential_idintegersession_tokenstringtan_challengestringis_decoupledbooleanprepared_by_idintegerprepared_by_namestringapproved_by_namestringresolved_by_namestringhas_blocking_warningsbooleanidintegerPrimary key of the payment submission. Internal ID.
typestringType of the submission, for example direct debit or transfer.
statusstringStatus of the submission, for example prepared, approved or sent.
batch_keystringKey of the batch the submission belongs to.
execution_namestringName of the execution.
pain_formatstringFormat of the SEPA file, for example pain.008.
pain_xml_hashstringHash of the SEPA XML file.
transaction_countintegerNumber of transactions in the submission.
total_centsintegerTotal amount of the submission in cents.
requested_datestring (date-time)Requested execution date.
sequence_typestringSequence type of the direct debits, for example first or recurring.
own_ibanstringIBAN of the creditor.
own_namestringName of the creditor.
creditor_idstringCreditor ID of the creditor.
order_sentbooleanThe order was sent to the bank.
tan_submittedbooleanThe TAN for the submission was entered.
error_messagestringError message of the submission.
approved_atstring (date-time)Time the submission was approved.
submitted_atstring (date-time)Time the submission was sent to the bank.
resolutionstringResolution of the submission.
resolution_notestringNote on how the submission was resolved.
resolved_atstring (date-time)Time the submission was resolved.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
curl --request POST \
--url https://your-instance.iw-erp.de/api/hbci/payment_submission/42/resolve \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/hbci/payment_submission/42/resolve', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/hbci/payment_submission/42/resolve"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://your-instance.iw-erp.de/api/hbci/payment_submission/42/resolve', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/hbci/payment_submission/42/resolve"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/hbci/payment_submission/42/resolve")
.post(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/hbci/payment_submission/42/resolve"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with package:http (no controller in the iw_erp_api package)
import 'package:http/http.dart' as http;
final response = await http.post(
Uri.parse('https://your-instance.iw-erp.de/api/hbci/payment_submission/42/resolve'),
headers: {'x-iw-jwt-token': '<TOKEN>'},
);
print(response.body);{
"prepared_by_name": "Beispiel",
"approved_by_name": "Beispiel",
"resolved_by_name": "Beispiel",
"id": 42,
"execution_name": "Beispiel",
"own_iban": "DE02120300000000202051",
"own_name": "Beispiel",
"total_amount": 49.9,
"billing_payment_profile_id": 42,
"hbci_credential_id": 42
}