API Reference

Documentation

Virtual Terminal

  • Card Numbers Tokenized and Stored for Future Transactions
  • Set Up Recurring Payments
  • Email and SMS Invoicing
  • Cash Discount / Surcharging Features Available
  • Level 2 and Level 3 Payment Options
  • Dynamic Descriptor Improves Transaction Descriptions on Customer Bank Statements
  • Inventory Management
  • E-Commerce Integrations with OpenCart and WooCommerce
  • Easy to Use Mobile App Available on IOS and Android

Objective

A list of API in order to validate, initiate/add/edit/delete subscription and also freeze the subscription duration.
Also Gives a reporting API details to find the transaction details and status of the subscription

Connections

The following are the sandbox credentials, Email: [email protected] for production credentials

  • Protocol: Https
  • Port: 4430
  • Method: POST
  • URL: URL
  • Please email to [email protected] to get the following auth credentials
  • APP_ID
  • AUTH_TOKEN
  • AUTH_KEY

Note: Client has to whitelist their IP address

Validate API

This API is used to find the given Merchant API ID and API Key is valid or not

https://vt-staging.valorpaytech.com:4430/?
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=0200&amount=5.05&food_amount=0&tax=0&city_tax=0&reduced_tax=0&surchargeIndicator=1&custom_fee=3&cvv=999&pan=4111111111111111&expiry_date=1224&subscription_start_date=20221212&s_customerName=zxcvx&b_customerName=zxcvx&epi=2226388434&avs=2&recursivePayment=true&username=Test&s_street_no=zxcvxz&s_street_name=xcvxzcvxcvc&s_unit=zxcvx&s_city=CHESAPEAKE&s_state=VA&s_zip=23323&b_street_no=zxcvxz&b_street_name=xcvxzcvxcvc&b_unit=zxcvx&b_city=CHESAPEAKE&b_state=VA&b_zip=23323&validateCard=1&userid=13241&validat=', [
  'headers' => [
    'accept' => 'application/json',
  ],
]);

echo $response->getBody();
import requests

url = "https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=0200&amount=5.05&food_amount=0&tax=0&city_tax=0&reduced_tax=0&surchargeIndicator=1&custom_fee=3&cvv=999&pan=4111111111111111&expiry_date=1224&subscription_start_date=20221212&s_customerName=zxcvx&b_customerName=zxcvx&epi=2226388434&avs=2&recursivePayment=true&username=Test&s_street_no=zxcvxz&s_street_name=xcvxzcvxcvc&s_unit=zxcvx&s_city=CHESAPEAKE&s_state=VA&s_zip=23323&b_street_no=zxcvxz&b_street_name=xcvxzcvxcvc&b_unit=zxcvx&b_city=CHESAPEAKE&b_state=VA&b_zip=23323&validateCard=1&userid=13241&validat="

headers = {"accept": "application/json"}

response = requests.post(url, headers=headers)

print(response.text)
const sdk = require('api')('@valorapi/v1.0#2rs2dlncr2qhx');

sdk.validateapi({
  app_id: '464DA39FCFB44D54F6C1D22CEF9098E5',
  auth_token: '8E1DDE8DE369812732E88C583B14D0C4',
  auth_key: '15B8BCFDB337428792608354A1444050',
  mtype: '0200',
  amount: '5.05',
  food_amount: '0',
  tax: '0',
  city_tax: '0',
  reduced_tax: '0',
  surchargeIndicator: '1',
  custom_fee: '3',
  cvv: '999',
  pan: '4111111111111111',
  expiry_date: '1224',
  subscription_start_date: '20221212',
  s_customerName: 'zxcvx',
  b_customerName: 'zxcvx',
  epi: '2226388434',
  avs: '2',
  recursivePayment: 'true',
  username: 'Test',
  s_street_no: 'zxcvxz',
  s_street_name: 'xcvxzcvxcvc',
  s_unit: 'zxcvx',
  s_city: 'CHESAPEAKE',
  s_state: 'VA',
  s_zip: '23323',
  b_street_no: 'zxcvxz',
  b_street_name: 'xcvxzcvxcvc',
  b_unit: 'zxcvx',
  b_city: 'CHESAPEAKE',
  b_state: 'VA',
  b_zip: '23323',
  validateCard: '1',
  userid: '13241',
  validat: ''
})
  .then(({ data }) => console.log(data))
  .catch(err => console.error(err));
CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=0200&amount=5.05&food_amount=0&tax=0&city_tax=0&reduced_tax=0&surchargeIndicator=1&custom_fee=3&cvv=999&pan=4111111111111111&expiry_date=1224&subscription_start_date=20221212&s_customerName=zxcvx&b_customerName=zxcvx&epi=2226388434&avs=2&recursivePayment=true&username=Test&s_street_no=zxcvxz&s_street_name=xcvxzcvxcvc&s_unit=zxcvx&s_city=CHESAPEAKE&s_state=VA&s_zip=23323&b_street_no=zxcvxz&b_street_name=xcvxzcvxcvc&b_unit=zxcvx&b_city=CHESAPEAKE&b_state=VA&b_zip=23323&validateCard=1&userid=13241&validat=");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "accept: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);
using RestSharp;


var options = new RestClientOptions("https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=0200&amount=5.05&food_amount=0&tax=0&city_tax=0&reduced_tax=0&surchargeIndicator=1&custom_fee=3&cvv=999&pan=4111111111111111&expiry_date=1224&subscription_start_date=20221212&s_customerName=zxcvx&b_customerName=zxcvx&epi=2226388434&avs=2&recursivePayment=true&username=Test&s_street_no=zxcvxz&s_street_name=xcvxzcvxcvc&s_unit=zxcvx&s_city=CHESAPEAKE&s_state=VA&s_zip=23323&b_street_no=zxcvxz&b_street_name=xcvxzcvxcvc&b_unit=zxcvx&b_city=CHESAPEAKE&b_state=VA&b_zip=23323&validateCard=1&userid=13241&validat=");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);

package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=0200&amount=5.05&food_amount=0&tax=0&city_tax=0&reduced_tax=0&surchargeIndicator=1&custom_fee=3&cvv=999&pan=4111111111111111&expiry_date=1224&subscription_start_date=20221212&s_customerName=zxcvx&b_customerName=zxcvx&epi=2226388434&avs=2&recursivePayment=true&username=Test&s_street_no=zxcvxz&s_street_name=xcvxzcvxcvc&s_unit=zxcvx&s_city=CHESAPEAKE&s_state=VA&s_zip=23323&b_street_no=zxcvxz&b_street_name=xcvxzcvxcvc&b_unit=zxcvx&b_city=CHESAPEAKE&b_state=VA&b_zip=23323&validateCard=1&userid=13241&validat="

	req, _ := http.NewRequest("POST", url, nil)

	req.Header.Add("accept", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
require 'uri'
require 'net/http'

url = URI("https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=0200&amount=5.05&food_amount=0&tax=0&city_tax=0&reduced_tax=0&surchargeIndicator=1&custom_fee=3&cvv=999&pan=4111111111111111&expiry_date=1224&subscription_start_date=20221212&s_customerName=zxcvx&b_customerName=zxcvx&epi=2226388434&avs=2&recursivePayment=true&username=Test&s_street_no=zxcvxz&s_street_name=xcvxzcvxcvc&s_unit=zxcvx&s_city=CHESAPEAKE&s_state=VA&s_zip=23323&b_street_no=zxcvxz&b_street_name=xcvxzcvxcvc&b_unit=zxcvx&b_city=CHESAPEAKE&b_state=VA&b_zip=23323&validateCard=1&userid=13241&validat=")

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

request = Net::HTTP::Post.new(url)
request["accept"] = 'application/json'

response = http.request(request)
puts response.read_body
{
  "error_no": "S00",
  "success_url": true,
  "error_code": "00",
  "amount": "5.05",
  "tax": "0",
  "customfee": "3",
  "msg": "APPROVED",
  "desc": "  NO  MATCH     ",
  "additional_info": null,
  "clerk_id": null,
  "clerk_name": null,
  "clerk_label": null,
  "additionalKeyOne": null,
  "additionalKeyTwo": null,
  "additionalValueOne": null,
  "additionalValueTwo": null,
  "approval_code": "TAS105",
  "rrn": "328509500127",
  "txnid": "5217188",
  "tran_no": 11,
  "stan": 89,
  "is_partial_approve": 0,
  "partial_amount": "000000000505",
  "pan": "XXXX1111",
  "card_type": null,
  "phone_number": null,
  "email_id": null,
  "zip": null,
  "card_holder_name": null,
  "expiry_date": "12/24",
  "address": null,
  "epi": "2226388434",
  "channel": "VT",
  "token": "D0E08BD11878031C8457ADA39650C853D17433D9",
  "card_brand": "Visa",
  "netamt": 8.05
}
Field                    Type            Length        Mandatory/Optional     Example Value                       Description
uid                      Numeric         10            Mandatory              2223413579                          A unique id of the request, A client can send any number of 10 digit
app_id                   String          32            Mandatory              464DA39FCFB44D54F6C1D22CEF9098E5    Application id, an unique id given for the application
auth_key                 String          32            Mandatory              15B8BCFDB337428792608354A1444050    Authorization key (API key) given for application contact [email protected]
mtype                    Numeric          4            Mandatory              0200                                Message type 0100
epi                      Numeric         10            Mandatory              2536419865                          10 digit number will be generated as a part of merchant boarding
amount                   Numeric         10            Mandatory              100.50                              Transaction amount (Maximum amount 99,999.99)
food_amount              Numeric          4            Optional               10.00                               Currency (Ex. 00.00) - Food amount should be less than to transaction amount
tax                      Numeric          4            Optional               10.00                               Currency - (Ex. 00.00)
city_tax                 Numeric          4            Optional               10.00                               Currency - (Ex. 00.00) 
reduced_tax              Numeric          4            Optional               10.00                               Currency - (Ex. 00.00) 
surchargeIndicator       Numeric          1            Mandatory              0 or 1                              To enable or disable the surcharge fee (0 or 1)
custom_fee               Numeric          4            Optional               4.00                                Custom fee/surcharge fee if any - Optional
cvv                      Numeric          4            Optional               523 or 4251                         3 or 4 digits number
card_holder_name         String          25            Optional               Jackson                             Name of the cardholder
pan                      Numeric         19            Mandatory              4012881888818888                    Customer card number 15 to 19 digits
expiry_date              date             5            Mandatory              1225                                Card expiry date, Accepted expiry MMYY or MM/YY
subscription_start_date  date             0            Mandatory              2023-04-05                          Customer subscription start date - YYYY-MM-DD
s_customerName           String          25            Optional               Jackson                             Shipping address customer name
b_customerName           String          25            Optional               Jackson                             Billing address customer name
recursivePaymentId       Numeric          4            Optional               7129                                Customer unique recursive payment id
avs                      String          10            Optional               13                                  Address verification service (zip, street address)
recursivePayment         Boolean          5            Optional               true or false                       Is recursive payment true or false
phone                    Number          10            Optional               8965342569                          Customer phone number - 10 digit
email                    String          50            Optional               [email protected]                      Customer email id - Varchar 255
username                 String          25            Optional               test002                             Customer user name
ip_address               String          20            Optional               8.8.8.8                             Merchant IP address- (Ex. 0.0.0.0)
s_street_no              String          25            Optional               12-35                               Shipping address street number - Number with hyphen
s_street_name            String          25            Optional               Corner Street                       Shipping address street name - Alphanumeric
s_unit                   Numeric         25            Optional               25                                  Ex. block no, apartment no
s_city                   Numeric         25            Optional               New York                            Shipping address city - 15 chars
s_state                  String          25            Optional               NY                                  Shipping address state (2 chars capital)
b_street_no              String          25            Optional               12-35                               Billing address street number - Number with hyphen
b_street_name            String          25            Optional               Corner Street                       Billing address street name - Alphanumeric
b_unit                   Numeric         25            Optional               25                                  Ex. block no, apartment no
b_city                   Numeric         25            Optional               New York                            Billing address city - 15 chars
b_state                  String          25            Optional               NY                                  Billing address state (2 chars capital).
b_zip                    Numeric          5            Optional               52468                               Billing address zip - 5 digit
orderId                  Numeric         12            Optional               sale or auth                        Order id for sale and auth
invoicenumber            String          12            Optional               253647896512                        Alphanumeric 12 chars
dataset_id               Numeric          4            Optional               0                                   Line item against created dataset id
orderdescription         String          50            Optional               Ex.Comments                         Description of the order
validateCard             int              1            Optional               set 0 or 1                          To validate the card      
userid                   Numeric          4            Optional               13241                               It is the userid of the merchant to be updated
s_zip                    Numeric          5            Optional               85364                               Shipping address zip - 5 digit 

AuthOnly API

Authonly transaction performs the authorization by getting the card number and other details, settlement can be manually done on each transaction

https://vt-staging.valorpaytech.com:4430/?
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=0100&amount=567.67&food_amount=0&tax=0&city_tax=0&reduced_tax=0&surchargeIndicator=1&custom_fee=0&cvv=999&pan=4111111111111111&expiry_date=1223&avs=1&epi=2313185814&recursivePayment=false&validateCard=0&userid=15625&surchargeRemoved=0&/?authonly=', [
  'headers' => [
    'accept' => 'application/json',
  ],
]);

echo $response->getBody();
import requests

url = "https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=0100&amount=567.67&food_amount=0&tax=0&city_tax=0&reduced_tax=0&surchargeIndicator=1&custom_fee=0&cvv=999&pan=4111111111111111&expiry_date=1223&avs=1&epi=2313185814&recursivePayment=false&validateCard=0&userid=15625&surchargeRemoved=0&/?authonly="

headers = {"accept": "application/json"}

response = requests.post(url, headers=headers)

print(response.text)
const sdk = require('api')('@valorapi/v1.0#4p5423lnn4s57h');

sdk.authonlyApi({
  app_id: '464DA39FCFB44D54F6C1D22CEF9098E5',
  auth_token: '8E1DDE8DE369812732E88C583B14D0C4',
  auth_key: '15B8BCFDB337428792608354A1444050',
  mtype: '0100',
  amount: '567.67',
  food_amount: '0',
  tax: '0',
  city_tax: '0',
  reduced_tax: '0',
  surchargeIndicator: '1',
  custom_fee: '0',
  cvv: '999',
  pan: '4111111111111111',
  expiry_date: '1223',
  avs: '1',
  epi: '2313185814',
  recursivePayment: 'false',
  validateCard: '0',
  userid: '15625',
  surchargeRemoved: '0',
  '/?authonly': ''
})
  .then(({ data }) => console.log(data))
  .catch(err => console.error(err));
CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=0100&amount=567.67&food_amount=0&tax=0&city_tax=0&reduced_tax=0&surchargeIndicator=1&custom_fee=0&cvv=999&pan=4111111111111111&expiry_date=1223&avs=1&epi=2313185814&recursivePayment=false&validateCard=0&userid=15625&surchargeRemoved=0&/?authonly=");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "accept: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);
using RestSharp;


var options = new RestClientOptions("https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=0100&amount=567.67&food_amount=0&tax=0&city_tax=0&reduced_tax=0&surchargeIndicator=1&custom_fee=0&cvv=999&pan=4111111111111111&expiry_date=1223&avs=1&epi=2313185814&recursivePayment=false&validateCard=0&userid=15625&surchargeRemoved=0&/?authonly=");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);

package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=0100&amount=567.67&food_amount=0&tax=0&city_tax=0&reduced_tax=0&surchargeIndicator=1&custom_fee=0&cvv=999&pan=4111111111111111&expiry_date=1223&avs=1&epi=2313185814&recursivePayment=false&validateCard=0&userid=15625&surchargeRemoved=0&/?authonly="

	req, _ := http.NewRequest("POST", url, nil)

	req.Header.Add("accept", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
require 'uri'
require 'net/http'

url = URI("https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=0100&amount=567.67&food_amount=0&tax=0&city_tax=0&reduced_tax=0&surchargeIndicator=1&custom_fee=0&cvv=999&pan=4111111111111111&expiry_date=1223&avs=1&epi=2313185814&recursivePayment=false&validateCard=0&userid=15625&surchargeRemoved=0&/?authonly=")

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

request = Net::HTTP::Post.new(url)
request["accept"] = 'application/json'

response = http.request(request)
puts response.read_body
{
  "error_no": "S00",
  "success_url": true,
  "error_code": "00",
  "amount": "567.67",
  "tax": "0",
  "customfee": "0",
  "msg": "APPROVED",
  "desc": "APPROVAL TAS168 ",
  "additional_info": null,
  "clerk_id": null,
  "clerk_name": null,
  "clerk_label": null,
  "additionalKeyOne": null,
  "additionalKeyTwo": null,
  "additionalValueOne": null,
  "additionalValueTwo": null,
  "approval_code": "TAS168",
  "rrn": "328510502516",
  "txnid": "5217512",
  "tran_no": 9,
  "stan": 105,
  "is_partial_approve": 0,
  "partial_amount": "000000056767",
  "pan": "XXXX1111",
  "card_type": null,
  "phone_number": null,
  "email_id": null,
  "zip": null,
  "card_holder_name": null,
  "expiry_date": "12/23",
  "address": null,
  "epi": "2313185814",
  "channel": "VT",
  "token": "1A49C2448DF860E0D5457C6672C2A38B3DE2D941",
  "card_brand": null,
  "netamt": 567.67
}
Field                    Type            Length        Mandatory/Optional     Example Value                       Description
uid                      Numeric         10            Mandatory              2223413579                          A unique id of the request, A client can send any number of 10 digit
app_id                   String          32            Mandatory              464DA39FCFB44D54F6C1D22CEF9098E5    Application id, an unique id given for the application
auth_key                 String          32            Mandatory              15B8BCFDB337428792608354A1444050    Authorization key (API key) given for application contact [email protected]
mtype                    Numeric          4            Mandatory              0200                                Message type 0100
epi                      Numeric         10            Mandatory              2536419865                          10 digit number will be generated as a part of merchant boarding
amount                   Numeric         10            Mandatory              100.50                              Transaction amount (Maximum amount 99,999.99)
food_amount              Numeric          4            Optional               10.00                               Currency (Ex. 00.00) - Food amount should be less than to transaction amount
tax                      Numeric          4            Optional               10.00                               Currency - (Ex. 00.00)
city_tax                 Numeric          4            Optional               10.00                               Currency - (Ex. 00.00) 
reduced_tax              Numeric          4            Optional               10.00                               Currency - (Ex. 00.00) 
surchargeIndicator       Numeric          1            Mandatory              0 or 1                              To enable or disable the surcharge fee (0 or 1)
custom_fee               Numeric          4            Optional               4.00                                Custom fee/surcharge fee if any - Optional
tip                      Numeric          4            Optional               5.00                                TIP if any / Optional     
cvv                      Numeric          4            Optional               523 or 4251                         3 or 4 digits number
card_holder_name         String          25            Optional               Jackson                             Name of the cardholder
pan                      Numeric         19            Mandatory              4012881888818888                    Customer card number 15 to 19 digits
expiry_date              date             5            Mandatory              1225                                Card expiry date, Accepted expiry MMYY or MM/YY
subscription_start_date  date             0            Mandatory              2023-04-05                          Customer subscription start date - YYYY-MM-DD
s_customerName           String          25            Optional               Jackson                             Shipping address customer name
b_customerName           String          25            Optional               Jackson                             Billing address customer name
recursivePaymentId       Numeric          4            Optional               7129                                Customer unique recursive payment id
avs                      String          10            Optional               13                                  Address verification service (zip, street address)
recursivePayment         Boolean          5            Optional               true or false                       Is recursive payment true or false
phone                    Number          10            Optional               8965342569                          Customer phone number - 10 digit
email                    String          50            Optional               [email protected]                      Customer email id - Varchar 255
username                 String          25            Optional               test002                             Customer user name
ip_address               String          20            Optional               8.8.8.8                             Merchant IP address- (Ex. 0.0.0.0)
s_street_no              String          25            Optional               12-35                               Shipping address street number - Number with hyphen
s_street_name            String          25            Optional               Corner Street                       Shipping address street name - Alphanumeric
s_unit                   Numeric         25            Optional               25                                  Ex. block no, apartment no
s_city                   Numeric         25            Optional               New York                            Shipping address city - 15 chars
s_state                  String          25            Optional               NY                                  Shipping address state (2 chars capital)
b_street_no              String          25            Optional               12-35                               Billing address street number - Number with hyphen
b_street_name            String          25            Optional               Corner Street                       Billing address street name - Alphanumeric
b_unit                   Numeric         25            Optional               25                                  Ex. block no, apartment no
b_city                   Numeric         25            Optional               New York                            Billing address city - 15 chars
b_state                  String          25            Optional               NY                                  Billing address state (2 chars capital).
b_zip                    Numeric          5            Optional               52468                               Billing address zip - 5 digit
orderId                  Numeric         12            Optional               sale or auth                        Order id for sale and auth
invoicenumber            String          12            Optional               253647896512                        Alphanumeric 12 chars
dataset_id               Numeric          4            Optional               0                                   Line item against created dataset id
orderdescription         String          50            Optional               Ex.Comments                         Description of the order
validateCard             int              1            Optional               set 0 or 1                          To validate the card      
userid                   Numeric          4            Optional               13241                               It is the userid of the merchant to be updated
s_zip                    Numeric          5            Optional               85364                               Shipping address zip - 5 digit 

Capture API

An Authonly transaction to be complete using this capture API

https://vt-staging.valorpaytech.com:4430/?
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&epi=2226388434&rrn=328604501386&auth_code=TAS191&pos_entry_mode=12&surchargeIndicator=1&mtype=capture&tran_no=1&amount=67.77&stan=231&tax=0&city_tax=0&custom_fee=14&tip_amount=0&/?captureapi=', [
  'headers' => [
    'accept' => 'application/json',
  ],
]);

echo $response->getBody();
import requests

url = "https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&epi=2226388434&rrn=328604501386&auth_code=TAS191&pos_entry_mode=12&surchargeIndicator=1&mtype=capture&tran_no=1&amount=67.77&stan=231&tax=0&city_tax=0&custom_fee=14&tip_amount=0&/?captureapi="

headers = {"accept": "application/json"}

response = requests.post(url, headers=headers)

print(response.text)
const sdk = require('api')('@valorapi/v1.0#4p5423lnn4s57h');

sdk.captureApi({
  app_id: '464DA39FCFB44D54F6C1D22CEF9098E5',
  auth_token: '8E1DDE8DE369812732E88C583B14D0C4',
  auth_key: '15B8BCFDB337428792608354A1444050',
  epi: '2226388434',
  rrn: '328604501386',
  auth_code: 'TAS191',
  pos_entry_mode: '12',
  surchargeIndicator: '1',
  mtype: 'capture',
  tran_no: '1',
  amount: '67.77',
  stan: '231',
  tax: '0',
  city_tax: '0',
  custom_fee: '14',
  tip_amount: '0',
  '/?captureapi': ''
})
  .then(({ data }) => console.log(data))
  .catch(err => console.error(err));
CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&epi=2226388434&rrn=328604501386&auth_code=TAS191&pos_entry_mode=12&surchargeIndicator=1&mtype=capture&tran_no=1&amount=67.77&stan=231&tax=0&city_tax=0&custom_fee=14&tip_amount=0&/?captureapi=");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "accept: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);
using RestSharp;


var options = new RestClientOptions("https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&epi=2226388434&rrn=328604501386&auth_code=TAS191&pos_entry_mode=12&surchargeIndicator=1&mtype=capture&tran_no=1&amount=67.77&stan=231&tax=0&city_tax=0&custom_fee=14&tip_amount=0&/?captureapi=");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);

package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&epi=2226388434&rrn=328604501386&auth_code=TAS191&pos_entry_mode=12&surchargeIndicator=1&mtype=capture&tran_no=1&amount=67.77&stan=231&tax=0&city_tax=0&custom_fee=14&tip_amount=0&/?captureapi="

	req, _ := http.NewRequest("POST", url, nil)

	req.Header.Add("accept", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
require 'uri'
require 'net/http'

url = URI("https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&epi=2226388434&rrn=328604501386&auth_code=TAS191&pos_entry_mode=12&surchargeIndicator=1&mtype=capture&tran_no=1&amount=67.77&stan=231&tax=0&city_tax=0&custom_fee=14&tip_amount=0&/?captureapi=")

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

request = Net::HTTP::Post.new(url)
request["accept"] = 'application/json'

response = http.request(request)
puts response.read_body
{
  "error_no": "S00",
  "success_url": true,
  "error_code": "00",
  "amount": "5.67",
  "tax": "0",
  "customfee": "14",
  "msg": "APPROVED",
  "desc": "APPROVAL TAS168 ",
  "additional_info": null,
  "clerk_id": null,
  "clerk_name": null,
  "clerk_label": null,
  "additionalKeyOne": null,
  "additionalKeyTwo": null,
  "additionalValueOne": null,
  "additionalValueTwo": null,
  "approval_code": "TAS168",
  "rrn": "328510502516",
  "txnid": "5217748",
  "tran_no": 9,
  "stan": 105,
  "is_partial_approve": 0,
  "partial_amount": "000000000567",
  "pan": "XXXX",
  "card_type": null,
  "phone_number": null,
  "email_id": null,
  "zip": null,
  "card_holder_name": null,
  "expiry_date": "/",
  "address": null,
  "epi": "2313185814",
  "channel": "VT",
  "token": null,
  "card_brand": null,
  "netamt": 19.67
}
Field                    Type            Length        Mandatory/Optional     Example Value                       Description
app_id                   String          32            Mandatory              464DA39FCFB44D54F6C1D22CEF9098E5    Application id, an unique id given for the application
auth_key                 String          32            Mandatory              15B8BCFDB337428792608354A1444050    Authorization key (API key) given for application contact [email protected]
auth_token               String          32            Mandatory              8E1DDE8DE369812732E88C583B14D0C4    Authentication Token is a piece of information that verifies the identity of a user to a website   
uid                      Numeric         10            Mandatory              2223413579                          A unique id of the request, A client can send any number of 10 digit
mtype                    Numeric          4            Mandatory              0200                                Message type 0100
epi                      Numeric         10            Mandatory              2536419865                          10 digit number will be generated as a part of merchant boarding
rrn                      Numeric         12            Mandatory              307009169040                        Retrieval reference number ( e-recpit )
userid                   Numeric          4            Optional               13241                               It is the userid of the merchant to be updated
auth_cod                 String          10            Mandatory              TAS660                              Authentication code
pos_entry_mode           Numeric          5            Optional               012                                 Mode of transaction in POS terminal
email                    String          50            Optional               [email protected]                      Customer email id - Varchar 255
username                 String          25            Optional               test002                             Customer user name
surchargeIndicator       Numeric          1            Mandatory              0 or 1                              To enable or disable the surcharge fee (0 or 1)
ip_address               String          20            Optional               8.8.8.8                             Merchant IP address- (Ex. 0.0.0.0)
tx_id                    Numeric         12            Mandatory              222919672184                        Transaction id for auth
mtype                    String          4            Mandatory               0200                                Message type 0100
amount                   Numeric          4            Mandatory              100.50                              Transaction amount (Maximum amount 99,999.99)
stan                     Numeric          4            Optional               443                                 STAN Number
food_amount              Numeric          4            Optional               10.00                               Currency (Ex. 00.00) - Food amount should be less than to transaction amount
tax                      Numeric          4            Optional               10.00                               Currency - (Ex. 00.00)
city_tax                 Numeric          4            Optional               10.00                               Currency - (Ex. 00.00) 
reduced_tax              Numeric          4            Optional               10.00                               Currency - (Ex. 00.00) 
tip_amount               Numeric          4            Optional                4:00                               TIP if any - optional
custom_fee               Numeric         10            Optional                4.00                               Custom fee/surcharge fee if any - Optional
binType                  Numeric          2            Optional               set 0 or 1                          Select the bin type (0 or 1)
surchargeRemoved         String           2            Optional               set 0 or 1                         To remove the surcharge fee to select 0 or 1

Sale API

Regular transaction request, charge the cardholder immediately as a part of auto/manual settlement

https://vt-staging.valorpaytech.com:4430/?
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=0200&amount=11.11&food_amount=0&tax=0.44&city_tax=0&reduced_tax=0&surchargeIndicator=1&custom_fee=0.02&cvv=999&surchargeRemoved=0&pan=4111111111111111&expiry_date=1224&epi=2226388434&avs=1&recursivePayment=false&validateCard=0&/?saleapi=', [
  'headers' => [
    'accept' => 'application/json',
  ],
]);

echo $response->getBody();
import requests

url = "https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=0200&amount=11.11&food_amount=0&tax=0.44&city_tax=0&reduced_tax=0&surchargeIndicator=1&custom_fee=0.02&cvv=999&surchargeRemoved=0&pan=4111111111111111&expiry_date=1224&epi=2226388434&avs=1&recursivePayment=false&validateCard=0&/?saleapi="

headers = {"accept": "application/json"}

response = requests.post(url, headers=headers)

print(response.text)
const sdk = require('api')('@valorapi/v1.0#4p5423lnn4s57h');

sdk.saleApi1({
  app_id: '464DA39FCFB44D54F6C1D22CEF9098E5',
  auth_token: '8E1DDE8DE369812732E88C583B14D0C4',
  auth_key: '15B8BCFDB337428792608354A1444050',
  mtype: '0200',
  amount: '11.11',
  food_amount: '0',
  tax: '0.44',
  city_tax: '0',
  reduced_tax: '0',
  surchargeIndicator: '1',
  custom_fee: '0.02',
  cvv: '999',
  surchargeRemoved: '0',
  pan: '4111111111111111',
  expiry_date: '1224',
  epi: '2226388434',
  avs: '1',
  recursivePayment: 'false',
  validateCard: '0',
  '/?saleapi': ''
})
  .then(({ data }) => console.log(data))
  .catch(err => console.error(err));
CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=0200&amount=11.11&food_amount=0&tax=0.44&city_tax=0&reduced_tax=0&surchargeIndicator=1&custom_fee=0.02&cvv=999&surchargeRemoved=0&pan=4111111111111111&expiry_date=1224&epi=2226388434&avs=1&recursivePayment=false&validateCard=0&/?saleapi=");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "accept: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);
using RestSharp;


var options = new RestClientOptions("https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=0200&amount=11.11&food_amount=0&tax=0.44&city_tax=0&reduced_tax=0&surchargeIndicator=1&custom_fee=0.02&cvv=999&surchargeRemoved=0&pan=4111111111111111&expiry_date=1224&epi=2226388434&avs=1&recursivePayment=false&validateCard=0&/?saleapi=");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);

package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=0200&amount=11.11&food_amount=0&tax=0.44&city_tax=0&reduced_tax=0&surchargeIndicator=1&custom_fee=0.02&cvv=999&surchargeRemoved=0&pan=4111111111111111&expiry_date=1224&epi=2226388434&avs=1&recursivePayment=false&validateCard=0&/?saleapi="

	req, _ := http.NewRequest("POST", url, nil)

	req.Header.Add("accept", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
require 'uri'
require 'net/http'

url = URI("https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=0200&amount=11.11&food_amount=0&tax=0.44&city_tax=0&reduced_tax=0&surchargeIndicator=1&custom_fee=0.02&cvv=999&surchargeRemoved=0&pan=4111111111111111&expiry_date=1224&epi=2226388434&avs=1&recursivePayment=false&validateCard=0&/?saleapi=")

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

request = Net::HTTP::Post.new(url)
request["accept"] = 'application/json'

response = http.request(request)
puts response.read_body
{
  "error_no": "S00",
  "success_url": true,
  "error_code": "00",
  "amount": "11.11",
  "tax": "0.44",
  "customfee": "0.02",
  "msg": "APPROVED",
  "desc": "APPROVAL TAS849 ",
  "additional_info": null,
  "clerk_id": null,
  "clerk_name": null,
  "clerk_label": null,
  "additionalKeyOne": null,
  "additionalKeyTwo": null,
  "additionalValueOne": null,
  "additionalValueTwo": null,
  "approval_code": "TAS849",
  "rrn": "328510500810",
  "txnid": "5217792",
  "tran_no": 13,
  "stan": 131,
  "is_partial_approve": 0,
  "partial_amount": "000000001111",
  "pan": "XXXX1111",
  "card_type": null,
  "phone_number": null,
  "email_id": null,
  "zip": null,
  "card_holder_name": null,
  "expiry_date": "12/24",
  "address": null,
  "epi": "2226388434",
  "channel": "VT",
  "token": "CE1B97D46F283B204C044DC474AAA70A749270AE",
  "card_brand": "Visa",
  "netamt": 11.569999999999999
}
Field                    Type            Length        Mandatory/Optional     Example Value                       Description
uid                      Numeric         10            Mandatory              2223413579                          A unique id of the request, A client can send any number of 10 digit
app_id                   String          32            Mandatory              464DA39FCFB44D54F6C1D22CEF9098E5    Application id, an unique id given for the application
auth_key                 String          32            Mandatory              15B8BCFDB337428792608354A1444050    Authorization key (API key) given for application contact [email protected]
auth_token               String          32            Mandatory              8E1DDE8DE369812732E88C583B14D0C4    Authentication Token is a piece of information that verifies the identity of a user to a website 
mtype                    Numeric          4            Mandatory              0200                                Message type 0100
epi                      Numeric         10            Mandatory              2536419865                          10 digit number will be generated as a part of merchant boarding
amount                   Numeric         10            Mandatory              100.50                              Transaction amount (Maximum amount 99,999.99)
food_amount              Numeric          4            Optional               10.00                               Currency (Ex. 00.00) - Food amount should be less than to transaction amount
tax                      Numeric          4            Optional               10.00                               Currency - (Ex. 00.00)
city_tax                 Numeric          4            Optional               10.00                               Currency - (Ex. 00.00) 
reduced_tax              Numeric          4            Optional               10.00                               Currency - (Ex. 00.00) 
surchargeIndicator       Numeric          1            Mandatory              0 or 1                              To enable or disable the surcharge fee (0 or 1)
custom_fee               Numeric          4            Optional               4.00                                Custom fee/surcharge fee if any - Optional
tip                      Numeric          4            Optional               5.00                                TIP if any / Optional     
cvv                      Numeric          4            Optional               523 or 4251                         3 or 4 digits number
card_holder_name         String          25            Optional               Jackson                             Name of the cardholder
pan                      Numeric         19            Mandatory              4012881888818888                    Customer card number 15 to 19 digits
expiry_date              date             5            Mandatory              1225                                Card expiry date, Accepted expiry MMYY or MM/YY
subscription_start_date  date             0            Mandatory              2023-04-05                          Customer subscription start date - YYYY-MM-DD
s_customerName           String          25            Optional               Jackson                             Shipping address customer name
b_customerName           String          25            Optional               Jackson                             Billing address customer name
recursivePaymentId       Numeric          4            Optional               7129                                Customer unique recursive payment id
avs                      String          10            Optional               13                                  Address verification service (zip, street address)
recursivePayment         Boolean          5            Optional               true or false                       Is recursive payment true or false
phone                    Number          10            Optional               8965342569                          Customer phone number - 10 digit
email                    String          50            Optional               [email protected]                      Customer email id - Varchar 255
username                 String          25            Optional               test002                             Customer user name
ip_address               String          20            Optional               8:8:8:8                             Merchant IP address- (Ex. 0.0.0.0)
s_street_no              String          25            Optional               12-35                               Shipping address street number - Number with hyphen
s_street_name            String          25            Optional               Corner Street                       Shipping address street name - Alphanumeric
s_unit                   Numeric         25            Optional               25                                  Ex. block no, apartment no
s_city                   Numeric         25            Optional               New York                            Shipping address city - 15 chars
s_state                  String          25            Optional               NY                                  Shipping address state (2 chars capital)
s_zip                    Numeric          5            Optional               85364                               Shipping address zip - 5 digit 
b_street_no              String          25            Optional               12-35                               Billing address street number - Number with hyphen
b_street_name            String          25            Optional               Corner Street                       Billing address street name - Alphanumeric
b_unit                   Numeric         25            Optional               25                                  Ex. block no, apartment no
b_city                   Numeric         25            Optional               New York                            Billing address city - 15 chars
b_state                  String          25            Optional               NY                                  Billing address state (2 chars capital).
b_zip                    Numeric          5            Optional               52468                               Billing address zip - 5 digit
orderId                  Numeric         12            Optional               sale or auth                        Order id for sale and auth
invoicenumber            String          12            Optional               253647896512                        Alphanumeric 12 chars
dataset_id               Numeric          4            Optional               0                                   Line item against created dataset id
orderdescription         String          50            Optional               Ex.Comments                         Description of the order
validateCard             int              1            Optional               set 0 or 1                          To validate the card      
userid                   Numeric          4            Optional               13241                               It is the userid of the merchant to be updated

Refund API

Refund transaction, used to give money back to the cardholder

https://vt-staging.valorpaytech.com:4430/?
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=refund&amount=100&city_tax=0&reduced_tax=0&surchargeIndicator=0&cvv=999&binType=1&surchargeRemoved=0&pan=4111111111111111&expiry_date=1225&epi=2226388434&avs=3&recursivePayment=false&s_street_no=2nd%20Avenue&b_street_no=123%20Avenue&dataset_id=0&validateCard=0&terms_checked=1&otp_app_id=464DA39FCFB44D54F6C1D22CEF9098E5&otp_api_key=15B8BCFDB337428792608354A1444050&uuid=6eEUjwWX8ETFdUhEDnnFW9zuNwzaxqVq&otp=542654&/refundapi?direct=', [
  'headers' => [
    'accept' => 'application/json',
  ],
]);

echo $response->getBody();
import requests

url = "https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=refund&amount=100&city_tax=0&reduced_tax=0&surchargeIndicator=0&cvv=999&binType=1&surchargeRemoved=0&pan=4111111111111111&expiry_date=1225&epi=2226388434&avs=3&recursivePayment=false&s_street_no=2nd%20Avenue&b_street_no=123%20Avenue&dataset_id=0&validateCard=0&terms_checked=1&otp_app_id=464DA39FCFB44D54F6C1D22CEF9098E5&otp_api_key=15B8BCFDB337428792608354A1444050&uuid=6eEUjwWX8ETFdUhEDnnFW9zuNwzaxqVq&otp=542654&/refundapi?direct="

headers = {"accept": "application/json"}

response = requests.post(url, headers=headers)

print(response.text)
const fetch = require('node-fetch');

const url = 'https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=refund&amount=100&city_tax=0&reduced_tax=0&surchargeIndicator=0&cvv=999&binType=1&surchargeRemoved=0&pan=4111111111111111&expiry_date=1225&epi=2226388434&avs=3&recursivePayment=false&s_street_no=2nd%20Avenue&b_street_no=123%20Avenue&dataset_id=0&validateCard=0&terms_checked=1&otp_app_id=464DA39FCFB44D54F6C1D22CEF9098E5&otp_api_key=15B8BCFDB337428792608354A1444050&uuid=6eEUjwWX8ETFdUhEDnnFW9zuNwzaxqVq&otp=542654&/refundapi?direct=';
const options = {method: 'POST', headers: {accept: 'application/json'}};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error('error:' + err));
CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=refund&amount=100&city_tax=0&reduced_tax=0&surchargeIndicator=0&cvv=999&binType=1&surchargeRemoved=0&pan=4111111111111111&expiry_date=1225&epi=2226388434&avs=3&recursivePayment=false&s_street_no=2nd%20Avenue&b_street_no=123%20Avenue&dataset_id=0&validateCard=0&terms_checked=1&otp_app_id=464DA39FCFB44D54F6C1D22CEF9098E5&otp_api_key=15B8BCFDB337428792608354A1444050&uuid=6eEUjwWX8ETFdUhEDnnFW9zuNwzaxqVq&otp=542654&/refundapi?direct=");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "accept: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);
using RestSharp;


var options = new RestClientOptions("https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=refund&amount=100&city_tax=0&reduced_tax=0&surchargeIndicator=0&cvv=999&binType=1&surchargeRemoved=0&pan=4111111111111111&expiry_date=1225&epi=2226388434&avs=3&recursivePayment=false&s_street_no=2nd%20Avenue&b_street_no=123%20Avenue&dataset_id=0&validateCard=0&terms_checked=1&otp_app_id=464DA39FCFB44D54F6C1D22CEF9098E5&otp_api_key=15B8BCFDB337428792608354A1444050&uuid=6eEUjwWX8ETFdUhEDnnFW9zuNwzaxqVq&otp=542654&/refundapi?direct=");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);

package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=refund&amount=100&city_tax=0&reduced_tax=0&surchargeIndicator=0&cvv=999&binType=1&surchargeRemoved=0&pan=4111111111111111&expiry_date=1225&epi=2226388434&avs=3&recursivePayment=false&s_street_no=2nd%20Avenue&b_street_no=123%20Avenue&dataset_id=0&validateCard=0&terms_checked=1&otp_app_id=464DA39FCFB44D54F6C1D22CEF9098E5&otp_api_key=15B8BCFDB337428792608354A1444050&uuid=6eEUjwWX8ETFdUhEDnnFW9zuNwzaxqVq&otp=542654&/refundapi?direct="

	req, _ := http.NewRequest("POST", url, nil)

	req.Header.Add("accept", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
require 'uri'
require 'net/http'

url = URI("https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=refund&amount=100&city_tax=0&reduced_tax=0&surchargeIndicator=0&cvv=999&binType=1&surchargeRemoved=0&pan=4111111111111111&expiry_date=1225&epi=2226388434&avs=3&recursivePayment=false&s_street_no=2nd%20Avenue&b_street_no=123%20Avenue&dataset_id=0&validateCard=0&terms_checked=1&otp_app_id=464DA39FCFB44D54F6C1D22CEF9098E5&otp_api_key=15B8BCFDB337428792608354A1444050&uuid=6eEUjwWX8ETFdUhEDnnFW9zuNwzaxqVq&otp=542654&/refundapi?direct=")

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

request = Net::HTTP::Post.new(url)
request["accept"] = 'application/json'

response = http.request(request)
puts response.read_body
{
  "error_no": "S00",
  "error_code": "00",
  "amount": "100.00",
  "msg": "APPROVED",
  "desc": "  NO  MATCH     ",
  "additional_info": null,
  "epi": "2319914861",
  "channel": "VT",
  "rrn": "328911501243",
  "txnid": "5227750"
}
Field                    Type            Length        Mandatory/Optional     Example Value                       Description
uid                      Numeric         10            Mandatory              2223413579                          A unique id of the request, A client can send any number of 10 digit
app_id                   String          32            Mandatory              464DA39FCFB44D54F6C1D22CEF9098E5    Application id, an unique id given for the application
auth_key                 String          32            Mandatory              15B8BCFDB337428792608354A1444050    Authorization key (API key) given for application contact [email protected]
auth_token               String          32            Mandatory              8E1DDE8DE369812732E88C583B14D0C4    Authentication Token is a piece of information that verifies the identity of a user to a website 
mtype                    Numeric          4            Mandatory              0200                                Message type 0100
epi                      Numeric         10            Mandatory              2536419865                          10 digit number will be generated as a part of merchant boarding
amount                   Numeric         10            Mandatory              100.50                              Transaction amount (Maximum amount 99,999.99)
food_amount              Numeric          4            Optional               10.00                               Currency (Ex. 00.00) - Food amount should be less than to transaction amount
tax                      Numeric          4            Optional               10.00                               Currency - (Ex. 00.00)
city_tax                 Numeric          4            Optional               10.00                               Currency - (Ex. 00.00) 
reduced_tax              Numeric          4            Optional               10.00                               Currency - (Ex. 00.00) 
surchargeIndicator       Numeric          1            Mandatory              0 or 1                              To enable or disable the surcharge fee (0 or 1)
custom_fee               Numeric          4            Optional               4.00                                Custom fee/surcharge fee if any - Optional
tip                      Numeric          4            Optional               5.00                                TIP if any / Optional     
cvv                      Numeric          4            Optional               523 or 4251                         3 or 4 digits number
card_holder_name         String          25            Optional               Jackson                             Name of the cardholder
pan                      Numeric         19            Mandatory              4012881888818888                    Customer card number 15 to 19 digits
expiry_date              date             5            Mandatory              1225                                Card expiry date, Accepted expiry MMYY or MM/YY
subscription_start_date  date             0            Mandatory              2023-04-05                          Customer subscription start date - YYYY-MM-DD
s_customerName           String          25            Optional               Jackson                             Shipping address customer name
b_customerName           String          25            Optional               Jackson                             Billing address customer name
recursivePaymentId       Numeric          4            Optional               7129                                Customer unique recursive payment id
avs                      String          10            Optional               13                                  Address verification service (zip, street address)
recursivePayment         Boolean          5            Optional               true or false                       Is recursive payment true or false
phone                    Number          10            Optional               8965342569                          Customer phone number - 10 digit
email                    String          50            Optional               [email protected]                      Customer email id - Varchar 255
username                 String          25            Optional               test002                             Customer user name
ip_address               String          20            Optional               8:8:8:8                             Merchant IP address- (Ex. 0.0.0.0)
s_street_no              String          25            Optional               12-35                               Shipping address street number - Number with hyphen
s_street_name            String          25            Optional               Corner Street                       Shipping address street name - Alphanumeric
s_unit                   Numeric         25            Optional               25                                  Ex. block no, apartment no
s_city                   Numeric         25            Optional               New York                            Shipping address city - 15 chars
s_state                  String          25            Optional               NY                                  Shipping address state (2 chars capital)
s_zip                    Numeric          5            Optional               85364                               Shipping address zip - 5 digit 
b_street_no              String          25            Optional               12-35                               Billing address street number - Number with hyphen
b_street_name            String          25            Optional               Corner Street                       Billing address street name - Alphanumeric
b_unit                   Numeric         25            Optional               25                                  Ex. block no, apartment no
b_city                   Numeric         25            Optional               New York                            Billing address city - 15 chars
b_state                  String          25            Optional               NY                                  Billing address state (2 chars capital).
b_zip                    Numeric          5            Optional               52468                               Billing address zip - 5 digit
orderId                  Numeric         12            Optional               sale or auth                        Order id for sale and auth
invoicenumber            String          12            Optional               253647896512                        Alphanumeric 12 chars
dataset_id               Numeric          4            Optional               0                                   Line item against created dataset id
orderdescription         String          50            Optional               Ex.Comments                         Description of the order
validateCard             int              1            Optional               set 0 or 1                          To validate the card      
userid                   Numeric          4            Optional               13241                               It is the userid of the merchant to be updated
otp_api_key              Numeric         32            Mandatory              10C8BCVDB337428792608354A14440T0    Refund otp API key
otp_app_id               Numeric         32            Mandatory              864DA39FCFB44DR4F6C1D28CEF9098EJ    Refund otp APP Id
otp                      Numeric          6            Mandatory              253647                              Refund Otp (6 digit)

Settlement API

The payment gateway settlement is the process where the payment gateway proceeds to pay merchants for transactions processing performed during a specific period.

https://vt-staging.valorpaytech.com:4430/?
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=settlement&epi=2226388434&/?settlementapi=', [
  'headers' => [
    'accept' => 'application/json',
  ],
]);

echo $response->getBody();
import requests

url = "https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=settlement&epi=2226388434&/?settlementapi="

headers = {"accept": "application/json"}

response = requests.post(url, headers=headers)

print(response.text)
const sdk = require('api')('@valorapi/v1.0#4p5423lnn4s57h');

sdk.settlementApi({
  app_id: '464DA39FCFB44D54F6C1D22CEF9098E5',
  auth_token: '8E1DDE8DE369812732E88C583B14D0C4',
  auth_key: '15B8BCFDB337428792608354A1444050',
  mtype: 'settlement',
  epi: '2226388434',
  '/?settlementapi': ''
})
  .then(({ data }) => console.log(data))
  .catch(err => console.error(err));
CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=settlement&epi=2226388434&/?settlementapi=");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "accept: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);
using RestSharp;


var options = new RestClientOptions("https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=settlement&epi=2226388434&/?settlementapi=");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);

package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=settlement&epi=2226388434&/?settlementapi="

	req, _ := http.NewRequest("POST", url, nil)

	req.Header.Add("accept", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
require 'uri'
require 'net/http'

url = URI("https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&mtype=settlement&epi=2226388434&/?settlementapi=")

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

request = Net::HTTP::Post.new(url)
request["accept"] = 'application/json'

response = http.request(request)
puts response.read_body
{
  "error_no": "S00",
  "error_code": "00",
  "amount": "0.00",
  "msg": "APPROVED",
  "desc": null,
  "additional_info": null,
  "epi": "2313185814",
  "channel": "VT"
}
Field                    Type            Length        Mandatory/Optional     Example Value                         Description
app_id                   String             32         Mandatory              464DA39FCFB44D54F6C1D22CEF9098E5      Application id, an unique id given for the application
auth_token               String             32         Mandatory              8E1DDE8DE369812732E88C583B14D0C4      Authentication Token is a piece of information that verifies the identity of a user to a website
auth_key                 String             32         Mandatory              15B8BCFDB337428792608354A1444050      Authorization key (API key) given for application contact [email protected]
uid                      Numeric            10         Mandatory              2223413579                            A unique id of the request, A client can send any number of 10 digit
mtype                    Numeric             4         Mandatory              0100                                  Message type 0100
epi                      Numeric            10         Optional               2536419865                            The unique id refers to a particular store of the merchant

Add/Edit Subscription API

Create a payment slot for each subscription

https://vt-staging.valorpaytech.com:4430/?
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://demo.valorpaytech.com/api/virtualTerminal/virtualTerminalDetails', [
  'body' => '{"data":{"cardDetails":{"number":"4111 1111 1111 1111","cardType":"visa","name":"","expiry":"12/25","cvc":"999","cardTypeValue":"D"},"shippingAddress":{"customerName":"bevin","streetNo":"2nd Avenue","streetName":"Newland","streetUnit":"2","city":"","state":"","zipCode":"50001"},"billingAddress":{"customerName":"bevin","streetNo":"2nd Avenue","streetName":"Newland","streetUnit":"2","city":"","state":"","zipCode":"50001"},"orderDetails":{"orderId":"","invoiceNumber":"","description":""},"transactionEntry":{"amount":"123.33","foodAmount":"0.00","manualStateTax":"0.00","manualCityTax":"0.00","manualReducedTax":"0.00","purchaseAmount":"0.00","firstName":"","lastName":"","phoneNo":"","email":""},"ponumberData":[],"ponumberTab":false,"mtype":"0200","modifierData":[],"reduced_tax":"0.00","city_tax":"0.00","epi":"2226388434","isEdit":false,"cardEdit":false,"validateCard":"0","recursiveBill":true,"cardBrand":"visa","isAddress":true,"dayofmonth":20,"cardCharges":500,"paymentType":1,"chargeMonths":6,"upcomingpayment":"2023/11/02","StartDate":"2023/10/03","recurringType":2,"surchargeIndicator":2,"surchargeRemoved":"0","username":"John Smith","descriptor":"RENIO","avs":"2","tax":5.03,"customFee":3.5}}',
  'headers' => [
    'accept' => 'application/json',
    'app_id' => '3j8Q4YNrPRWLXCg7Uv75HDf0ItNE6bdt',
    'auth_key' => 'fTEwjdq00catWyCksPo1Jso0zLtJOOI5',
    'authtoken' => '048dcae0-31bf-11ee-ada7-d3c80876c7ed',
    'content-type' => 'application/json',
  ],
]);

echo $response->getBody();
import requests

url = "https://demo.valorpaytech.com/api/virtualTerminal/virtualTerminalDetails"

payload = { "data": {
        "cardDetails": {
            "number": "4111 1111 1111 1111",
            "cardType": "visa",
            "name": "",
            "expiry": "12/25",
            "cvc": "999",
            "cardTypeValue": "D"
        },
        "shippingAddress": {
            "customerName": "bevin",
            "streetNo": "2nd Avenue",
            "streetName": "Newland",
            "streetUnit": "2",
            "city": "",
            "state": "",
            "zipCode": "50001"
        },
        "billingAddress": {
            "customerName": "bevin",
            "streetNo": "2nd Avenue",
            "streetName": "Newland",
            "streetUnit": "2",
            "city": "",
            "state": "",
            "zipCode": "50001"
        },
        "orderDetails": {
            "orderId": "",
            "invoiceNumber": "",
            "description": ""
        },
        "transactionEntry": {
            "amount": "123.33",
            "foodAmount": "0.00",
            "manualStateTax": "0.00",
            "manualCityTax": "0.00",
            "manualReducedTax": "0.00",
            "purchaseAmount": "0.00",
            "firstName": "",
            "lastName": "",
            "phoneNo": "",
            "email": ""
        },
        "ponumberData": [],
        "ponumberTab": False,
        "mtype": "0200",
        "modifierData": [],
        "reduced_tax": "0.00",
        "city_tax": "0.00",
        "epi": "2226388434",
        "isEdit": False,
        "cardEdit": False,
        "validateCard": "0",
        "recursiveBill": True,
        "cardBrand": "visa",
        "isAddress": True,
        "dayofmonth": 20,
        "cardCharges": 500,
        "paymentType": 1,
        "chargeMonths": 6,
        "upcomingpayment": "2023/11/02",
        "StartDate": "2023/10/03",
        "recurringType": 2,
        "surchargeIndicator": 2,
        "surchargeRemoved": "0",
        "username": "John Smith",
        "descriptor": "RENIO",
        "avs": "2",
        "tax": 5.03,
        "customFee": 3.5
    } }
headers = {
    "accept": "application/json",
    "app_id": "3j8Q4YNrPRWLXCg7Uv75HDf0ItNE6bdt",
    "auth_key": "fTEwjdq00catWyCksPo1Jso0zLtJOOI5",
    "authtoken": "048dcae0-31bf-11ee-ada7-d3c80876c7ed",
    "content-type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const sdk = require('api')('@valorapi/v1.0#1d2w1k16lnn6cakt');

sdk.addeditSubscriptionApi({
  data: {
    cardDetails: {
      number: '4111 1111 1111 1111',
      cardType: 'visa',
      name: '',
      expiry: '12/25',
      cvc: '999',
      cardTypeValue: 'D'
    },
    shippingAddress: {
      customerName: 'bevin',
      streetNo: '2nd Avenue',
      streetName: 'Newland',
      streetUnit: '2',
      city: '',
      state: '',
      zipCode: '50001'
    },
    billingAddress: {
      customerName: 'bevin',
      streetNo: '2nd Avenue',
      streetName: 'Newland',
      streetUnit: '2',
      city: '',
      state: '',
      zipCode: '50001'
    },
    orderDetails: {
      orderId: '',
      invoiceNumber: '',
      description: ''
    },
    transactionEntry: {
      amount: '123.33',
      foodAmount: '0.00',
      manualStateTax: '0.00',
      manualCityTax: '0.00',
      manualReducedTax: '0.00',
      purchaseAmount: '0.00',
      firstName: '',
      lastName: '',
      phoneNo: '',
      email: ''
    },
    ponumberData: [],
    ponumberTab: false,
    mtype: '0200',
    modifierData: [],
    reduced_tax: '0.00',
    city_tax: '0.00',
    epi: '2226388434',
    isEdit: false,
    cardEdit: false,
    validateCard: '0',
    recursiveBill: true,
    cardBrand: 'visa',
    isAddress: true,
    dayofmonth: 20,
    cardCharges: 500,
    paymentType: 1,
    chargeMonths: 6,
    upcomingpayment: '2023/11/02',
    StartDate: '2023/10/03',
    recurringType: 2,
    surchargeIndicator: 2,
    surchargeRemoved: '0',
    username: 'John Smith',
    descriptor: 'RENIO',
    avs: '2',
    tax: 5.03,
    customFee: 3.5
  }
}, {
  app_id: '3j8Q4YNrPRWLXCg7Uv75HDf0ItNE6bdt',
  auth_key: 'fTEwjdq00catWyCksPo1Jso0zLtJOOI5',
  authtoken: '048dcae0-31bf-11ee-ada7-d3c80876c7ed'
})
  .then(({ data }) => console.log(data))
  .catch(err => console.error(err));
CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://demo.valorpaytech.com/api/virtualTerminal/virtualTerminalDetails");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "accept: application/json");
headers = curl_slist_append(headers, "app_id: 3j8Q4YNrPRWLXCg7Uv75HDf0ItNE6bdt");
headers = curl_slist_append(headers, "auth_key: fTEwjdq00catWyCksPo1Jso0zLtJOOI5");
headers = curl_slist_append(headers, "authtoken: 048dcae0-31bf-11ee-ada7-d3c80876c7ed");
headers = curl_slist_append(headers, "content-type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\"data\":{\"cardDetails\":{\"number\":\"4111 1111 1111 1111\",\"cardType\":\"visa\",\"name\":\"\",\"expiry\":\"12/25\",\"cvc\":\"999\",\"cardTypeValue\":\"D\"},\"shippingAddress\":{\"customerName\":\"bevin\",\"streetNo\":\"2nd Avenue\",\"streetName\":\"Newland\",\"streetUnit\":\"2\",\"city\":\"\",\"state\":\"\",\"zipCode\":\"50001\"},\"billingAddress\":{\"customerName\":\"bevin\",\"streetNo\":\"2nd Avenue\",\"streetName\":\"Newland\",\"streetUnit\":\"2\",\"city\":\"\",\"state\":\"\",\"zipCode\":\"50001\"},\"orderDetails\":{\"orderId\":\"\",\"invoiceNumber\":\"\",\"description\":\"\"},\"transactionEntry\":{\"amount\":\"123.33\",\"foodAmount\":\"0.00\",\"manualStateTax\":\"0.00\",\"manualCityTax\":\"0.00\",\"manualReducedTax\":\"0.00\",\"purchaseAmount\":\"0.00\",\"firstName\":\"\",\"lastName\":\"\",\"phoneNo\":\"\",\"email\":\"\"},\"ponumberData\":[],\"ponumberTab\":false,\"mtype\":\"0200\",\"modifierData\":[],\"reduced_tax\":\"0.00\",\"city_tax\":\"0.00\",\"epi\":\"2226388434\",\"isEdit\":false,\"cardEdit\":false,\"validateCard\":\"0\",\"recursiveBill\":true,\"cardBrand\":\"visa\",\"isAddress\":true,\"dayofmonth\":20,\"cardCharges\":500,\"paymentType\":1,\"chargeMonths\":6,\"upcomingpayment\":\"2023/11/02\",\"StartDate\":\"2023/10/03\",\"recurringType\":2,\"surchargeIndicator\":2,\"surchargeRemoved\":\"0\",\"username\":\"John Smith\",\"descriptor\":\"RENIO\",\"avs\":\"2\",\"tax\":5.03,\"customFee\":3.5}}");

CURLcode ret = curl_easy_perform(hnd);
CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://demo.valorpaytech.com/api/virtualTerminal/virtualTerminalDetails");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "accept: application/json");
headers = curl_slist_append(headers, "app_id: 3j8Q4YNrPRWLXCg7Uv75HDf0ItNE6bdt");
headers = curl_slist_append(headers, "auth_key: fTEwjdq00catWyCksPo1Jso0zLtJOOI5");
headers = curl_slist_append(headers, "authtoken: 048dcae0-31bf-11ee-ada7-d3c80876c7ed");
headers = curl_slist_append(headers, "content-type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\"data\":{\"cardDetails\":{\"number\":\"4111 1111 1111 1111\",\"cardType\":\"visa\",\"name\":\"\",\"expiry\":\"12/25\",\"cvc\":\"999\",\"cardTypeValue\":\"D\"},\"shippingAddress\":{\"customerName\":\"bevin\",\"streetNo\":\"2nd Avenue\",\"streetName\":\"Newland\",\"streetUnit\":\"2\",\"city\":\"\",\"state\":\"\",\"zipCode\":\"50001\"},\"billingAddress\":{\"customerName\":\"bevin\",\"streetNo\":\"2nd Avenue\",\"streetName\":\"Newland\",\"streetUnit\":\"2\",\"city\":\"\",\"state\":\"\",\"zipCode\":\"50001\"},\"orderDetails\":{\"orderId\":\"\",\"invoiceNumber\":\"\",\"description\":\"\"},\"transactionEntry\":{\"amount\":\"123.33\",\"foodAmount\":\"0.00\",\"manualStateTax\":\"0.00\",\"manualCityTax\":\"0.00\",\"manualReducedTax\":\"0.00\",\"purchaseAmount\":\"0.00\",\"firstName\":\"\",\"lastName\":\"\",\"phoneNo\":\"\",\"email\":\"\"},\"ponumberData\":[],\"ponumberTab\":false,\"mtype\":\"0200\",\"modifierData\":[],\"reduced_tax\":\"0.00\",\"city_tax\":\"0.00\",\"epi\":\"2226388434\",\"isEdit\":false,\"cardEdit\":false,\"validateCard\":\"0\",\"recursiveBill\":true,\"cardBrand\":\"visa\",\"isAddress\":true,\"dayofmonth\":20,\"cardCharges\":500,\"paymentType\":1,\"chargeMonths\":6,\"upcomingpayment\":\"2023/11/02\",\"StartDate\":\"2023/10/03\",\"recurringType\":2,\"surchargeIndicator\":2,\"surchargeRemoved\":\"0\",\"username\":\"John Smith\",\"descriptor\":\"RENIO\",\"avs\":\"2\",\"tax\":5.03,\"customFee\":3.5}}");

CURLcode ret = curl_easy_perform(hnd);
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://demo.valorpaytech.com/api/virtualTerminal/virtualTerminalDetails"

	payload := strings.NewReader("{\"data\":{\"cardDetails\":{\"number\":\"4111 1111 1111 1111\",\"cardType\":\"visa\",\"name\":\"\",\"expiry\":\"12/25\",\"cvc\":\"999\",\"cardTypeValue\":\"D\"},\"shippingAddress\":{\"customerName\":\"bevin\",\"streetNo\":\"2nd Avenue\",\"streetName\":\"Newland\",\"streetUnit\":\"2\",\"city\":\"\",\"state\":\"\",\"zipCode\":\"50001\"},\"billingAddress\":{\"customerName\":\"bevin\",\"streetNo\":\"2nd Avenue\",\"streetName\":\"Newland\",\"streetUnit\":\"2\",\"city\":\"\",\"state\":\"\",\"zipCode\":\"50001\"},\"orderDetails\":{\"orderId\":\"\",\"invoiceNumber\":\"\",\"description\":\"\"},\"transactionEntry\":{\"amount\":\"123.33\",\"foodAmount\":\"0.00\",\"manualStateTax\":\"0.00\",\"manualCityTax\":\"0.00\",\"manualReducedTax\":\"0.00\",\"purchaseAmount\":\"0.00\",\"firstName\":\"\",\"lastName\":\"\",\"phoneNo\":\"\",\"email\":\"\"},\"ponumberData\":[],\"ponumberTab\":false,\"mtype\":\"0200\",\"modifierData\":[],\"reduced_tax\":\"0.00\",\"city_tax\":\"0.00\",\"epi\":\"2226388434\",\"isEdit\":false,\"cardEdit\":false,\"validateCard\":\"0\",\"recursiveBill\":true,\"cardBrand\":\"visa\",\"isAddress\":true,\"dayofmonth\":20,\"cardCharges\":500,\"paymentType\":1,\"chargeMonths\":6,\"upcomingpayment\":\"2023/11/02\",\"StartDate\":\"2023/10/03\",\"recurringType\":2,\"surchargeIndicator\":2,\"surchargeRemoved\":\"0\",\"username\":\"John Smith\",\"descriptor\":\"RENIO\",\"avs\":\"2\",\"tax\":5.03,\"customFee\":3.5}}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("accept", "application/json")
	req.Header.Add("app_id", "3j8Q4YNrPRWLXCg7Uv75HDf0ItNE6bdt")
	req.Header.Add("auth_key", "fTEwjdq00catWyCksPo1Jso0zLtJOOI5")
	req.Header.Add("authtoken", "048dcae0-31bf-11ee-ada7-d3c80876c7ed")
	req.Header.Add("content-type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
require 'uri'
require 'net/http'

url = URI("https://demo.valorpaytech.com/api/virtualTerminal/virtualTerminalDetails")

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

request = Net::HTTP::Post.new(url)
request["accept"] = 'application/json'
request["app_id"] = '3j8Q4YNrPRWLXCg7Uv75HDf0ItNE6bdt'
request["auth_key"] = 'fTEwjdq00catWyCksPo1Jso0zLtJOOI5'
request["authtoken"] = '048dcae0-31bf-11ee-ada7-d3c80876c7ed'
request["content-type"] = 'application/json'
request.body = "{\"data\":{\"cardDetails\":{\"number\":\"4111 1111 1111 1111\",\"cardType\":\"visa\",\"name\":\"\",\"expiry\":\"12/25\",\"cvc\":\"999\",\"cardTypeValue\":\"D\"},\"shippingAddress\":{\"customerName\":\"bevin\",\"streetNo\":\"2nd Avenue\",\"streetName\":\"Newland\",\"streetUnit\":\"2\",\"city\":\"\",\"state\":\"\",\"zipCode\":\"50001\"},\"billingAddress\":{\"customerName\":\"bevin\",\"streetNo\":\"2nd Avenue\",\"streetName\":\"Newland\",\"streetUnit\":\"2\",\"city\":\"\",\"state\":\"\",\"zipCode\":\"50001\"},\"orderDetails\":{\"orderId\":\"\",\"invoiceNumber\":\"\",\"description\":\"\"},\"transactionEntry\":{\"amount\":\"123.33\",\"foodAmount\":\"0.00\",\"manualStateTax\":\"0.00\",\"manualCityTax\":\"0.00\",\"manualReducedTax\":\"0.00\",\"purchaseAmount\":\"0.00\",\"firstName\":\"\",\"lastName\":\"\",\"phoneNo\":\"\",\"email\":\"\"},\"ponumberData\":[],\"ponumberTab\":false,\"mtype\":\"0200\",\"modifierData\":[],\"reduced_tax\":\"0.00\",\"city_tax\":\"0.00\",\"epi\":\"2226388434\",\"isEdit\":false,\"cardEdit\":false,\"validateCard\":\"0\",\"recursiveBill\":true,\"cardBrand\":\"visa\",\"isAddress\":true,\"dayofmonth\":20,\"cardCharges\":500,\"paymentType\":1,\"chargeMonths\":6,\"upcomingpayment\":\"2023/11/02\",\"StartDate\":\"2023/10/03\",\"recurringType\":2,\"surchargeIndicator\":2,\"surchargeRemoved\":\"0\",\"username\":\"John Smith\",\"descriptor\":\"RENIO\",\"avs\":\"2\",\"tax\":5.03,\"customFee\":3.5}}"

response = http.request(request)
puts response.read_body
{
  "status": "OK",
  "message": "Successfully",
  "data": {
    "error_no": "S00",
    "success_url": true,
    "error_code": "00",
    "amount": "5.00",
    "tax": "0",
    "customfee": "0",
    "msg": "APPROVED",
    "desc": "  NO  MATCH     ",
    "additional_info": null,
    "clerk_id": null,
    "clerk_name": null,
    "clerk_label": null,
    "additionalKeyOne": null,
    "additionalKeyTwo": null,
    "additionalValueOne": null,
    "additionalValueTwo": null,
    "approval_code": "TAS718",
    "rrn": "328512500645",
    "txnid": "5218176",
    "tran_no": 1,
    "stan": 163,
    "is_partial_approve": 0,
    "partial_amount": "000000000500",
    "pan": "XXXX1111",
    "card_type": null,
    "phone_number": "",
    "email_id": "",
    "zip": null,
    "card_holder_name": "",
    "expiry_date": "12/25",
    "address": null,
    "epi": "2226388434",
    "channel": "VT",
    "token": "749B07C96052DF0461492249157229767BF6645C",
    "card_brand": "Visa",
    "netamt": 5,
    "upcomingDateVals": [
      "11/2/2023",
      " 8:32:00 AM"
    ]
  }
}
Field                           Type            Length              Mandatory           Example Value                                   Description
                                                                    / Optional                                                                              
app_id                          String          32                  Mandatory           464DA39FCFB44D54F6C1D22CEF9098E5                Application id, an unique id given for the application
auth_token                      String          32                  Mandatory           2c5b3f70-ddb5-11ed-b9d8-fb10efc0ec46            Authentication Token is a piece of information that verifies the identity of a user to a website
auth_key                        String          32                  Mandatory           15B8BCFDB337428792608354A1444050                Authorization key (API key) given for application contact [email protected]
subscription_id                 Numeric         4                   Mandatory           1234                                            A unique id for each subscriber DO NOT SEND if mtype is addsubscription
uid                             Numeric         10                  Mandatory           2223413579                                      A unique id of the request, A client can send any number of 10 digit
amount                          Numeric         7                   Mandatory           100.00                                          Currency (Maximum amount 99,999.99)
custom_fee                      Numeric         4                   Mandatory           10.00                                           Currency
tax                             Numeric         4                   Mandatory           4.00                                            Currency
mtype                           String          4                   Mandatory           addsubscription                                 Message type "addsubscription" or "editsubscription"
epi                             Numeric         10                  Mandatory           2536419865                                      Epi number
pan                             Numeric         16                  Mandatory           4111111111111111                                Card number
expiry_date                     Numeric         4                   Mandatory           1225                                            MMYY
cvv                             Numeric         3                   Mandatory           999                                             Card verification value
card_holder_name                String          25                  Optional            Jackson                                         Name on the card
descriptor                      String          10                  Optional            Eg.Comments                                     Soft descriptor, cardholder see this in their statement,this is
                                                                                                                                        subject to the issuer bank
invoice_no                      String          12                  Mandatory           253647896512                                    Alphanumeric 12
product_description             String          25                  Optional            Eg.Comments                                     Alphanumeric 25
shipping_customer_name          String          25                  Mandatory           Jackson                                         Alphanumeric
shipping_street_no              String          25                  Mandatory           12-35                                           Number with hyphen
shipping_street_name            String          25                  Mandatory           Corner Street                                   Alphanumeric
shipping_unit                   Numeric         25                  Optional            25                                              Numeric
shipping_zip                    Numeric         6                   Mandatory           52468                                           Numeric
shipping_city                   String          15                  Optional            New York                                        Characters 15
shipping_state                  String          25                  Optional            NY                                              2 chars capital
billing_customer_name           String          32                  Mandatory           Jackson                                         Alphanumeric 32
billing_street_no               Numeric         25                  Mandatory           12-35                                           Number with hyphen
billing_street_name             String          25                  Mandatory           Corner Street                                   Alphanumeric
billing_unit                    Numeric         25                  Optional            25                                              Numeric
billing_zip                     Numeric         6                   Mandatory           52468                                           Numeric
billing_city                    String          15                  Optional            New York                                        Characters 15
billing_state                   String          15                  Optional            NY                                              2 chars capital
subscription_day_of_the_month   Numeric         2                   Mandatory           02                                              2 digit number refers the day of the month
subscription_starts_from        Numeric         8                   Mandatory           2023-04-13                                      YYYY-MM-DD
subscription_valid_for          Numeric         6                   Mandatory           2023-06-13                                      Number Example: 6 for 6 months 0 for never expire
phone                           Numeric         10                  Optional            1234567890                                      10digit number
email                           String          255                 Optional            [email protected]                           Varchar 255
surchargeIndicator              Numeric         1                   Mandatory           1                                               Either 0 or 1

List Subscription API

https://vt-staging.valorpaytech.com:4430?
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://vt-staging.valorpaytech.com:4430/?app_id=3j8Q4YNrPRWLXCg7Uv75HDf0ItNE6bdt&auth_token=048dcae0-31bf-11ee-ada7-d3c80876c7ed&auth_key=fTEwjdq00catWyCksPo1Jso0zLtJOOI5&subscription_id=7171&mtype=listsubscription&epi=2226388434&active=true&start_date=04%2F01%2F23&/?listsubsc=', [
  'headers' => [
    'accept' => 'application/json',
  ],
]);

echo $response->getBody();
import requests

url = "https://vt-staging.valorpaytech.com:4430/?app_id=3j8Q4YNrPRWLXCg7Uv75HDf0ItNE6bdt&auth_token=048dcae0-31bf-11ee-ada7-d3c80876c7ed&auth_key=fTEwjdq00catWyCksPo1Jso0zLtJOOI5&subscription_id=7171&mtype=listsubscription&epi=2226388434&active=true&start_date=04%2F01%2F23&/?listsubsc="

headers = {"accept": "application/json"}

response = requests.post(url, headers=headers)

print(response.text)
const sdk = require('api')('@valorapi/v1.0#4p5423lnn4s57h');

sdk.listSubscriptionApi({
  app_id: '3j8Q4YNrPRWLXCg7Uv75HDf0ItNE6bdt',
  auth_token: '048dcae0-31bf-11ee-ada7-d3c80876c7ed',
  auth_key: 'fTEwjdq00catWyCksPo1Jso0zLtJOOI5',
  subscription_id: '7171',
  mtype: 'listsubscription',
  epi: '2226388434',
  active: 'true',
  start_date: '04%2F01%2F23',
  '/?listsubsc': ''
})
  .then(({ data }) => console.log(data))
  .catch(err => console.error(err));
CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://vt-staging.valorpaytech.com:4430/?app_id=3j8Q4YNrPRWLXCg7Uv75HDf0ItNE6bdt&auth_token=048dcae0-31bf-11ee-ada7-d3c80876c7ed&auth_key=fTEwjdq00catWyCksPo1Jso0zLtJOOI5&subscription_id=7171&mtype=listsubscription&epi=2226388434&active=true&start_date=04%2F01%2F23&/?listsubsc=");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "accept: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);
using RestSharp;


var options = new RestClientOptions("https://vt-staging.valorpaytech.com:4430/?app_id=3j8Q4YNrPRWLXCg7Uv75HDf0ItNE6bdt&auth_token=048dcae0-31bf-11ee-ada7-d3c80876c7ed&auth_key=fTEwjdq00catWyCksPo1Jso0zLtJOOI5&subscription_id=7171&mtype=listsubscription&epi=2226388434&active=true&start_date=04%2F01%2F23&/?listsubsc=");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);

package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://vt-staging.valorpaytech.com:4430/?app_id=3j8Q4YNrPRWLXCg7Uv75HDf0ItNE6bdt&auth_token=048dcae0-31bf-11ee-ada7-d3c80876c7ed&auth_key=fTEwjdq00catWyCksPo1Jso0zLtJOOI5&subscription_id=7171&mtype=listsubscription&epi=2226388434&active=true&start_date=04%2F01%2F23&/?listsubsc="

	req, _ := http.NewRequest("POST", url, nil)

	req.Header.Add("accept", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
require 'uri'
require 'net/http'

url = URI("https://vt-staging.valorpaytech.com:4430/?app_id=3j8Q4YNrPRWLXCg7Uv75HDf0ItNE6bdt&auth_token=048dcae0-31bf-11ee-ada7-d3c80876c7ed&auth_key=fTEwjdq00catWyCksPo1Jso0zLtJOOI5&subscription_id=7171&mtype=listsubscription&epi=2226388434&active=true&start_date=04%2F01%2F23&/?listsubsc=")

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

request = Net::HTTP::Post.new(url)
request["accept"] = 'application/json'

response = http.request(request)
puts response.read_body
{
  "records": [
    {
      "subscription_id": "11738",
      "amount": "200",
      "custom_fee": "3.5000",
      "tax": "5.0300",
      "invoice_number": "",
      "product_description": "",
      "shipping_customer_name": "bevin",
      "shipping_street_no": "2nd Avenue",
      "shipping_street_name": "Newland",
      "shipping_unit": "2",
      "shipping_city": "",
      "shipping_state": "",
      "shipping_zipcode": "50001",
      "billing_customerName": "bevin",
      "billing_street_no": "2nd Avenue",
      "billing_street_name": "Newland",
      "billing_unit": "2",
      "billing_city": "",
      "billing_state": "",
      "billing_zipcode": "50001",
      "subscription_day_of_the_month": "20",
      "subscription_starts_from": "2023-10-03",
      "subscription_valid_for": "6",
      "phone": "",
      "email": "",
      "no_of_failed_attempts": "0",
      "status": "1",
      "card_number": "XXXX1111",
      "total_no_of_payments": "0",
      "forfeit": "0",
      "forfeit_date": null
    }
  ],
  "error_no": "S00",
  "error_code": "00"
}
Field                           Type            Length              Mandatory           Example Value                                   Description
                                                                   / Optional                                                        
app_id                          String          32                  Mandatory           464DA39FCFB44D54F6C1D22CEF9098E5                Application id, an unique id given for the application
auth_token                      String          32                  Mandatory           2c5b3f70-ddb5-11ed-b9d8-fb10efc0ec46            Authentication Token is a piece of information that verifies the identity of a user to a website
auth_key                        String          32                  Mandatory           15B8BCFDB337428792608354A1444050                Authorization key (API key) given for application contact [email protected]
subscription_id                 String          4                   Optional            1234                                            OPTIONAL if leave it empty then the report will deliver all subscription
mtype                           Numeric         4                   Mandatory           listsubscription                                Message type listsubscription
active                          Boolean         2                   Optional            true                                            True or false ( if true then it will show only active subscription , 
                                                                                                                                        false then it will show all subscription )
start_date                      Numeric         8                   Mandatory           2023-04-17                                      YYYYMMDD show subscription which is from the start_date

Void API

https://vt-staging.valorpaytech.com:4430?
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&uid=0553198707&epi=2226388434&rrn=328604501398&userid=12043&auth_code=TAS204&pos_entry_mode=012&surchargeIndicator=1&mtype=void&pos_condition_code=8&tran_no=5&amount=1000&stan=233&tax=0&custom_fee=10&tip_amount=0&/?void=', [
  'headers' => [
    'accept' => 'application/json',
  ],
]);

echo $response->getBody();
import requests

url = "https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&uid=0553198707&epi=2226388434&rrn=328604501398&userid=12043&auth_code=TAS204&pos_entry_mode=012&surchargeIndicator=1&mtype=void&pos_condition_code=8&tran_no=5&amount=1000&stan=233&tax=0&custom_fee=10&tip_amount=0&/?void="

headers = {"accept": "application/json"}

response = requests.post(url, headers=headers)

print(response.text)
const sdk = require('api')('@valorapi/v1.0#4p5423lnn4s57h');

sdk.voidApi({
  app_id: '464DA39FCFB44D54F6C1D22CEF9098E5',
  auth_token: '8E1DDE8DE369812732E88C583B14D0C4',
  auth_key: '15B8BCFDB337428792608354A1444050',
  uid: '0553198707',
  epi: '2226388434',
  rrn: '328604501398',
  userid: '12043',
  auth_code: 'TAS204',
  pos_entry_mode: '012',
  surchargeIndicator: '1',
  mtype: 'void',
  pos_condition_code: '8',
  tran_no: '5',
  amount: '1000',
  stan: '233',
  tax: '0',
  custom_fee: '10',
  tip_amount: '0',
  '/?void': ''
})
  .then(({ data }) => console.log(data))
  .catch(err => console.error(err));
CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&uid=0553198707&epi=2226388434&rrn=328604501398&userid=12043&auth_code=TAS204&pos_entry_mode=012&surchargeIndicator=1&mtype=void&pos_condition_code=8&tran_no=5&amount=1000&stan=233&tax=0&custom_fee=10&tip_amount=0&/?void=");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "accept: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);
using RestSharp;


var options = new RestClientOptions("https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&uid=0553198707&epi=2226388434&rrn=328604501398&userid=12043&auth_code=TAS204&pos_entry_mode=012&surchargeIndicator=1&mtype=void&pos_condition_code=8&tran_no=5&amount=1000&stan=233&tax=0&custom_fee=10&tip_amount=0&/?void=");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);

package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&uid=0553198707&epi=2226388434&rrn=328604501398&userid=12043&auth_code=TAS204&pos_entry_mode=012&surchargeIndicator=1&mtype=void&pos_condition_code=8&tran_no=5&amount=1000&stan=233&tax=0&custom_fee=10&tip_amount=0&/?void="

	req, _ := http.NewRequest("POST", url, nil)

	req.Header.Add("accept", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
require 'uri'
require 'net/http'

url = URI("https://vt-staging.valorpaytech.com:4430/?app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_token=8E1DDE8DE369812732E88C583B14D0C4&auth_key=15B8BCFDB337428792608354A1444050&uid=0553198707&epi=2226388434&rrn=328604501398&userid=12043&auth_code=TAS204&pos_entry_mode=012&surchargeIndicator=1&mtype=void&pos_condition_code=8&tran_no=5&amount=1000&stan=233&tax=0&custom_fee=10&tip_amount=0&/?void=")

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

request = Net::HTTP::Post.new(url)
request["accept"] = 'application/json'

response = http.request(request)
puts response.read_body
{
  "error_no": "S00",
  "error_code": "00",
  "amount": "567.67",
  "msg": "APPROVED",
  "desc": "APPROVAL TAS191 ",
  "additional_info": null,
  "epi": "2313185814",
  "channel": "VT",
  "rrn": "328604501386",
  "txnid": "5221304"
}
Field                           Type            Length              Mandatory           Example Value                                   Description
                                                                    / Optional                                                                                                   
app_id                          String          32                  Mandatory            464DA39FCFB44D54F6C1D22CEF9098E5               Application id, an unique id given for the application
auth_token                      String          32                  Mandatory            2c5b3f70-ddb5-11ed-b9d8-fb10efc0ec46           Authentication Token is a piece of information that verifies the identity of a user to a website
auth_key                        String          32                  Mandatory            15B8BCFDB337428792608354A1444050               Authorization key (API key) given for application contact [email protected]
uid                             Numeric         10                  Mandatory            2223413579                                     A unique id of the request, A client can send any number of 10 digit
epi                             Numeric         10                  Mandatory            2536419865                                     10 digit device identifier
rrn                             Numeric         12                  Mandatory            310315503952                                   12 digit reference number of original transaction
auth_code                       String          6                   Mandatory            TAS623                                         Authorization code
pos_entry_mode                  Numeric         3                   Mandatory            012                                            Pos entry mode = 012
mtype                           Numeric         4                   Mandatory            void                                           Message type void
tran_no                         Numeric         2                   Mandatory            10                                             Transaction number
stan                            Numeric         1                   Mandatory            125                                            STAN number
custom_fee                      Numeric         4                   Optional             10.00                                          Custom fee/surcharge fee if any ( OPTIONAL )

Closed Batch API

https://vt-staging.valorpaytech.com:4430?
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://vt-staging.valorpaytech.com:4430/?batchID=118858&batchNO=39&auth_token=f8ec0e50-6831-11ee-b69e-07ff5d348884&mtype=getclosebatch&epi=2319914786&limit=20&offset=0&app_id=ZLC6pTITTJ4MlTAo2DpnPlEZwttgm4vp&appkey=xtG5iGg0SHVGhXHI30Hz5VKG2bolU5Mq&storeid=17358&/?closedbatch=', [
  'headers' => [
    'accept' => 'application/json',
  ],
]);

echo $response->getBody();
import requests

url = "https://vt-staging.valorpaytech.com:4430/?batchID=118858&batchNO=39&auth_token=f8ec0e50-6831-11ee-b69e-07ff5d348884&mtype=getclosebatch&epi=2319914786&limit=20&offset=0&app_id=ZLC6pTITTJ4MlTAo2DpnPlEZwttgm4vp&appkey=xtG5iGg0SHVGhXHI30Hz5VKG2bolU5Mq&storeid=17358&/?closedbatch="

headers = {"accept": "application/json"}

response = requests.post(url, headers=headers)

print(response.text)
const sdk = require('api')('@valorapi/v1.0#3y1ss1olo5a8r3g');

sdk.closedBatchApi({
  batchID: '118858',
  batchNO: '39',
  auth_token: 'f8ec0e50-6831-11ee-b69e-07ff5d348884',
  mtype: 'getclosebatch',
  epi: '2319914786',
  limit: '20',
  offset: '0',
  app_id: 'ZLC6pTITTJ4MlTAo2DpnPlEZwttgm4vp',
  appkey: 'xtG5iGg0SHVGhXHI30Hz5VKG2bolU5Mq',
  storeid: '17358',
  '/?closedbatch': ''
})
  .then(({ data }) => console.log(data))
  .catch(err => console.error(err));
CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://vt-staging.valorpaytech.com:4430/?batchID=118858&batchNO=39&auth_token=f8ec0e50-6831-11ee-b69e-07ff5d348884&mtype=getclosebatch&epi=2319914786&limit=20&offset=0&app_id=ZLC6pTITTJ4MlTAo2DpnPlEZwttgm4vp&appkey=xtG5iGg0SHVGhXHI30Hz5VKG2bolU5Mq&storeid=17358&/?closedbatch=");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "accept: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);
using RestSharp;


var options = new RestClientOptions("https://vt-staging.valorpaytech.com:4430/?batchID=118858&batchNO=39&auth_token=f8ec0e50-6831-11ee-b69e-07ff5d348884&mtype=getclosebatch&epi=2319914786&limit=20&offset=0&app_id=ZLC6pTITTJ4MlTAo2DpnPlEZwttgm4vp&appkey=xtG5iGg0SHVGhXHI30Hz5VKG2bolU5Mq&storeid=17358&/?closedbatch=");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);

package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://vt-staging.valorpaytech.com:4430/?batchID=118858&batchNO=39&auth_token=f8ec0e50-6831-11ee-b69e-07ff5d348884&mtype=getclosebatch&epi=2319914786&limit=20&offset=0&app_id=ZLC6pTITTJ4MlTAo2DpnPlEZwttgm4vp&appkey=xtG5iGg0SHVGhXHI30Hz5VKG2bolU5Mq&storeid=17358&/?closedbatch="

	req, _ := http.NewRequest("POST", url, nil)

	req.Header.Add("accept", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
require 'uri'
require 'net/http'

url = URI("https://vt-staging.valorpaytech.com:4430/?batchID=118858&batchNO=39&auth_token=f8ec0e50-6831-11ee-b69e-07ff5d348884&mtype=getclosebatch&epi=2319914786&limit=20&offset=0&app_id=ZLC6pTITTJ4MlTAo2DpnPlEZwttgm4vp&appkey=xtG5iGg0SHVGhXHI30Hz5VKG2bolU5Mq&storeid=17358&/?closedbatch=")

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

request = Net::HTTP::Post.new(url)
request["accept"] = 'application/json'

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

TIP Adjustment

https://vt-staging.valorpaytech.com:4430?
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://vt-staging.valorpaytech.com:4430/?epi=2313185814&amount=5&stan=595&rrn=330310752470&auth_code=TAS070&app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_key=15B8BCFDB337428792608354A1444050&auth_token=8E1DDE8DE369812732E88C583B14D0C4&mtype=tipadjust&/?tipadjust=', [
  'headers' => [
    'accept' => 'application/json',
  ],
]);

echo $response->getBody();
import requests

url = "https://vt-staging.valorpaytech.com:4430/?epi=2313185814&amount=5&stan=595&rrn=330310752470&auth_code=TAS070&app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_key=15B8BCFDB337428792608354A1444050&auth_token=8E1DDE8DE369812732E88C583B14D0C4&mtype=tipadjust&/?tipadjust="

headers = {"accept": "application/json"}

response = requests.post(url, headers=headers)

print(response.text)
const sdk = require('api')('@valorapi/v1.0#1f4drw1iloclyowu');

sdk.tipAdjustment({
  epi: '2313185814',
  amount: '5',
  stan: '595',
  rrn: '330310752470',
  auth_code: 'TAS070',
  app_id: '464DA39FCFB44D54F6C1D22CEF9098E5',
  auth_key: '15B8BCFDB337428792608354A1444050',
  auth_token: '8E1DDE8DE369812732E88C583B14D0C4',
  mtype: 'tipadjust',
  '/?tipadjust': ''
})
  .then(({ data }) => console.log(data))
  .catch(err => console.error(err));
CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://vt-staging.valorpaytech.com:4430/?epi=2313185814&amount=5&stan=595&rrn=330310752470&auth_code=TAS070&app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_key=15B8BCFDB337428792608354A1444050&auth_token=8E1DDE8DE369812732E88C583B14D0C4&mtype=tipadjust&/?tipadjust=");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "accept: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);
using RestSharp;


var options = new RestClientOptions("https://vt-staging.valorpaytech.com:4430/?epi=2313185814&amount=5&stan=595&rrn=330310752470&auth_code=TAS070&app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_key=15B8BCFDB337428792608354A1444050&auth_token=8E1DDE8DE369812732E88C583B14D0C4&mtype=tipadjust&/?tipadjust=");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);

package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://vt-staging.valorpaytech.com:4430/?epi=2313185814&amount=5&stan=595&rrn=330310752470&auth_code=TAS070&app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_key=15B8BCFDB337428792608354A1444050&auth_token=8E1DDE8DE369812732E88C583B14D0C4&mtype=tipadjust&/?tipadjust="

	req, _ := http.NewRequest("POST", url, nil)

	req.Header.Add("accept", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
require 'uri'
require 'net/http'

url = URI("https://vt-staging.valorpaytech.com:4430/?epi=2313185814&amount=5&stan=595&rrn=330310752470&auth_code=TAS070&app_id=464DA39FCFB44D54F6C1D22CEF9098E5&auth_key=15B8BCFDB337428792608354A1444050&auth_token=8E1DDE8DE369812732E88C583B14D0C4&mtype=tipadjust&/?tipadjust=")

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

request = Net::HTTP::Post.new(url)
request["accept"] = 'application/json'

response = http.request(request)
puts response.read_body
{
  "error_no": "S00",
  "success_url": true,
  "error_code": "00",
  "amount": "5.00",
  "tax": "",
  "customfee": "",
  "msg": "APPROVED",
  "desc": null,
  "additional_info": null,
  "clerk_id": null,
  "clerk_name": null,
  "clerk_label": null,
  "additionalKeyOne": null,
  "additionalKeyTwo": null,
  "additionalValueOne": null,
  "additionalValueTwo": null,
  "approval_code": "TAS070",
  "rrn": "330310752470",
  "txnid": null,
  "tran_no": 6,
  "stan": 595,
  "is_partial_approve": 0,
  "partial_amount": "000000000500",
  "pan": "XXXX",
  "card_type": null,
  "phone_number": null,
  "email_id": null,
  "zip": null,
  "card_holder_name": null,
  "expiry_date": "/",
  "address": null,
  "epi": "2313185814",
  "channel": "VT",
  "token": null,
  "card_brand": null,
  "netamt": 5
}
Field                    Type            Length        Mandatory/Optional     Example Value                       Description.
epi                      Numeric         10            Mandatory              2536419865                          EPI is an end point identifier, Identify the device on valor infrastructure, it's a 10 digit number starts with 2
amount                   Numeric         10            Mandatory              10.00                               TIP amount (Ex:5.00, 10.00, 20.00 etc.)
stan                     Numeric          6            Mandatory              854                                 Should match the original sale stan
rrn                      String          15            Mandatory              32921075112                         RRN number from sale txn response (Numeric)
auth_code                String           8            Mandatory              TAS12455                            Approval code response from sale transaction (Alphanumeric)
appid                    String          32            Mandatory              464DA39FCFB44D54F6C1D22CEF9098E5    Application id, an unique id given for the application
appkey                   String          32            Mandatory              15B8BCFDB337428792608354A1444050    Authorization key (API key) given for application contact [email protected]
mtype                    String          50            Mandatory              tipadjust                           Message type should be set as tipadjust

Error Codes

General Error Codes

Error Code	  Error Description

E01 	          UID IS MISSING
E02	          INVALID UID
E03	          MESSAGE FORMATION IS WRONG
E04	          INVALID MESSAGE CODE
E05	          INVALID AMOUNT
E06	          INVALID CARD NUMBER
E07	          INVALID EXPIRY DATE
E08	          INVALID CARD HOLDER NAME
E09	          INVALID ADDRESS
E10	          INVALID ZIP
E11	          INVALID APP ID
E12	          INVALID AUTH TOKEN
E13	          INVALID AUTH KEY
E14	          INVALID TRANSACTION ID
E15	          INVALID PROCESSING CODE
E16	          INVALID TRAN NO
E17	          INVALID RRN
E18	          INVALID AUTH CODE
E19	          INVALID POS ENTRY CODE
E20	          TRANSACTION TIME OUT
E21	          SC INDICATOR INVALID
E22	          EPAGE URL GENERATION FAILED
E23	          EPAGE URL TIMEOUT
E24	          EPAGE URL LIMIT EXCEED
E25	          EPAGE URL INVALID REQUEST
E26	          AUTHENTICATION FAILED
E27	          SUBSCRIPTION ID IS MISSING
E28	          FREEZE START DATE IS MISSING
E29	          FREEZE STOP DATE IS MISSING
E30	          INVALID FREEZE DATE REQUEST
E31	          NO SUBSCRIPTION AVAILABLE
E32	          ACTIVE SEARCH FLAG IS MISSING
E33	          START DATE SEARCH FLAG IS MISSING
E34	          INVALID STAN NO
E35	          INVALID FORFEIT FLAG
E36	          FORFEIT FLAG IS NOT UPDATED
E99	          GENERAL ERROR
E98	          TRANSACTION DECLINED
S00	          SUCCESS
00	          CONNECTION SUCCESS
D01	          APP ID IS REQUIRED
D02	          APP KEY IS REQUIRED
D03	          TXN TYPE IS REQUIRED
D04	          AMOUNT IS REQUIRED
D05	          BLACK LISTED IP
D06	          NOT A VALID APP ID
D07	          NOT A VALID APP KEY
D08	          INVALID TXN TYPE
D09	          INVALID EPI
D10	          IP ADDRESS IS NOT WHITELISTED
D11	          IP ADDRESS MANDATORY
D12	          SHIPPING COUNTRY MANDATORY
D13	          FOREIGN DELIVERY IS NOT ALLOWED
D14	          INTERNATIONAL IP ADDRESS ACCESS IS NOT ALLOWED
D15	          TRANSACTION NOT ALLOWED
D16	          INVALID STORE ID
D17	          INVALID VOUCHER NO
D18	          INVALID APPROVAL CODE
D19	          INVALID TRAN NO OR LAST4DIGITS PAN NUMBER

     TXN API ERROR CODES
	 
D20	          INVALID DATE RANGE
D21	          FILTER IS INVALID
D22	          FILTER TEXT IS INVALID
D23	          LIMIT MUST BE LESSER THAN 1000
D24	          OFFSET MUST BE LESSER THAN 1000
D25	          GENERAL TXNFETCH ERROR
D26	          DATE FILTER IS INVALID
A01	          ACCOUNT NUMBER IS INVALID
A02	          ROUTING NUMBER IS INVALID
A03	          ACCOUNT TYPE IS INVALID
A04	          PAYEE NAME IS INVALID
A05	          NO VENDOR FOUND
A06	          AUTH FAILED
A07	          ACH TXN NOT FOUND
A08	          ACH TXN ALREADY VOIDED
A09	          ACH TXN CANNOT BE VOID SETTLED ALREADY
A10	          INELIGIBLE FOR VOID
A11	          AUTH FAILED
A12	          NO MERCHANT ACCOUNT
A13	          VOID CANNOT BE LOCATED
A14	          VENDOR SYSTEM SOMETHING WENT WRONG
A15	          LIMIT SHOULD NOT BE MORE THAN 1000
A16	          INVALID DATES
A17	          INVALID FREQUENCY TYPE
A18	          INVALID UID
A99	          SYSTEM ERROR

Switch Error Code

Code            Type                Message
00              APPROVAL            Approved and completed
01              CALL                Refer to issuer
02              CALL                Refer to issuer-Special condition
03              TERM ID             ERROR Invalid Merchant ID
04              HOLD-CALL           Pick up card (no fraud)
05              DECLINE             Do not honor
06              ERROR               General error
07              HOLD-CALL           Pick up card
08              APPROVAL            Honor Mastercard with ID
10              PARTIAL             APPROVAL Partial approval for the authorized amount returned in Group III version 022
11              APPROVAL            VIP approval
12              INVALID             TRANS Invalid transaction
13              AMOUNT              ERROR Invalid amount
14              CARD NO             ERROR Invalid card number
15              NO SUCH ISSUER      No such issuer
19              RE ENTER            Re-enter transaction
21              NO ACTION           TAKEN Unable to back out transaction
25              NO CARD NUMBER      Unable to locate the account number
28              NO REPLY            File is temporarily unavailable
30              MSG FORMAT          ERROR Transaction was improperly formatted
39              NO CREDIT ACCT      No credit account
41              HOLD-CALL           Lost card
43              HOLD-CALL           Stolen card
51              DECLINE             Insufficient funds
52              NO CHECK ACCOUNT    No checking account
53              NO SAVE ACCOUNT     No savings account
54              EXPIRED CARD        Expired card
55              WRONG PIN           Incorrect PIN
57              SERV NOT ALLOWED    Transaction not permitted-Card
58              SERV NOT ALLOWED    Transaction not permitted-Terminal
61              DECLINE             Exceeds withdrawal limit
62              DECLINE             Invalid service code restricted
63              SEC VIOLATION       Security violation
65              DECLINE             Activity limit exceeded
75              PIN EXCEEDED        PIN tried exceeded
76              UNSOLIC REVERSAL    Unable to locate
77              NO ACTION TAKEN     Inconsistent
78              NO ACCOUNT          No account
79              ALREADY REVERSED    Already reversed at switch
80              NO IMPACT           No Financial impact (used in reversal responses to decline originals)
81              ENCRYPTION ERROR    Cryptographic error
82              INCORRECT CVV       CVV data is not correct
83              CANT VERIFY PIN     Cannot verify PIN
85              CARD OK             No reason to decline
86              CANT VERIFY PIN     Cannot verify PIN
91              NO REPLY            Issuer or switch is unavailable
92              INVALID ROUTING     Destination not found
93              DECLINE             Violation
94              DUPLICATE TRANS     Unable to locate
96              SYSTEM ERROR        System malfunction
A1              ACTIVATED POS       device authentication successful
A2              NOT ACTIVATED POS   device authentication not successful
A3              DEACTIVATED POS     device deactivation successful
B1              SRCHG NOT ALLOWD    Surcharge amount not permitted on debit cards or EBT food stamps
B2              SRCHG NOT ALLOWD    Surcharge amount not supported by debit network issuer
CV              FAILURE             CV Card Type Verification Error
D3              SECUR CRYPT FAIL    transaction failure due to missing or invalid 3D-Secure cryptogram
E1              ENCR NOT CONFIGD    Encryption is not configured
E2              TERM NOT AUTHENT    Terminal is not authenticated
E3              DECRYPT FAILURE     Data could not be decrypted
EA              ACCT LENGTH ERR     Verification error
EB              CHECK DIGIT ERR     Verification error
EC              CID FORMAT ERROR    Verification error
HV              FAILURE HV          Hierarchy Verification Error
K0              TOKEN RESPONSE      Token request was processed
K1              TOKEN NOT CONFIG    Tokenization is not configured
K2              TERM NOT AUTHENT    Terminal is not authenticated
K3              TOKEN FAILURE       Data could not be de-tokenized
M0              Mastercard:         Canada region-issued Domestic Debit Transaction not allowed
N3              CACHBACK NOT AVL    Cash back service not available
N4              DECLINE             Exceeds issuer withdrawal limit