Payments, by version or by seq
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Get, RequestUri = new Uri("https://api.slflo.com/api/integration/v1/payments?filter%5Bversion_after%5D=18000&filter%5Bupdated_after%5D=2026-10-01T00%3A00%3A00Z&filter%5Back%5D=pending&filter%5Bid%5D=ord_01J9X%2Cord_01J9Y&filter%5Bexternal_ref%5D=SO-0012345&per_page=100&filter%5Bseq_after%5D=40"), Headers = { { "Authorization", "Bearer <token>" }, },};using (var response = await client.SendAsync(request)){ response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);}HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://api.slflo.com/api/integration/v1/payments?filter%5Bversion_after%5D=18000&filter%5Bupdated_after%5D=2026-10-01T00%3A00%3A00Z&filter%5Back%5D=pending&filter%5Bid%5D=ord_01J9X%2Cord_01J9Y&filter%5Bexternal_ref%5D=SO-0012345&per_page=100&filter%5Bseq_after%5D=40")) .header("Authorization", "Bearer <token>") .method("GET", HttpRequest.BodyPublishers.noBody()) .build();HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());System.out.println(response.body());const url = 'https://api.slflo.com/api/integration/v1/payments?filter%5Bversion_after%5D=18000&filter%5Bupdated_after%5D=2026-10-01T00%3A00%3A00Z&filter%5Back%5D=pending&filter%5Bid%5D=ord_01J9X%2Cord_01J9Y&filter%5Bexternal_ref%5D=SO-0012345&per_page=100&filter%5Bseq_after%5D=40';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.slflo.com/api/integration/v1/payments?filter%5Bversion_after%5D=18000&filter%5Bupdated_after%5D=2026-10-01T00%3A00%3A00Z&filter%5Back%5D=pending&filter%5Bid%5D=ord_01J9X%2Cord_01J9Y&filter%5Bexternal_ref%5D=SO-0012345&per_page=100&filter%5Bseq_after%5D=40' \ --header 'Authorization: Bearer <token>'By version (every change, reversals included) or, with filter[seq_after], each payment once as it is issued, with no gaps. Needs payments:read.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”The cursor: the last version you staged, or meta.next_version_after. version_after is accepted too.
Example
18000ISO-8601 time; starts a first load at the first change from then. Not beside a cursor.
Example
2026-10-01T00:00:00ZPending (no ack at the current version), accepted, rejected or any (default).
Example
pendingComma list of our ids, at most 100.
Example
ord_01J9X,ord_01J9YYour key for the record, as you acked it.
Example
SO-00123451 to 500, default 100.
Example
100Follow newly issued documents in issue order instead: the last seq you took (meta.last_seq). On its own.
Example
40Responses
Section titled “Responses”Payments, by version or by seq
object
object
object
object
object
object
object
object
object
object
object
object
Example
{ "data": [ { "ack": null, "allocations": [ { "amount": "1430.70", "invoice": { "code": "INV-000041", "external_ref": null, "id": "inv_01J9" }, "kind": "INVOICE", "receivable_id": "rcv_01J9", "reference": "INV-000041" } ], "amount": "1430.70", "branch": { "code": "MAIN", "external_ref": "CUST-0042/01", "id": "C0000001:main" }, "cheque": { "bank": "NBE", "bounce_reason": null, "due_on": "2026-10-20", "number": "000123", "status": "IN_HAND" }, "collected_at": "2026-10-05T10:42:00Z", "collected_by": { "sales_rep": { "code": "R012", "external_ref": "EMP-0451", "id": "rep_12" }, "user": "rep12" }, "collection_date": "2026-10-05", "currency": "EGP", "customer": { "code": "CUST-1", "external_ref": "CUST-0042", "id": "C0000001" }, "external_number": null, "external_ref": null, "id": "pay_01J9", "method": "CHEQUE", "number": "RC-000017", "on_account": "0.00", "receipt": { "balance_after": "0.00", "id": "rc_01J9", "issued_at": "2026-10-05T10:42:00Z", "number": "RC-000017", "seq": 17, "void_reason": null, "voided_at": null }, "reference": "000123", "reversal": null, "seq": 17, "status": "RECORDED", "updated_at": "2026-10-05T10:42:00Z", "version": 9133 } ], "meta": { "has_more": false, "high_water": 9140, "next_version_after": 9140, "per_page": 100 }}default
Section titled “default”An error: the code says what, retryable whether to try again.
object
object
Stable code, e.g. SCOPE_MISSING, UNKNOWN_REFERENCE.
Field-level problems: {field, code}.
object
What happened and how to fix it.
Quote it to support; it finds the server log.
Whether the same call may succeed later.
Example
{ "error": { "code": "SCOPE_MISSING", "details": [], "message": "This client does not hold the invoices:read scope.", "request_id": "req_01J9X4Q7T2M8P3NRT6V5WZ", "retryable": false }}
