a a

Transaction API Call

HEADERS
    Content-Type : application/json
    X-Requested-With : xhr
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1NDA5MjcyNzgsImNsaWVudElkIjoiQ1JXIiwiaWQiOiJhMWQxODRiYy1lMzk5LTRiOTItYjFjNy0zY2RkMzM4YzIxMzEifQ.viBGNeKOG57nbZg1rCJbXf3H6QfM3TsEjx7QMkA3R90
REQUEST BODY
For subsequent calls : Either mTxId/sTxId is mandatory.
{
    "country": "840",
    "region": "90210",
    "processor": "SurchX",
    "nicn": "414709",
    "amount": 49.95
}

curl    --location --request POST "https://api-demo.surchx.com/v1/ch" \
        --header "Content-Type: application/json" \
        --header "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1NTQ0MjE0ODMsIm5hbWUiOiJTdXJjaFhfRGVtbyIsImlkIjoiYzIxNDExNDItY2NiZC00MWQ5LTk0ZWMtMzYzZTYzOWJmZmNmIn0.f6TQbD2J_xVmflQaLPhOrQPgr4yllXSpKl1VJMLveec" \

        --data "{
            "campaign": "demo",
            "country": "840",
            "region": "90210",
            "processor": "SurchX",
            "nicn": "414709",
            "amount": 100
        }"

var https = require('https');

var options = {
    'method': 'POST',
    'hostname': 'api-demo.surchx.com',
    'path': '/v1/ch',
    'headers': {
        'Content-Type': 'application/json',
        'X-Requested-With': 'xhr'
    }
};

var req = https.request(options, function (res) {
    var chunks = [];

    res.on("data", function (chunk) {
        chunks.push(chunk);
    });

    res.on("end", function (chunk) {
        var body = Buffer.concat(chunks);
        console.log(body.toString());
    });

    res.on("error", function (error) {
        console.error(error);
    });
});

var postData =  "{
                    "campaign": "demo",
                    "country": "840",
                    "region": "90210',
                    "processor": "SurchX",
                    "nicn": "414709",
                    "amount": 100,
                }";

req.write(postData);

req.end();

var settings = {
    "url": "https://api-demo.surchx.com/v1/ch",
    "method": "POST",
    "timeout": 0,
    "headers": {
        "Content-Type": "application/json",
        "Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1NTQ0MjE0ODMsIm5hbWUiOiJTdXJjaFhfRGVtbyIsImlkIjoiYzIxNDExNDItY2NiZC00MWQ5LTk0ZWMtMzYzZTYzOWJmZmNmIn0.f6TQbD2J_xVmflQaLPhOrQPgr4yllXSpKl1VJMLveec"
    },
    "data": "{
                "campaign": "demo",
                "country": "840",
                "region": "90210",
                "processor": "SurchX",
                "nicn": "414709",
                "amount": 100}",
            }";

$.ajax(settings).done(function (response) {
    console.log(response);
});

require "uri"
require "net/http"

url = URI("https://api-demo.surchx.com/v1/ch")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1NTQ0MjE0ODMsIm5hbWUiOiJTdXJjaFhfRGVtbyIsImlkIjoiYzIxNDExNDItY2NiZC00MWQ5LTk0ZWMtMzYzZTYzOWJmZmNmIn0.f6TQbD2J_xVmflQaLPhOrQPgr4yllXSpKl1VJMLveec"

request.body =  "{
                    "campaign": "demo",
                    "country": "840",
                    "region": "90210",
                    "processor": "SurchX",
                    "nicn": "414709",
                    "amount": 100
                }"

response = https.request(request)
puts response.read_body

import requests
url = 'https://api-demo.surchx.com/v1/ch'
payload =   "{
                "campaign": "demo",
                "country": "840",
                "region": "90210",
                "processor": "SurchX",
                "nicn": "414709",
                "amount": 100
            }"
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1NTQ0MjE0ODMsIm5hbWUiOiJTdXJjaFhfRGVtbyIsImlkIjoiYzIxNDExNDItY2NiZC00MWQ5LTk0ZWMtMzYzZTYzOWJmZmNmIn0.f6TQbD2J_xVmflQaLPhOrQPgr4yllXSpKl1VJMLveec'
}
response =  requests.request('POST', url, headers = headers, data = payload, allow_redirects=False,
                timeout=undefined, allow_redirects=false)
print(response.text)

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api-demo.surchx.com/v1/ch",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => false,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS =>   "{
                                "campaign": "demo",
                                "country": "840",
                                "region": "90210",
                                "processor": "SurchX",
                                "nicn": "414709",
                                "amount": 100
                            }",
    CURLOPT_HTTPHEADER => array(
        "Content-Type: application/json",
        "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1NTQ0MjE0ODMsIm5hbWUiOiJTdXJjaFhfRGVtbyIsImlkIjoiYzIxNDExNDItY2NiZC00MWQ5LTk0ZWMtMzYzZTYzOWJmZmNmIn0.f6TQbD2J_xVmflQaLPhOrQPgr4yllXSpKl1VJMLveec"
    ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
    echo "cURL Error #:" . $err;
} else {
    echo $response;
}
?>

package main

import (
    "fmt"
    "strings"
    "os"
    "path/filepath"
    "net/http"
    "io/ioutil"
)

func main() {

url := "https://api-demo.surchx.com/v1/ch"
method := "POST"

payload := strings.NewReader("{
    "campaign": "demo",
    "country": "840",
    "region": "90210",
    "processor": "SurchX",
    "nicn": "414709",
    "amount": 100
}")

client := &http.Client {
    CheckRedirect: func(req *http.Request, via []*http.Request) error {
        return http.ErrUseLastResponse
    },
}
req, err := http.NewRequest(method, url, payload)

if err != nil {
    fmt.Println(err)
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("X-Requested-With", "xhr")

res, err := client.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)

fmt.Println(string(body))
}

RESPONSE
{   "message": "ok",
    "sTxId": "SurchX_demo_transaction_ID",
    "transactionFee": 2.5
}

Nomenclature
NameInformationMandatory
AmountTransaction amount in US dollars.Yes
CampaignThis is opaque data that is available for further data analytics and is also used during A/B Test-Implementation phases.
CountryThis is an optional field and will default to 840/US. The ISO Numerical Country Code. See for Reference .
NICN (Non-Identifiable Card Number)The first 6-8 digits of credit card number. SurchX never handles more than 12 digits and therefore is not in conflict with PCI requirements or guidelines.Yes
ProcessorThe MID or Name value of the processor to use for calculating Transaction Fees. This field is optional when the Merchant has only one configured processor. In that case the single, configured processor is used.Yes
Transaction FeeSurchX generated fee for making a credit card transaction (sent in response from API).
mTxIdA Merchant orderId or unique identifier in the Merchant e-commerce scope referencing the Order or Shopping Cart. This field is optional. If the mTxId is not known until the "capture" sequence, it may be passed at that time..
sTxIdIt is a unique identifier in the SurchX system which refers to the persistence state of the Transaction Fee calculation.
RegionRegion is optional.Zip code or the ISO State Code. See for Reference.Yes