API de SMS (device-based): POST /sms/{action}.
Exige Authorization: Bearer + header DeviceToken.
Campos aceitos por send/3 e send_with_credits/3: number, message,
operator (padrão do gateway: claro), user_reply e webhook_url.
# pelo device
{:ok, _envelope} =
ApiBrasil.Messaging.SMS.send(client, %{
"number" => "5511999999999",
"message" => "Seu código é 1234"
})
# debitando créditos da conta, sem DeviceToken
{:ok, _envelope} =
ApiBrasil.Messaging.SMS.send_with_credits(client, %{
"number" => "5511999999999",
"message" => "Seu código é 1234"
})
Summary
Functions
Executa a action de forma assíncrona, por fila: POST /sms/{action}/queue.
Como queue/4, mas levanta ApiBrasil.Core.Error em caso de falha.
Executa qualquer action do serviço: POST /sms/{action}.
Como request/4, mas levanta ApiBrasil.Core.Error em caso de falha.
Envia um SMS pelo device: POST /sms/send.
Como send/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
Envia um SMS debitando créditos da conta, sem DeviceToken:
POST /sms/send/credits.
Como send_with_credits/3, mas levanta ApiBrasil.Core.Error em caso de falha.
Serviço do gateway coberto por este módulo: sms.
Types
@type result() :: {:ok, map()} | {:error, ApiBrasil.Core.Error.t()}
Functions
@spec queue(ApiBrasil.Client.t(), String.t(), term(), keyword()) :: {:ok, ApiBrasil.Core.DeviceResponse.t()} | {:error, ApiBrasil.Core.Error.t()}
Executa a action de forma assíncrona, por fila: POST /sms/{action}/queue.
@spec queue!(ApiBrasil.Client.t(), String.t(), term(), keyword()) :: ApiBrasil.Core.DeviceResponse.t()
Como queue/4, mas levanta ApiBrasil.Core.Error em caso de falha.
@spec request(ApiBrasil.Client.t(), String.t(), term(), keyword()) :: {:ok, ApiBrasil.Core.DeviceResponse.t()} | {:error, ApiBrasil.Core.Error.t()}
Executa qualquer action do serviço: POST /sms/{action}.
As actions conhecidas estão em
ApiBrasil.Generated.Catalog.service_actions("sms"); a
documentação completa fica em https://doc.apibrasil.io.
@spec request!(ApiBrasil.Client.t(), String.t(), term(), keyword()) :: ApiBrasil.Core.DeviceResponse.t()
Como request/4, mas levanta ApiBrasil.Core.Error em caso de falha.
@spec send(ApiBrasil.Client.t(), term(), keyword()) :: {:ok, ApiBrasil.Core.DeviceResponse.t()} | {:error, ApiBrasil.Core.Error.t()}
Envia um SMS pelo device: POST /sms/send.
@spec send!(ApiBrasil.Client.t(), term(), keyword()) :: ApiBrasil.Core.DeviceResponse.t()
Como send/3, mas devolve o resultado direto e levanta ApiBrasil.Core.Error em caso de falha.
@spec send_with_credits(ApiBrasil.Client.t(), term(), keyword()) :: {:ok, ApiBrasil.Core.CreditResponse.t()} | {:error, ApiBrasil.Core.Error.t()}
Envia um SMS debitando créditos da conta, sem DeviceToken:
POST /sms/send/credits.
@spec send_with_credits!(ApiBrasil.Client.t(), term(), keyword()) :: ApiBrasil.Core.CreditResponse.t()
Como send_with_credits/3, mas levanta ApiBrasil.Core.Error em caso de falha.
@spec service() :: String.t()
Serviço do gateway coberto por este módulo: sms.