Erros e limites

O que cada código significa e quantos pedidos podes fazer.

Os erros têm sempre o mesmo formato. Programa contra o code, nunca contra a message: o texto pode mudar, o código não.

json
{
  "error": {
    "code": "device_not_found",
    "message": "Device dev_oppo_cph2577 not found.",
    "requestId": "req_01H8X2K9"
  }
}

Estados HTTP

EstadoSignificadoO que fazer
200aceitenada
400o pedido está mal formadocorrigir o corpo; repetir não ajuda
401chave inválida ou revogadacriar uma chave nova
402sem mensagens no planoesperar pela renovação ou mudar de plano
404o dispositivo não existeconfirmar o deviceId em /devices
429demasiados pedidosabrandar; o limite renova a cada minuto
5xxfalha do nosso ladorepetir com a mesma Idempotency-Key

Códigos de erro

CódigoQuando acontece
validation_errorfalta um campo ou está mal formado
invalid_numbero número não está em E.164 ou não existe
message_too_longacima de 10 segmentos (1530 caracteres GSM-7, 670 Unicode)
device_not_foundo deviceId não pertence à conta
quota_exceededas mensagens deste ciclo acabaram
rate_limitedacima do limite de pedidos desta conta
invalid_keya chave foi revogada ou nunca existiu

Limites

LimiteValor
Pedidos à API60 por minuto e por chave, multiplicado pelos telemóveis ligados à conta (até 3000)
Envio por telemóvelcerca de 30 mensagens por minuto, ditado pelo telemóvel e pela operadora
Mensagens por cicloa quota do teu plano; cada resposta diz quanto falta
Comprimento da mensagem10 segmentos
Campo reference200 caracteres

Um telemóvel offline não recusa a mensagem

Entra na fila e sai quando o telemóvel voltar. A resposta traz `deviceOnline: false`, para distinguires "sai num segundo" de "está à espera de um telemóvel". Sem deviceId, é usado o telemóvel com a fila mais curta.

O limite real é o do telemóvel, não o da API

Um telemóvel envia cerca de 30 mensagens por minuto. O que for aceite acima disso fica na fila.