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.
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.
/api/services/catalog?kind=phoneconst 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.
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.
/api/reelvault/session/api/reelvault/wallet?expected_account_id=ACCOUNT_IDCurrent wallet scope
Existing ReelVault credit is shown for account information. SMS, mail and Facebook stock checkout is not activated, and cannot debit that balance.
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.
/api/services/orders{
"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.
Show the actual result.
| Status | Website handling |
|---|---|
| 200 | Read the catalog. An empty list is a valid setup state. |
| 400 | Correct invalid input before retrying. |
| 401 | Sign in again before viewing private data. |
| 409 | Refresh the session if the signed-in account changed. |
| 503 | Ordering 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.