Skip to content

Test mode ​

A key created with the Test mode (ak_test_…) sends through the ACE SEND sandbox. It works like live sending — same endpoints, same checks, same webhooks — but nothing reaches a phone and nothing is charged.

What is the same ​

  • The request is checked like a live one: the number, the template and its language, the variables, the SMS segments and the stop lists. A request that would be refused live is refused in test.
  • The message gets an id, goes through its statuses and sends webhooks to your address.
  • GET /v1/messages and GET /v1/messages/{id} work as usual.

What is different ​

Test keyLive key
Deliverythe sandbox plays the statuses; nothing is sentthe provider sends the message
Pricefree: price is nullfixed at acceptance and charged
Balance and its reservenot touchedreserved at acceptance
Daily limit1000 messages a day per accountthe daily limit of the account
test in the message and its webhookstruefalse
SMS fromnullthe sender name
Reports of the consolenot countedcounted

A test key sees only test messages and a live key only live ones: GET /v1/messages/{id} of a message of the other mode answers 404. The console shows both in the message log, with a filter for test messages.

Sandbox numbers ​

The sandbox decides what happens by the last four digits of the number. The number must still be a valid number of its country (for example +5521998120000), or the request is refused with invalid_number before the sandbox.

ChannelNumber ends withWhat happens
WhatsAppanything elsesent after 1 s, delivered after 3 s, read after 10 s
WhatsApp0000sent after 1 s, then failed with no_whatsapp after 3 s
WhatsApp0001rejected with invalid_number at once
WhatsApp0002sent after 1 s, delivered after 3 s, never read
SMSanything elsesent after 1 s, delivered after 3 s
SMS0000sent after 1 s, then expired with expired after 3 s
SMS0001rejected with invalid_number at once
SMS0003rejected with sender_rejected at once
SMS0004sent after 1 s, then failed with blocked after 3 s

Times are counted from the moment of acceptance; under load the statuses may come a little later.

Moving to live ​

Swap the key. Requests stay the same. Keep in mind:

  • live messages are paid: keep the balance topped up and handle insufficient_funds;
  • the daily limit of the account applies (daily_limit_reached);
  • an Idempotency-Key used by a test key cannot be reused by a live key (409 idempotency_conflict) — the keys of both modes share one set of idempotency keys.

ACE SEND API v1