# List notification apps

`GET /service/@id/tinopay/notification-apps` · TinoPay, service owner's sign-in token

Apps that post transaction notifications to Telegram, Zalo or Lark; filter by `type`, `bank_account_id`. `bot`: `allpay` (shared bot), `own` (your bot), `null` for Lark. `bot_token` is never returned, only `bot_token_masked`. A non-null `last_error`: the latest delivery failed (token revoked, bot removed from the group…); it goes back to `null` after a successful delivery.

## HTTP request

| Item | Value |
| --- | --- |
| URL | `https://api.tino.vn/service/@id/tinopay/notification-apps` |
| Method | `GET` |
| Authentication | the TinoPay service owner's sign-in token (`Authorization: Bearer <token>`); the `/v1` gateway does not expose TinoPay yet |
| Content-Type | — (no body) |

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | int | yes | TinoPay service ID |
| `type` | query | string | — | telegram \| zalo \| lark |
| `bank_account_id` | query | string | — | — |

## Example request

```bash
curl "https://api.tino.vn/service/100001/tinopay/notification-apps" \
  -H "Authorization: Bearer $TINO_TOKEN"
```

`$TINO_TOKEN` is the TinoPay service owner's sign-in token. Path parameters in the example are sample values.

SDK ([SDK & examples](/en/docs/sdk)): no dedicated function yet, use `client.request("GET", "/service/@id/tinopay/notification-apps")`.

## Example response

```json
{
 "data": [
  {
   "id": 7,
   "type": "zalo",
   "name": "Nhóm kế toán",
   "endpoint": "zgr-1a2b3c4d5e6f7a8b9c0d",
   "bot": "own",
   "bot_token_masked": "<masked>",
   "bank_account_id": "9c1e6f2a-5b7d-4e1a-9f3c-2d8b6a4e0c11",
   "virtual_accounts": [
    "9624QA01"
   ],
   "status": "active",
   "last_error": null,
   "last_error_at": null,
   "created_at": "2026-10-22T09:00:00+07:00",
   "updated_at": "2026-10-22T09:00:00+07:00"
  }
 ]
}
```

Sample built from the TinoPay API v1 documentation (Tino relays TinoPay data as is); values are examples.
