Next Restaurant 6.1.0: move your data in, run payroll, and connect other systems Next Inventory 6.2.0: a REST API and webhooks for your other systems Next DB 6.1: Auto-Updating Tables, Printing, Phone Layout and SEO Next Task 6.0.0: a task manager for Joomla Next Inventory 6.1.1: smoother Check Out, no more list limits, and much faster PHP2Shell: Is Your Joomla Site Safe? What to Do Today Introducing Next Boards: Kanban project and task boards for Joomla Building the Future of Joomla Extensions
NextSoftware

List Payments

GET /v1/nextrestaurant/payments

Money taken, oldest change first

Needs payments:read and the POS app.

Request

GET https://your-site.example/api/index.php/v1/nextrestaurant/payments?location_id=<integer>&status=captured&updated_since=2026-11-01T00:00:00Z&limit=<integer>&cursor=<string>

Parameters

Name Type In Required Description
location_id integer query No Only this location. Omit for all. (min 1)
status string query No
updated_since string query No Only records changed at or after this UTC date-time (ISO 8601 or Y-m-d H:i:s).
limit integer query No Page size. Above 100 is clamped to 100; meta.limit says what was used. (min 1, max 100) Defaults to 25.
cursor string query No The meta.next_cursor of the previous page. Opaque; do not build one.

Responses

200 — One page.

{
    "data": [
        {
            "id": 1,
            "order_id": 1,
            "location_id": 1,
            "method": "cash",
            "amount": 1.5,
            "tip_amount": 1.5,
            "refunded_total": 1.5,
            "currency": "string",
            "status": "captured",
            "reference": "string",
            "paid_at": "string",
            "created_at": "string",
            "updated_at": "string"
        }
    ],
    "meta": {
        "limit": 1,
        "next_cursor": "string"
    }
}
Field Type Meaning
data[].id integer (int64)
data[].order_id integer|null
data[].location_id integer|null
data[].method string|null
data[].amount number
data[].tip_amount number
data[].refunded_total number Sum of the refunds against this payment.
data[].currency string|null
data[].status string
data[].reference string|null The provider's or the till's transaction reference.
data[].paid_at string|null
data[].created_at string|null
data[].updated_at string|null
meta.limit integer The page size used.
meta.next_cursor string|null Pass as cursor for the next page; null on the last page.

Errors

Status Code When
400 INVALID_CURSOR: use meta.next_cursor exactly as given.
401 INVALID_TOKEN The token is missing, wrong, or none has been generated.
403 INSUFFICIENT_SCOPE This API key does not have the permission this request needs.
403 MODULE_DISABLED This module is disabled.
403 API_DISABLED API is disabled
422 VALIDATION_FAILED One error per invalid field, each with source.pointer.
429 RATE_LIMITED Too many requests. RATE_LIMITED with a Retry-After header: this key used its budget for the minute, or this address sent 20 bad tokens in 5 minutes. Nothing ran, so the request is safe to retry after the wait.

Examples

curl

curl -s "https://your-site.example/api/index.php/v1/nextrestaurant/payments" \
  -H "Authorization: Bearer $API_TOKEN"

PHP

<?php
$ch = curl_init('https://your-site.example/api/index.php/v1/nextrestaurant/payments?location_id=<integer>&status=captured&updated_since=2026-11-01T00:00:00Z&limit=<integer>&cursor=<string>');

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . getenv('API_TOKEN'),
    ],
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

JavaScript

const API_TOKEN = process.env.API_TOKEN;

const response = await fetch("https://your-site.example/api/index.php/v1/nextrestaurant/payments?location_id=<integer>&status=captured&updated_since=2026-11-01T00:00:00Z&limit=<integer>&cursor=<string>", {
  headers: {
    "Authorization": `Bearer ${API_TOKEN}`,
  },
});
const data = await response.json();

All Extensions