# Get payments

> Retrieve payment and adjustment history via GET /user/payments — deposits, usage and manual adjustments merged from the SMS gateway and portal sources.
> Source: https://docs.23telecom.co.uk/account/payments/

Instructions for LLMs: This is one page of the 23 Telecom messaging API docs
(SMS today; more channels planned). Base URL: https://restlink23telecom.com/api/v1,
auth via the X-API-Key header. Match errors on the error_code field, never on
description text. Full docs: https://docs.23telecom.co.uk/llms-full.txt · Schemas: https://docs.23telecom.co.uk/openapi.yaml

Transaction history, merged from two sources: gateway payments and portal
adjustments.

`GET /api/v1/user/payments` (permission: `payments.read`)

## Request

```
GET https://restlink23telecom.com/api/v1/user/payments
Header: X-API-Key: <your key>
```
*(The web page shows this example in cURL, Node.js, Python, PHP, Ruby, Java, Go and .NET.)*

## Response

```json title="200 OK"
[
  {
    "id": "sms_gateway_S12345",
    "amount": 500.00,
    "currency": "EUR",
    "date": "2026-02-10T14:30:00Z",
    "type": "deposit",
    "description": "Wire transfer REF-2026-001",
    "source": "sms_gateway"
  },
  {
    "id": "portal_P678",
    "amount": 50.00,
    "currency": "EUR",
    "date": "2026-02-08T09:00:00Z",
    "type": "adjustment",
    "description": "Manual credit by admin",
    "source": "portal"
  }
]
```

| Field | Description |
| --- | --- |
| `id` | `sms_gateway_S{id}` for gateway payments, `portal_P{id}` for portal adjustments |
| `source` | `sms_gateway` (upstream payment) or `portal` (manual admin adjustment) |

| `type` | Meaning |
| --- | --- |
| `deposit` | Incoming payment |
| `usage` | SMS cost (negative amount) |
| `adjustment` | Manual credit or debit by an administrator |

## Notes

- During account setup the endpoint returns HTTP 200 with
  `{"status": false, "error": "Account is in setup process", …}`.
- Degraded-cache behavior (see [balance](/account/balance#degraded-state)):
  `partial` returns portal adjustments only; `unavailable` returns `[]` —
  check the `X-Sms-Gateway-Status` header.