> For the complete documentation index, see [llms.txt](https://docs.geeknums.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.geeknums.io/dhl-checknumber-api-massenprufung.md).

# DHL CheckNumber API: Massenprüfung

DHL CheckNumber: Verarbeiten Sie Eingabewerte über die Batch-API und erhalten Sie die unten aufgeführten Ergebnisfelder.

## Eingabeformat

Laden Sie eine Textdatei mit einer Telefonnummer pro Zeile hoch. Normalisieren Sie die Werte vor dem Upload; für Telefonnummern wird das E.164-Format empfohlen.

```
+14155552671+442071838750
```

{% stepper %}
{% step %}

## Aufgabe erstellen

`POST https://api.checknumber.ai/v1/tasks`

```bash
curl --location 'https://api.checknumber.ai/v1/tasks' \--header 'X-API-Key: YOUR_API_KEY' \--form 'file=@"./input.txt"' \--form 'task_type="dhl"'
```

Die API gibt eine Aufgaben-ID zurück. Bewahren Sie diese ID auf und verwenden Sie sie zur Abfrage des Aufgabenstatus.
{% endstep %}

{% step %}

## Aufgabenstatus prüfen

`POST https://api.checknumber.ai/v1/gettasks`

```bash
curl --location 'https://api.checknumber.ai/v1/gettasks' \--header 'X-API-Key: YOUR_API_KEY' \--form 'task_id="d4g8o46p2jvh04o9uolg"'
```

Fragen Sie den Status ab, bis `status` zu `exported` wechselt. `pending` und `processing` sind keine abgeschlossenen Ergebnisse.
{% endstep %}

{% step %}

## Verarbeitung der Ergebnisdatei

Laden Sie die Datei erst nach dem Export der Aufgabe über `result_url` herunter. Bewahren Sie die zurückgegebenen Spaltennamen bei der weiteren Verarbeitung bei.
{% endstep %}
{% endstepper %}

## Antwort beim Upload

```json
{  "task_id": "d4g8o46p2jvh04o9uolg",  "status": "pending",  "total": 5000,  "estimated_amount": {    "amount": "0.500000",    "currency": "USD"  },  "message": "Task created successfully"}
```

## Antwort während der Verarbeitung

```json
{  "task_id": "d4g8o46p2jvh04o9uolg",  "status": "processing",  "total": 5000,  "success": 2500,  "failure": 0}
```

## Exportierte Antwort

```json
{  "task_id": "d4g8o46p2jvh04o9uolg",  "status": "exported",  "total": 5000,  "success": 5000,  "failure": 0,  "result_url": "https://example-link-to-results.zip",  "actual_amount": {    "amount": "2.000000",    "currency": "USD"  }}
```

## Ergebnisfelder

| Feld        | Beschreibung                                                   | Beispiel     |
| ----------- | -------------------------------------------------------------- | ------------ |
| `number`    | Telefonnummer aus der übermittelten Datei.                     | +14155552671 |
| `activated` | Gibt an, ob der Wert als aktiv oder registriert erkannt wurde. | yes          |

## Antwortfelder

| Feld               | Beschreibung                                             |
| ------------------ | -------------------------------------------------------- |
| `created_at`       | Zeitstempel der Aufgabenerstellung.                      |
| `updated_at`       | Zeitstempel der letzten Statusaktualisierung.            |
| `task_id`          | Eindeutige Aufgabenkennung.                              |
| `status`           | `pending`, `processing`, `exported` oder `failed`.       |
| `total`            | Gesamtzahl der verarbeiteten Eingabewerte.               |
| `success`          | Erfolgreich verarbeitete Werte.                          |
| `failure`          | Werte, deren Verarbeitung fehlgeschlagen ist.            |
| `result_url`       | Download-URL nach dem Export der Aufgabe.                |
| `actual_amount`    | Endgültig abgerechneter Betrag, sofern verfügbar.        |
| `estimated_amount` | Beim Erstellen der Aufgabe zurückgegebener Schätzbetrag. |

## Statuscodes

| Status | Beschreibung                                                                      |
| ------ | --------------------------------------------------------------------------------- |
| `200`  | Anfrage erfolgreich.                                                              |
| `202`  | Aufgabe erfolgreich erstellt; der geschätzte Betrag wurde angewendet.             |
| `400`  | Ungültige Datei, nicht unterstützter Aufgabentyp oder zu wenige gültige Einträge. |
| `401`  | API-Key fehlt oder ist ungültig.                                                  |
| `402`  | Unzureichendes Kontoguthaben.                                                     |
| `404`  | Aufgabe nicht gefunden.                                                           |
| `413`  | Die hochgeladene Datei ist zu groß.                                               |
| `500`  | Interner Serverfehler; versuchen Sie es später erneut.                            |

## Hinweise zum Betrieb

* Die Aufgabe ist asynchron. Verwenden Sie die Aufgaben-ID zur Statusabfrage.
* Prüfen Sie vor dem Upload die produktspezifischen Eingabelimits.
* Fehlerhafte Zeilen werden im exportierten Ergebnis ausgegeben und in den Aufgabenzählern berücksichtigt.
* Die obigen Felder basieren auf dem aktuellen Live-Sample und können sich ändern, wenn sich das vorgelagerte Exportschema ändert.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.geeknums.io/dhl-checknumber-api-massenprufung.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
