Text CALL to 88440
info@voodooSMS.com

+44 (0)1484 599 311

Login Free Account

Developer Tools

Free Account
Our new API is live!

Our new API is now available to use. We have improved the methods that you are familiar with, offering you a clearer understanding of what each property can do and a more detailed response from each call.

The old API is still fully functioning and support for this will not end.

We are also introducing API Keys which are used to access the API methods and improve the security around using the API.

Click here to see the new Developer page.

Click here to read our new Developer Documentation.

transferCredit

This call can be used by reseller accounts only to move credits between accounts via API.

Definition

http:// or https:// www.voodooSMS.com/vapi/server/transferCredit

METHODS

GET

POST

Parameters

Required Fields

uid:

System allocated username for API user configured within the VoodooSMS.com Portal in 'Send SMS>API Management'

pass:

System password for API user configured within the VoodooSMS.com Portal in 'Send SMS>API Management'

from_account:

account ID to take the credits from

to_account:

account ID to add the credits to

amount:

the credits to transfer e.g. 100

format:

Return format requested: XML, JSON or PHP data.

Credit Transfer without any query parameter

Request


<?php
switch($_SERVER["REQUEST_METHOD"]) {
     case "GET":
          $uid = htmlspecialchars($_GET["uid"]);
          $pass = htmlspecialchars($_GET["pass"]);
          $from_account = htmlspecialchars($_GET["from_account"]);
          $to_account = htmlspecialchars($_GET["to_account"]);
          $amount = htmlspecialchars($_GET["amount"]);
          $format = htmlspecialchars($_GET["format"]);
     break;
     case "POST":
          $uid = htmlspecialchars($_POST["uid"]);
          $pass = htmlspecialchars($_POST["pass"]);
          $from_account = htmlspecialchars($_POST["from_account"]);
          $to_account = htmlspecialchars($_POST["to_account"]);
          $amount = htmlspecialchars($_POST["amount"]);
          $format = htmlspecialchars($_POST["format"]);
    break;
}

$url = 'https://www.voodoosms.com/vapi/server/transferCredit?uid='.$uid.'&pass='.$pass'&from_account='
    .$from_account'&to_account='.$to_account."&amount=".$amount."&format=".format;

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
// Download the given URL, and return output
$output = curl_exec($ch);
echo $output."   ".curl_error($ch);
 // Close the cURL resource, and free system resources
curl_close($ch);
?>

import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class Servlet extends HttpServlet {
     public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

          if (request.getAttribute("uid") != null && request.getAttribute("pass") != null
            && request.getAttribute("from_account") != null
            && request.getAttribute("to_account") != null
            && request.getAttribute("amount") != null
            && request.getAttribute("format") != null) {
               String charset = "UTF-8";
               String query = String.format("uid=%s&pass=%s&from_account=%s&to_account=%s&amount=%s
                &format=%s",
                URLEncoder.encode(request.getAttribute("uid").toString(), charset),
                URLEncoder.encode(request.getAttribute("pass").toString(), charset));
                URLEncoder.encode(request.getAttribute("from_account").toString(), charset),
                URLEncoder.encode(request.getAttribute("to_account").toString(), charset));
                URLEncoder.encode(request.getAttribute("amount").toString(), charset));
                URLEncoder.encode(request.getAttribute("format").toString(), charset));
               String url = "www.voodoosms.com/vapi/server/transferCredit?" + query;
               // reqres contains the request output
          }
          else {
             // Wrong parameters
          }
     }
     public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          // Same as GET
     }
}

var http = require('http');
var https = require('https');
var querystring = require('querystring');
var url = require('url');

var server = http.createServer(function(req, res) {

    var url_parts = url.parse(req.url, true);
    var query = url_parts.query;
    var uid = query.uid;
    var pass = query.pass;
    var from_account = query.from_account;
    var to_account = query.to_account;
    var amount = query.amount;
    var format = query.format;

    if (uid && pass && from_account && to_account && amount && format) {
        var get_data = querystring.stringify({
            "uid": uid,
            "pass": pass,
            "from_account": from_account,
            "to_account": to_account,
            "amount": amount,
            "format": format
        });

        var options = {
            host: 'www.voodoosms.com',
            path: '/vapi/server/transferCredit' + get_data
        }

        https.get(options, function(reqres) {
            reqres.on('data', function(chunk) {
                res.end(chunk);
            })
        });

    } else
        res.end("Wrong parameters");
});

server.listen(8080);

require 'net/http'
require 'json'

class Controller < ApplicationController
     def index
     uid = params[: uid]
     pass = params[: pass]
     from_account = params[: from_account]
     to_account = params[: to_account]
     amount = params[: amount]
     format = params[: format]

     if uid and pass and from_account and to_account and amount and format
          uri = "uid=" + uid + "&pass=" + pass + "&from_account=" + from_account +
                "&to_account=" + to_account + "&amount=" + amount + "&format=" + format
     else
          uri = 0
     end

     if uri != 0
           url = URI.parse('http://www.voodoosms.com/vapi/server/transferCredit' + uri)
           uri = URI(url)
           response = Net::HTTP.get(uri)
           @res = response
     else
           @res = "Wrong parameters"
     end
   end
end

from django.http
import HttpResponse, HttpRequest
import urllib2

def index(request):

    if request.method == 'GET':
         uid = request.GET.get('uid', '')
         pass = request.GET.get('pass', '')
         from_account = request.GET.get('from_account', '')
         to_account = request.GET.get('to_account', '')
         amount = request.GET.get('amount', '')
         format = request.GET.get('format', '')
    elif request.method == 'POST':
          uid = request.POST.get('uid', '')
          pass = request.POST.get('pass', '')
          from_account = request.POST.get('from_account', '')
          to_account = request.POST.get('to_account', '')
          amount = request.POST.get('amount', '')
          format = request.POST.get('format', '')

    if uid and pass and from_account and to_account and amount and format:
         u = "uid=%s&pass=%s&from_account=%s&to_account=%s&amount=%s&format=%s" % (uid, pass, from_account,
    to_account, amount, format)
    else :
         u = 0

    if u :
         res = urllib2.urlopen("https://voodoosms.com/vapi/server/transferCredit" + u).read()
         return HttpResponse(res)
    else :
         return HttpResponse("Wrong parameters")

using System;
using System.Net.Http;
using System.Web;

var client = new HttpClient();

/*Get the parameters, either GET or POST request*/
    string uid = HttpContext.Current.Server.HtmlEncode(Request["uid"]);
    string pass = HttpContext.Current.Server.HtmlEncode(Request["pass"]);
    string from_account = HttpContext.Current.Server.HtmlEncode(Request["from_account"]);
    string to_account = HttpContext.Current.Server.HtmlEncode(Request["to_account"]);
    string amount = HttpContext.Current.Server.HtmlEncode(Request["amount"]);
    string format = HttpContext.Current.Server.HtmlEncode(Request["format"]);

/*Exit if one or more parameters is missing*/
    if(String.IsNullOrEmpty(uid) || String.IsNullOrEmpty(pass) || String.IsNullOrEmpty(from_account)
    || String.IsNullOrEmpty(to_account)  || String.IsNullOrEmpty(amount) || String.IsNullOrEmpty(format))
    System.Environment.Exit(1)

/* Send the async request*/
    HttpResponseMessage response = await client.GetAsync(
    "https://www.voodoosms.com/vapi/server/transferCredit?uid=" + uid + "&pass="
    + pass + "&from_account=" + from_account + "to_account=" + to_account +
    "&amount=" + amount + "&format=" + format);

/* Get the response content */
HttpContent responseContent = response.Content;

/* Get the stream of the content and write the output*/
using (var reader = new StreamReader(await responseContent.ReadAsStreamAsync()))
{
Console.WriteLine(await reader.ReadToEndAsync());
}

Response


<xml>
   <result>200 OK</result>
   <resultText>Credits Successfully Transfered</resultText>
</xml>
...
...
{
    "requestError": {
        "serviceException": {
            "messageId": "UNAUTHORIZED",
            "text": "Invalid login details"
        }
    }
}
METHOD POST
Request Headers
Accept: */*
Referer: http:// or https:// www.voodoosms.com/vapi/server
authorization: Basic ZGZkZjpzZGZkZg==
accept-encoding: gzip, deflate
content-type: application/json
content-length: 64
URL http:// or https:// www.voodoosms.com/vapi/server/sendSMS
Request Data
{
    "from": "447711112244",
    "to": [
        "447788112233"
    ],
    "text": "tsdsdsd"
}
Status
Response Headers
access-control-allow-origin: *
access-control-allow-methods: GET, POST, PUT, PATCH, DELETE, COPY, HEAD, OPTIONS, LINK, UNLINK,
PURGE access-control-allow-headers: Authorization, Content-Type, X-Enrollment-Token
content-type: application/json;charset=UTF-8
content-length: 97
date: Tue, 27 Dec 2016 08:17:07 GMT
connection: close
server: SMS API
strict-transport-security: max-age=16000000; includeSubDomains; preload;