Créditos Y Saldo

Consulta de saldo y créditos
Consultar Créditos
POST /credits/consult

Consultar Créditos

POST https://api.smsmasivos.com.mx/credits/consult

Consulta el saldo de créditos disponible en la cuenta.

Si la cuenta es administradora (incluidas las de marca blanca), la respuesta incluye además master_credit: los créditos disponibles para asignar a subcuentas, distintos del saldo propio de envío (credit). En cuentas normales y en subcuentas esa propiedad no aparece, así que verifica su presencia antes de leerla.

El campo credit de la respuesta es el saldo disponible de la cuenta, no los créditos consumidos.

Antes de un envío grande, consulta el saldo para no fallar a mitad de la campaña con sms_07 (créditos insuficientes).

curl -X POST https://api.smsmasivos.com.mx/credits/consult \
  -H "apikey: TU_API_KEY"
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.smsmasivos.com.mx/credits/consult');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'apikey: ' . getenv('API_KEY')
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
import requests

response = requests.post(
    'https://api.smsmasivos.com.mx/credits/consult',
    headers={'apikey': 'TU_API_KEY'}
)
print(response.json())
const response = await fetch('https://api.smsmasivos.com.mx/credits/consult', {
  method: 'POST',
  headers: { 'apikey': process.env.API_KEY }
});
const data = await response.json();
console.log(data);
const axios = require('axios');

const { data } = await axios.post(
  'https://api.smsmasivos.com.mx/credits/consult',
  null,
  { headers: { 'apikey': process.env.API_KEY } }
);
console.log(data);
require 'net/http'
require 'json'

uri = URI('https://api.smsmasivos.com.mx/credits/consult')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Post.new(uri.path, {
  'apikey' => ENV['API_KEY']
})

response = http.request(request)
puts JSON.parse(response.body)
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("apikey", "TU_API_KEY");

var response = await client.PostAsync(
    "https://api.smsmasivos.com.mx/credits/consult", null
);
var result = await response.Content.ReadFromJsonAsync<JsonElement>();
Console.WriteLine(result);
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
    .url("https://api.smsmasivos.com.mx/credits/consult")
    .post(RequestBody.create(new byte[0]))
    .addHeader("apikey", "TU_API_KEY")
    .build();

Response response = client.newCall(request).execute();
System.out.println(response.body().string());
Response
{
  "success": true,
  "message": "available_credits",
  "status": 200,
  "code": "credit_01",
  "credit": "1500.50",
  "master_credit": "4038000.00"
}
{
  "success": false,
  "message": "Parámetros inválidos.",
  "status": 200,
  "code": "<string>"
}
{
  "success": false,
  "message": "API Key inválida o no existe.",
  "status": 401,
  "code": "auth_05"
}
{
  "success": false,
  "message": "La dirección IP no está autorizada para acceder.",
  "status": 403,
  "code": "auth_04"
}
{
  "success": false,
  "message": "Demasiadas solicitudes. Límite: 100 mensajes/segundo (producción) o 100 envíos de prueba/día (sandbox).",
  "status": 429,
  "code": "rate_01"
}
{
  "success": false,
  "message": "Error interno del servidor. Contacta a soporte con el request_id.",
  "status": 200,
  "code": "server_01",
  "request_id": "550e8400-e29b-41d4-a716-446655440000"
}

Objeto de respuesta

Estructura de la respuesta que devuelven estos endpoints.

Atributos
successboolean
messagestring
Mensaje de estado
statusinteger
codestring
Código de respuesta
creditstring
Créditos disponibles. Viaja como cadena decimal (columna numeric(10,2)), no como número JSON: conviértela antes de operar con ella.
master_creditstring | null
Créditos disponibles para asignar a subcuentas, distintos del saldo propio de envío (credit). Presente únicamente en cuentas administradoras (incluidas las de marca blanca). En cuentas normales y en subcuentas la propiedad no aparece en la respuesta: verifica su presencia antes de leerla, no asumas que llega en 0. Puede venir en null en el caso límite de una cuenta administradora cuya bolsa nunca fue inicializada.
Objeto de respuesta
{
  "success": true,
  "message": "available_credits",
  "status": 200,
  "code": "credit_01",
  "credit": "1500.50",
  "master_credit": "4038000.00"
}