Skip to content
BoolCrafts · service connections

A single connection.
A clear API contract.

Phone SMS, mail and Facebook stock use a private server connection. The public catalog is available now; ordering and external customer API keys remain closed while supplier setup is completed.

01 · Public read-only endpoint

Load the current catalog.

Choose phone, mail or fb. An empty catalog means supplier inventory is not ready. A missing price or stock value must never be interpreted as free or unlimited.

GET/api/services/catalog?kind=phone
Browser JavaScript · same origin
const response = await fetch('/api/services/catalog?kind=phone', {
  credentials: 'same-origin',
  cache: 'no-store'
});
const catalog = await response.json();
if (!response.ok) throw new Error(catalog.error || 'Catalog unavailable');
// Render catalog.items. Require purchase_ready before checkout.
kind
phone, mail or fb
items
Current catalog rows. Can be an empty array.
purchase_ready
False while ordering is closed. The server enforces this.
price / stock
Supplier-confirmed values, or null when unavailable.
message
Current setup or availability explanation.
02 · Website account

Keep account access private.

The website uses its existing signed-in customer session. Authentication happens through the account page with Google or email. Provider API keys stay on the server. These session endpoints are for the BoolCrafts website; they are not an external reseller API.

GET/api/reelvault/session
GET/api/reelvault/wallet?expected_account_id=ACCOUNT_ID

Current wallet scope

Existing ReelVault credit is shown for account information. SMS, mail and Facebook stock checkout is not activated, and cannot debit that balance.

03 · Ordering contract · not activated

Accept orders only when ready.

This route is prepared for the service checkout. Ordering currently returns a setup-unavailable response. It does not reserve stock, charge your wallet or create a supplier order.

POST/api/services/orders
Request contract · no live purchase
{
  "kind": "phone",
  "product_id": "ID_FROM_CURRENT_CATALOG",
  "quantity": 1,
  "client_id": "UNIQUE_REQUEST_ID",
  "expected_account_id": "SIGNED_IN_ACCOUNT_ID"
}

Website requests include Content-Type: application/json and X-Requested-With: BoolCraftsServices. Do not call this route to buy until the server marks the product and catalog as purchase-ready.

04 · Predictable responses

Show the actual result.

StatusWebsite handling
200Read the catalog. An empty list is a valid setup state.
400Correct invalid input before retrying.
401Sign in again before viewing private data.
409Refresh the session if the signed-in account changed.
503Ordering or supplier setup is unavailable. Keep checkout closed.

Never show a payment or delivery success based on a button click alone. Use the confirmed server order status, and do not retry a potentially accepted order with a new request ID.