## API-URL
URL zum Senden von HTTP-Anfragen:
```url
https://portal.bulkgate.com/api/1.0/price-list/get
```

> [!NOTE]
> Wenn die Anfrage ihr Ziel nicht erreicht, wiederholen Sie sie auf dem [Backup-Server](https://www.bulkgate.com/de/dokumentation/api-verwaltung-und-tokens/backup-server/) `backup1.bulkgate.com`.


```http
POST /api/1.0/price-list/get HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json
```

> [!NOTE]
> Die API ist durch ein Minutenkontingent von **20** Anfragen begrenzt.

### Parametertabelle

| PARAMETERNAME     | WERT                                          | PFLICHT   | STANDARDWERT  |
|:------------------|:----------------------------------------------|:----------|:--------------|
| application_id    | [Application ID](https://www.bulkgate.com/de/dokumentation/api-verwaltung-und-tokens/api-verwaltung/) | **Ja**    | -             | 
| application_token | [Application token](https://www.bulkgate.com/de/dokumentation/api-verwaltung-und-tokens/api-tokens/)	     | **Ja**    | -             |
| country           | Array der Ländercodes der gewünschten Preisliste | **Ja**  | -             |
| wallet            | Name der gewünschten Wallet.                  | Nein      | Haupt-Wallet  |


> Anders als die übrigen Endpunkte lehnt `price-list/get` jeden Parameter, der nicht in der obigen Tabelle steht, mit `invalid_input_parameters` ab. `country` muss immer ein Array sein, auch bei einem einzigen Land.

### Beispiel einer vollständigen Anfrage

```http-json
POST /api/1.0/price-list/get HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json

{
	"application_id": 451,
	"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
	"country": ["sk", "cz"],
	"wallet": "bg1905014138000023"
}
```

## Mögliche Antworten auf diesen Befehl:

**Im Erfolgsfall:**
```json
{
  "data": {
    "price_list": {
      "sk": [
        {
          "operator": "4ka",
          "operator_code": "23103",
          "type": "gSystem",
          "price": 0.03,
          "currency": "EUR",
          "gate": 0,
          "economy": false,
          "unicode": true,
          "two_way": true,
          "registration": false,
          "registration_fee": 0,
          "registration_delay": 0,
          "monthly_fee": 0,
          "route_quality": "HQ",
          "route_note": null,
          "sender_note": null,
          "default_senders": [
            "+##############"
          ]
        },
        {
          "operator": "O2",
          "operator_code": "23106",
          "type": "gSystem",
          "price": 0.03,
          "currency": "EUR",
          "gate": 0,
          "economy": false,
          "unicode": true,
          "two_way": true,
          "registration": false,
          "registration_fee": 0,
          "registration_delay": 0,
          "monthly_fee": 0,
          "route_quality": "HQ",
          "route_note": null,
          "sender_note": null,
          "default_senders": [
            "+###############"
          ]
        }
      ]
    }
  }
}
```



### Eintrag der Preisliste

`data.price_list` ist ein Objekt, dessen Schlüssel die Ländercodes sind; unter jedem Schlüssel steht ein Array von Routen. Ein Land, für das keine Preisliste existiert, ist in der Antwort überhaupt **nicht** enthalten.

| FELD               | WERT                                                                                                                                                          |
|:-------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------|
| operator           | Name des Netzbetreibers                                                                                                                                        |
| operator_code      | Code des Netzbetreibers                                                                                                                                        |
| type               | Typ der Absenderkennung der Route: `gTextOwn`, `gSystem`, `gShort`, `gText`, `gOwn`, `gMobile`, `gPush` oder `gNone`, wenn die Route keinen hat                 |
| price              | Preis eines Nachrichtenteils, auf 4 Dezimalstellen gerundet und in die Währung der Wallet umgerechnet                                                          |
| currency           | Währung der Wallet, zu der die Preisliste gehört                                                                                                              |
| gate               | Nummer des Gateways `0`–`6`, `985` für [Mobile Connect](https://www.bulkgate.com/de/hilfe-center/mobile-connect/mobile-connect-installation/)                                                                  |
| economy            | Economy-Route                                                                                                                                                 |
| unicode            | Die Route unterstützt Unicode                                                                                                                                 |
| two_way            | Die Route unterstützt [Zwei-Wege-Kommunikation](https://www.bulkgate.com/de/produkte/zwei-wege-sms/). Bei `gOwn` immer `true`                                                             |
| registration       | Die Absenderkennung muss vor dem Versand registriert werden, siehe [Registrierung des Textabsenders](https://www.bulkgate.com/de/hilfe-center/sms/textabsender-registrieren/)                  |
| registration_fee   | Einmalige Gebühr für die Registrierung der Absenderkennung. Nur zusammen mit `registration` aussagekräftig                                                     |
| registration_delay | Wie lange die Registrierung dauert. Nur zusammen mit `registration` aussagekräftig                                                                             |
| monthly_fee        | Wiederkehrende monatliche Gebühr für die registrierte Absenderkennung. Nur zusammen mit `registration` aussagekräftig                                         |
| route_quality      | Einer der Werte `HQ`, `PARTNER DIRECT`, `DIRECT`, `SIM`, `WH`, `SS7`, `PARTNER SS7`, `OFFNET DIRECT - NATIONAL`, `OFFNET DIRECT - GROUP`, `OFFNET DIRECT - INTERNATIONAL` und deren `PARTNER`-Varianten. Ein **leerer String**, wenn die Qualität nicht bekannt ist |
| route_note         | Hinweis zur Route, `null`, wenn keiner vorhanden ist                                                                                                          |
| sender_note        | Hinweis zur Absenderkennung, `null`, wenn keiner vorhanden ist                                                                                                |
| default_senders    | Array der Standard-Absenderkennungen der Route                                                                                                                |


**Im Fehlerfall:**

```json
{
    "type": "invalid_wallet",
    "code": 400,
    "error": "Invalid wallet",
    "detail": null
}
```

```json
{
    "type": "the_quota_of_send_per_minute_has_been_exceeded",
    "code": 400,
    "error": "The quota of send per minute has been exceeded",
    "detail": null
}
```

```json
{
    "type": "invalid_input_parameters",
    "code": 400,
    "error": "Invalid input parameters",
    "detail": null
}
```

```json
{
    "type": "unknown_identity",
    "code": 401,
    "error": "Unknown identity / unauthorized / empty application_id",
    "detail": null
}
```

Dabei gilt:
 - **type** und **error** (Beschreibung des Fehlers) finden Sie in der [Tabelle der Fehlertypen](https://www.bulkgate.com/de/dokumentation/api-verwaltung-und-tokens/api-fehlertypen/)
 - **code** steht für den HTTP-Fehlercode
 - **detail** enthält zusätzliche Informationen zum Fehler
