Biklo for developersTESTsandbox-api.biklo.comchange

Emails and SMS sent about your orders

GET/v1/notifications

scope orders.read

Every message the platform sent about one of YOUR orders — scoped by seller, not by recipient, because most of this mail goes to buyers. In the sandbox nothing is delivered, so every row is suppressed: composed in full and deliberately not sent. This is the only evidence a test order produced a notification at all. Subscribe to the notification.sent webhook rather than polling.

Query parameters#

NameExample
limit50Max 100
cursor—next_cursor
channelmailmail or sms
statussuppressedsent, failed or suppressed
order_id721Only messages about one order
templateemail_shipping_sentFilter by template

Response#

FieldTypeDescription
countintegerHow many notifications in this page.
next_cursorstring|nullPass back as ?cursor=; null on the last page.
dataarrayThe emails and SMS we sent ABOUT your orders — to your buyers and to you. This is the record of what the platform said on your behalf, which is otherwise invisible to an integration.
data[].idintegerThe delivery id, for GET /v1/notifications/{id}.
data[].channelstringWhich channel it went on.

Accepts mail · sms

data[].statusstringWhat happened to it. In the SANDBOX everything is suppressed: nothing is really sent, because a test run must never reach a real inbox or phone. The record is kept so you can read exactly what would have gone out.

Accepts sent · failed · suppressed

data[].order_idinteger|nullWhich order it concerns, where it concerns one.
data[].templatestring|nullWhich message this was, as a stable key. Match on this rather than on the subject line — subjects are translated and get edited.
data[].subjectstring|nullThe subject line, in the recipient's language.
data[].previewstring|nullA short extract of the body. The full body is on the detail endpoint.
data[].created_atstringISO-8601 UTC.

Example

{
    "count": 1,
    "next_cursor": null,
    "data": [
        {
            "id": 7,
            "channel": "mail",
            "status": "suppressed",
            "order_id": 721,
            "template": "email_shipping_sent",
            "subject": "Comanda ta a fost expediata",
            "preview": "AWB 123456",
            "created_at": "2026-09-12T07:58:14Z"
        }
    ]
}

Failures use the shared error envelope — a machine-readable code and a request_id to quote to support. Error handling.

curl -X GET "https://sandbox-api.biklo.com/v1/notifications?limit=50" \
  -H "Authorization: Bearer bk_test_YOUR_KEY"
<?php

$ch = curl_init('https://sandbox-api.biklo.com/v1/notifications?limit=50');

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'GET',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer bk_test_YOUR_KEY',
    ],
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);
using System.Net.Http;
using System.Net.Http.Headers;

var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
    new AuthenticationHeaderValue("Bearer", "bk_test_YOUR_KEY");

var request = new HttpRequestMessage(
    new HttpMethod("GET"),
    "https://sandbox-api.biklo.com/v1/notifications?limit=50");

var response = await client.SendAsync(request);
var json = await response.Content.ReadAsStringAsync();
import requests

response = requests.get(
    "https://sandbox-api.biklo.com/v1/notifications?limit=50",
    headers={"Authorization": "Bearer bk_test_YOUR_KEY"},
)

data = response.json()
const response = await fetch("https://sandbox-api.biklo.com/v1/notifications?limit=50", {
  method: "GET",
  headers: {
    Authorization: "Bearer bk_test_YOUR_KEY"
  }
});

const data = await response.json();
import java.net.http.*;
import java.net.URI;

var client = HttpClient.newHttpClient();

var request = HttpRequest.newBuilder()
    .uri(URI.create("https://sandbox-api.biklo.com/v1/notifications?limit=50"))
    .header("Authorization", "Bearer bk_test_YOUR_KEY")
    .method("GET", HttpRequest.BodyPublishers.noBody())
    .build();

var response = client.send(request, HttpResponse.BodyHandlers.ofString());