Real-Time


Obtener Saldo

Se obtiene la información de cuanto saldo esta disponible en una cuenta, es la unica operación relacionada con la cuenta actualmente disponible en la API. Mientras tu access_token sea valido, puedes efectuar la siguiente petición:

Petición HTTP GET

GET https://www.rti-sms.com/api/balance


Cabecera obligatoria en petición HTTP GET

                            
    Content-Type: application/json
    Authorization: Bearer YOUR_ACCESS_TOKEN_HERE
                            
                        
                                
    ## Get Balance Operation
    curl "https://www.rti-sms.com/api/balance" \
        -H 'Content-Type: application/json' \
        -H 'Authorization: Bearer ***** Hidden Credentials *****'
                                
                            
                                
    // get cURL resource
    $ch = curl_init();

    // set url
    curl_setopt($ch, CURLOPT_URL, 'https://www.rti-sms.com/api/balance');

    // set method
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

    // return the transfer as a string
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    // set headers
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Authorization: Bearer ***** Hidden credentials *****',
    ]);

    // send the request and save response to $response
    $response = curl_exec($ch);

    // stop if fails
    if (!$response) {
        die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
    }

    echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
    echo 'Response Body: ' . $response . PHP_EOL;

    // close curl resource to free up system resources 
    curl_close($ch);
                                
                            
                                
    # Install the Python Requests library:
    # `pip install requests`

    import requests

    def send_request():
        # Get Balance Operation
        # GET https://www.rti-sms.com/api/balance

        try:
            response = requests.get(
                url="https://www.rti-sms.com/api/balance",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer ***** Hidden credentials *****",
                },
            )
            print('Response HTTP Status Code: {status_code}'.format(
                status_code=response.status_code))
            print('Response HTTP Response Body: {content}'.format(
                content=response.content))
        except requests.exceptions.RequestException:
            print('HTTP Request failed')

                                
                            
                                
    // request Get Balance Operation 
    (function(callback) {
        'use strict';

        const httpTransport = require('https');
        const responseEncoding = 'utf8';
        const httpOptions = {
            hostname: 'www.rti-sms.com',
            port: '443',
            path: '/api/balance',
            method: 'GET',
            headers: {"Content-Type":"application/json","Authorization":"Bearer ***** Hidden credentials *****"}
        };
        httpOptions.headers['User-Agent'] = 'node ' + process.version;

        // Paw Store Cookies option is not supported

        const request = httpTransport.request(httpOptions, (res) => {
            let responseBufs = [];
            let responseStr = '';

            res.on('data', (chunk) => {
                if (Buffer.isBuffer(chunk)) {
                    responseBufs.push(chunk);
                }
                else {
                    responseStr = responseStr + chunk;            
                }
            }).on('end', () => {
                responseStr = responseBufs.length > 0 ? 
                    Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;

                callback(null, res.statusCode, res.headers, responseStr);
            });

        })
        .setTimeout(0)
        .on('error', (error) => {
            callback(error);
        });
        request.write("")
        request.end();


    })((error, statusCode, headers, body) => {
        console.log('ERROR:', error); 
        console.log('STATUS:', statusCode);
        console.log('HEADERS:', JSON.stringify(headers));
        console.log('BODY:', body);
    });
                                
                            
                                
    import java.io.IOException;
    import org.apache.http.client.fluent.*;

    public class SendRequest
    {
        public static void main(String[] args) {
            sendRequest();
        }

        private static void sendRequest() {

            // Get Balance Operation (GET )

            try {

                // Create request
                Content content = Request.Get("https://www.rti-sms.com/api/balance")

                // Add headers
                .addHeader("Content-Type", "application/json")
                .addHeader("Authorization", "Bearer ***** Hidden credentials *****")

                // Fetch request and return content
                .execute().returnContent();

                // Print content
                System.out.println(content);
            }
            catch (IOException e) { System.out.println(e); }
        }
    }
                                
                            

Si la operación de obtener el saldo es exitosa, la API responderá con HTTP Status: HTTP/1.1 200 OK y el body de la respuesta tendrá el saldo que varía con la cantidad de crédito disponible en la cuenta como cantidad.

Una operación exitosa de obtener el saldo retorna una JSON con la siguiente estructura:

{"balance":"457.00"}

Recuerda, si no envías el access_token con el prefijo de Bearer separados de un espacio como en los ejemplos de arriba, o si haces una llamada a la API con el access_token expirado, la API responderá con un HTTP 401 - Unauthorized y un body vacio! En esos casos y cuando probablemente no uses un Cliente HTTP capaz de usar OAuth2 el cual maneje los procesos de autenticación por ti, deberias usar el proceso de Autenticación Manual de nuevo y usar el nuevo access_token para la llamada siguiente a la API.