Biklo for developersTESTsandbox-api.biklo.comchange

Money per order

GET/v1/wallet/lots

scope wallet.read

One row per order. balance_bucket says which bucket in GET /v1/wallet/balance this lot counts towards, so you can reconcile the two without learning our internal statuses. net_transferred_amount is what actually reached the seller — NOT amount when the company absorbed fees, because the surcharge is withheld at transfer. Reconcile against the net.

Query parameters#

NameExample
limit50Max 100
cursor—next_cursor
statusready_to_transferFilter by lot status
currencyRONFilter by currency
order_id716The lot for one order
updated_since2026-09-01T00:00:00ZIncremental sync

Response#

FieldTypeDescription
countintegerHow many lots in this page.
next_cursorstring|nullPass back as ?cursor=; null on the last page.
dataarrayOne lot per ORDER: the money that order earned you, and where it is in its journey. This is the level at which the wallet actually works — a balance is just lots added up.
data[].idintegerThe lot id.
data[].order_idintegerWhich order earned it.
data[].amountintegerMinor units. What the order earned you after our fees, not what the buyer paid.
data[].currencystringIts currency.
data[].statusstringWhere this money is. It runs forwards through acceptance, shipping, the return window, then transfer and payout — and settled_to_fees or refunded are terminal.

Accepts pending_acceptance · in_shipping · return_window · confirmed · blocked_kyc · ready_to_transfer · transfer_pending · transferred_to_connected_account · payout_pending · paid_out · settled_to_fees · refunded

data[].balance_bucketstringWhich figure on GET /v1/wallet/balance this lot is counted in. The mapping from status to bucket lives with us, so read this rather than deriving it.
data[].is_withdrawablebooleanWhether this lot can be paid out now. The honest per-order answer behind available — false while held_for_return.
data[].held_for_returnbooleanA buyer is returning (part of) this order: the money does not move until the return is decided (GET /v1/returns), whatever status says.
data[].net_transferred_amountinteger|nullWhat actually MOVED, once it did — which can be less than amount after a partial refund or a fee settlement. null before any transfer.
data[].return_window_expires_atstring|nullISO-8601 UTC. When the buyer can no longer return, and the money starts moving towards you.
data[].withdrawal_idstring|nullWhich payout carried it, once one did.

Example

{
    "count": 1,
    "next_cursor": null,
    "data": [
        {
            "id": 1091,
            "order_id": 716,
            "amount": 123400,
            "currency": "RON",
            "status": "return_window",
            "balance_bucket": "pending",
            "is_withdrawable": false,
            "held_for_return": false,
            "net_transferred_amount": null,
            "return_window_expires_at": "2026-09-24T07:01:08Z",
            "withdrawal_id": null
        }
    ]
}

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/wallet/lots?limit=50" \
  -H "Authorization: Bearer bk_test_YOUR_KEY"
<?php

$ch = curl_init('https://sandbox-api.biklo.com/v1/wallet/lots?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/wallet/lots?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/wallet/lots?limit=50",
    headers={"Authorization": "Bearer bk_test_YOUR_KEY"},
)

data = response.json()
const response = await fetch("https://sandbox-api.biklo.com/v1/wallet/lots?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/wallet/lots?limit=50"))
    .header("Authorization", "Bearer bk_test_YOUR_KEY")
    .method("GET", HttpRequest.BodyPublishers.noBody())
    .build();

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