List carrier pickup points (Storefront)
Partner shops and lockers near the checkout shipping address, nearest first. Only for a checkout whose selected rate has requiresPickupPoint: true.
For /api/vc/{connectionId}/* routes the connectionId (vc_*) is in the URL path — not a header. Live-mode requests must also send a matching Origin header.
In: header
Path Parameters
Sales channel ID (vc_*), the canonical salesChannelId. connectionId is the deprecated name of the same value and is still the literal path segment.
Checkout id, returned by checkout (create checkout).
Query Parameters
Longitude, -180 to 180. Used only together with latitude.
Latitude, -90 to 90. Used only together with longitude.
Postal code to search around, up to 20 characters. Default: the checkout shipping address.
City to search in, up to 120 characters. Default: the checkout shipping address.
Maximum points returned, 1 to 50. An out-of-range value is ignored.
value <= 50Header Parameters
Origin of the storefront page making the call, for example https://shop.example.com. Required: a request with no Origin header is refused with 403. On a LIVE channel its host must equal the channel's registered domain (or one of its subdomains) or match an allowed origin. A TEST channel with no domain accepts any origin; once a domain is set it is matched as on LIVE.
Version of the calling SDK (the Brainerce SDK sends it automatically). Informational: it is recorded on the channel and never changes the response.
curl -X GET "https://api.brainerce.com/api/vc/string/checkout/string/pickup-points?longitude=0&latitude=0&postalCode=string&city=string&limit=50" \ -H "origin: string" \ -H "X-SDK-Version: string"{
"points": [
{
"id": "pp_48213",
"name": "Kiosk Herzl",
"kind": "store",
"address": {
"street1": "Herzl 12",
"city": "Tel Aviv",
"zip": "6578301",
"country": "IL"
},
"latitude": 32.0668,
"longitude": 34.7647,
"hours": "Sun-Thu 08:00-20:00",
"note": "Next to the pharmacy",
"distanceKm": 0.8
}
]
}{
"statusCode": 400,
"code": "VALIDATION_FAILED",
"message": "name should not be empty, price must be a positive number",
"timestamp": "2026-08-23T10:15:00.000Z",
"path": "/api/vc/{connectionId}/checkout/{checkoutId}/pickup-points"
}{
"statusCode": 403,
"code": "INSUFFICIENT_SCOPE",
"message": "API key does not have the required scope: products:write",
"timestamp": "2026-08-23T10:15:00.000Z",
"path": "/api/vc/{connectionId}/checkout/{checkoutId}/pickup-points"
}{
"statusCode": 404,
"code": "RESOURCE_NOT_FOUND",
"message": "Resource not found",
"timestamp": "2026-08-23T10:15:00.000Z",
"path": "/api/vc/{connectionId}/checkout/{checkoutId}/pickup-points"
}{
"statusCode": 429,
"code": "RATE_LIMITED",
"message": "Too many requests",
"details": {
"retryAfterSeconds": 12
},
"timestamp": "2026-08-23T10:15:00.000Z",
"path": "/api/vc/{connectionId}/checkout/{checkoutId}/pickup-points"
}{
"statusCode": 502,
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"timestamp": "2026-08-23T10:15:00.000Z",
"path": "/api/vc/{connectionId}/checkout/{checkoutId}/pickup-points"
}