Skip to content

Preauthorization Payment Integration

Note

Not all acquirers/payment brands support preauthorization and capture. Before implementing, check with your account manager if supported in your account.

To initiate a preauthorization transaction, send the following request header and body parameters via POST.

POST/preauthorization

Send the payment for the transaction

HEADER PARAMETERS

Content-Type optional
string
Default content type of the API.

Authorization required
string
Unique identifier of the integrator.

REQUEST BODY SCHEMA: application/json

payload required
string
Generated JSON Web Token (JWT) from transaction data signed with integrator's secret using HS256 algorithm.
Secret
issued key used for signing the payload data

Transaction Data
is a JSON-formatted data as shown below

{
   "data":{
      "credit_card":{
         "card_holder_name":"Abel Maclead",
         "number":"0000000000000000",
         "expiration_month":"00",
         "expiration_year":"00",
         "cvv":"000"
      },
      "customer":{
         "first_name":"Abel",
         "last_name":"Maclead",
         "billing_address":{
            "line1":"#88",
            "line2":"Boston Ave",
            "city_municipality":"Philadelphia",
            "zip":"19132",
            "state_province_region":"PA",
            "country_code":"US"
         },
         "shipping_address":{
            "line1":"#88",
            "line2":"Boston Ave",
            "city_municipality":"Philadelphia",
            "zip":"19132",
            "state_province_region":"PA",
            "country_code":"US"
         },
         "contact":{
            "email":"amaclead@domain.com",
            "mobile":"+1415552671"
         }
      },
      "payment":{
         "description":"Payment for a product",
         "amount":1000.50,
         "currency":"USD",
         "option":"{generatedOptionKey}",
         "merchant_reference_id":"INV-100001_TEST",
         "other_references":[
            "REF1", "REF2"
         ]
      },
      "route":{
         "callback_url":"https://tlpe.io/thankyou",
         "notify_user":true
      },
      "3d_secure":{
         "device":{
            "timezone":"+0000",
            "browser_color_depth":"24",
            "browser_language":"en-GB",
            "browser_screen_height":"1080",
            "browser_screen_width":"1920",
            "os":"windows",
            "browser_accept_header":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*",
            "user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36",
            "browser_javascript_enabled":false,
            "browser_java_enabled":false,
            "accept_content":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3"
         }
      },
      "time_offset":"+08:00",
      "customer_ip_address":"0.0.0.0"
   }
}

See API Reference > Transaction Body Payload Data for a guided requirement.

Info

For option parameter value, get the generated code from Get Payment Options endpoint response.

For 3DS transaction, page will be redirected to the callback URL set in the payload
where a URL parameter transaction_id will be appended.

Example:
https://tlpe.io/thankyou?transaction_id={transactionId}


Request Samples

curl
   -X POST "https://test-api.tlpe.io/preauthorization" \
   -H "Content-Type: application/json" \
   -H "Authorization: {integratorToken}" \
   -d "{
            "payload": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
            eyJkYXRhIjp7ImN1c3RvbWVyIjp7ImZpcnN0X25hbWUiOiJ7
            Zmlyc3ROYW1lfSIsImxhc3RfbmFtZSI6IntsYXN0TmFtZX0i
            LCJiaWxsaW5nX2FkZHJlc3MiOnsibGluZTEiOiJ7YWRkcmVz
            c0xpbmUxfSIsImxpbmUyIjoie2FkZHJlc3NMaW5lMn0iLCJj
            aXR5X211bmljaXBhbGl0eSI6IntjaXR5fSIsInppcCI6Int6
            aXBDb2RlfSIsInN0YXRlX3Byb3ZpbmNlX3JlZ2lvbiI6Intz
            dGF0ZX0iLCJjb3VudHJ5X2NvZGUiOiJ7Y291bnRyeUNvZGV9
            In0sInNoaXBwaW5nX2FkZHJlc3MiOnsibGluZTEiOiJ7YWRk
            cmVzc0xpbmUxfSIsImxpbmUyIjoie2FkZHJlc3NMaW5lMn0i
            LCJjaXR5X211bmljaXBhbGl0eSI6IntjaXR5fSIsInppcCI6
            Int6aXBDb2RlfSIsInN0YXRlX3Byb3ZpbmNlX3JlZ2lvbiI6
            IntzdGF0ZX0iLCJjb3VudHJ5X2NvZGUiOiJ7Y291bnRyeUNv
            ZGV9In0sImNvbnRhY3QiOnsiZW1haWwiOiJ7ZW1haWxBZGRy
            ZXNzfSIsIm1vYmlsZSI6Inttb2JpbGVOdW1iZXJ9In19LCJw
            YXltZW50Ijp7ImRlc2NyaXB0aW9uIjoie3RyYW5zYWN0aW9u
            RGVzY3JpcHRpb259IiwiYW1vdW50IjoxMDAsImN1cnJlbmN5
            Ijoie2N1cnJlbmN5Q29kZX0iLCJvcHRpb24iOiJ7Z2VuZXJh
            dGVkT3B0aW9uS2V5fSIsIm1lcmNoYW50X3JlZmVyZW5jZV9p
            ZCI6IntyZWZlcmVuY2V9Iiwib3RoZXJfcmVmZXJlbmNlcyI6
            WyJ7cmVmZXJlbmNlMX0iLCJ7cmVmZXJlbmNlMn0iXX0sInJv
            dXRlIjp7ImNhbGxiYWNrX3VybCI6IntjYWxsYmFja1VybH0i
            LCJub3RpZnlfdXNlciI6dHJ1ZX19fQ.21qPOEoXodlV_pmMe
            _7xvuH9QGLnyIcq0nmnj_8fwAc"
      }"
public Dictionary<string, dynamic> Preauthorization()
  {
      Dictionary<string, dynamic> responseData;
      string payload = "{\"payload\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7ImNyZWRpdF9jYXJkIjp7ImNhcmRfaG9sZGVyX25hbWUiOiJWYWx1ZWQgQ3VzdG9tZXIiLCJudW1iZXIiOiI0MTExMTExMTExMTExMTExIiwiZXhwaXJhdGlvbl9tb250aCI6IjEyIiwiZXhwaXJhdGlvbl95ZWFyIjoiMjIiLCJjdnYiOiIxMjMifSwiY3VzdG9tZXIiOnsiZmlyc3RfbmFtZSI6Ikp1YW4iLCJsYXN0X25hbWUiOiJEZWxhIENydXoiLCJiaWxsaW5nX2FkZHJlc3MiOnsibGluZTEiOiI5MDUgVmljZW50ZSBNYWRyaWdhbCIsImxpbmUyIjoiNjc5MyBBeWFsYSBBdmVudWUiLCJjaXR5X211bmljaXBhbGl0eSI6Ik1ha2F0aSBDaXR5IiwiemlwIjoiMTIyNiIsInN0YXRlX3Byb3ZpbmNlX3JlZ2lvbiI6Ik1ldHJvIE1hbmlsYSIsImNvdW50cnlfY29kZSI6IlBIIn0sInNoaXBwaW5nX2FkZHJlc3MiOnsibGluZTEiOiI5MDUgVmljZW50ZSBNYWRyaWdhbCIsImxpbmUyIjoiNjc5MyBBeWFsYSBBdmVudWUiLCJjaXR5X211bmljaXBhbGl0eSI6Ik1ha2F0aSBDaXR5IiwiemlwIjoiMTIyNiIsInN0YXRlX3Byb3ZpbmNlX3JlZ2lvbiI6Ik1ldHJvIE1hbmlsYSIsImNvdW50cnlfY29kZSI6IlBIIn0sImNvbnRhY3QiOnsiZW1haWwiOiJqdWFuLmRlbGFjcnV6QGFsdHBheW5ldC5jb20iLCJtb2JpbGUiOiIrNjM5MTIzNDU2Nzg5In19LCJwYXltZW50Ijp7ImRlc2NyaXB0aW9uIjoiU2FtcGxlIHRyYW5zYWN0aW9uIiwiYW1vdW50IjoxMCwiY3VycmVuY3kiOiJQSFAiLCJvcHRpb24iOiJleUowZVhBaU9pSktWMVFpTENKaGJHY2lPaUpJVXpJMU5pSjkuZXlKcGMzTWlPaUpVVEZCRklpd2ljM1ZpSWpvaVZFeFFSU0JDWVhObElGSnZkWFJsY2lCQmRYUm9aVzUwYVdOaGRHbHZiaUlzSW1GMVpDSTZJbFJNVUVVZ1FtRnpaU0JTYjNWMFpYSWlMQ0psZUhBaU9qRTJNamMzTWpFMU56SXNJbWxoZENJNk1UWXlOelUwT0RjM01pd2lhblJwSWpvaU56WTRZalZtTm1RdFlXTTNNQzAwT0RZMUxUaGxObVF0WmpSa016Wm1PV0k0TmpReUlpd2laR0YwWVNJNklqVTBNalUxTmpGaExXWTNNV1V0TkdRNVpTMDVNVFV5TFRsbE5UQTVOV1l3TldVeU5TSjkuVVk2d1ZsUnIxU0toaE15SzNxN1FWRUo3TkRBYW5wZTgzRWk1N3h0Y1o0RSIsIm1lcmNoYW50X3JlZmVyZW5jZV9pZCI6IjIwMjEwOTI5LTMifSwicm91dGUiOnsiY2FsbGJhY2tfdXJsIjoiaHR0cHM6Ly9hbHRwYXluZXQuY29tIiwibm90aWZ5X3VzZXIiOnRydWV9LCJ0aW1lX29mZnNldCI6IiswODowMCJ9fQ.dNMBNJx7oHNufLchHBTnx5tKYC2qpHLAp6RCcSUcHSA\"}";
      string url = "https://test-api.tlpe.io/preauthorization";
      byte[] buffer = Encoding.ASCII.GetBytes(payload);
      HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
      request.Method = "POST";
      request.Headers["Authorization"] = "{integratorToken}";
      request.ContentType = "application/json";
      Stream PostData = request.GetRequestStream();
      PostData.Write(buffer, 0, buffer.Length);
      PostData.Close();
   using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
      {
          Stream responseStream = response.GetResponseStream();
          StreamReader reader = new StreamReader(responseStream);
          StringReader sr = new StringReader(reader.ReadToEnd());

          JsonReader jreader = new JsonTextReader(sr);
          JsonSerializer jss = new JsonSerializer();
          responseData = jss.Deserialize<Dictionary<string, dynamic>>(jreader);
          reader.Close();
          responseStream.Close();
      }

   return responseData;
  }
Public Function Preauthorization() As Dictionary(Of String, Object)
  Dim payload As String = "{""payload"":""eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7ImNyZWRpdF9jYXJkIjp7ImNhcmRfaG9sZGVyX25hbWUiOiJKb2huIERvZSIsIm51bWJlciI6IjQxMTExMTExMTExMTExMTEiLCJleHBpcmF0aW9uX21vbnRoIjoiMDEiLCJleHBpcmF0aW9uX3llYXIiOiIyMiIsImN2diI6IjEyMyJ9LCJjdXN0b21lciI6eyJmaXJzdF9uYW1lIjoiSm9obiIsImxhc3RfbmFtZSI6IkRvZSIsImJpbGxpbmdfYWRkcmVzcyI6eyJsaW5lMSI6IlZpY2VudGUgTWFkcmlnYWwgQnVpbGRpbmciLCJsaW5lMiI6IkF5YWxhIEF2ZW51ZSIsImNpdHlfbXVuaWNpcGFsaXR5IjoiTWFrYXRpIENpdHkiLCJ6aXAiOiIxMjM0Iiwic3RhdGVfcHJvdmluY2VfcmVnaW9uIjoiTWV0cm8gTWFuaWxhIiwiY291bnRyeV9jb2RlIjoiUEgifSwic2hpcHBpbmdfYWRkcmVzcyI6eyJsaW5lMSI6IlZpY2VudGUgTWFkcmlnYWwgQnVpbGRpbmciLCJsaW5lMiI6IkF5YWxhIEF2ZW51ZSIsImNpdHlfbXVuaWNpcGFsaXR5IjoiTWFrYXRpIENpdHkiLCJ6aXAiOiIxMjM0Iiwic3RhdGVfcHJvdmluY2VfcmVnaW9uIjoiTWV0cm8gTWFuaWxhIiwiY291bnRyeV9jb2RlIjoiUEgifSwiY29udGFjdCI6eyJlbWFpbCI6ImpvaG5kb2VAZG9tYWluLmNvbSIsIm1vYmlsZSI6Iis2MzkxMjM0NTY3ODkifX0sInBheW1lbnQiOnsiZGVzY3JpcHRpb24iOiJQYXltZW50IGZvciBhIHByb2R1Y3QiLCJhbW91bnQiOjEwMDAuNSwiY3VycmVuY3kiOiJQSFAiLCJvcHRpb24iOiJleUowZVhBaU9pSktWMVFpTENKaGJHY2lPaUpJVXpJMU5pSjkuZXlKcGMzTWlPaUpVVEZCRklpd2ljM1ZpSWpvaVZFeFFSU0JDWVhObElGSnZkWFJsY2lCQmRYUm9aVzUwYVdOaGRHbHZiaUlzSW1GMVpDSTZJbFJNVUVVZ1FtRnpaU0JTYjNWMFpYSWlMQ0psZUhBaU9qRTJNamd3TkRVeU9UQXNJbWxoZENJNk1UWXlOemczTWpRNU1Dd2lhblJwSWpvaVkyWmtNall3TnprdFptUm1OQzAwWVdRM0xUazROMlF0WVdJd01tVmhZVGxpTWpjMklpd2laR0YwWVNJNklqVTBNalUxTmpGaExXWTNNV1V0TkdRNVpTMDVNVFV5TFRsbE5UQTVOV1l3TldVeU5TSjkuYWJORUd0RVpEa29kWVhlYU92MG5rMmhWbWl2MUdzZnNDaHBrbl8yRVFfQSIsIm1lcmNoYW50X3JlZmVyZW5jZV9pZCI6IklOVi0xMjMiLCJvdGhlcl9yZWZlcmVuY2VzIjpbIlJFRjEiLCJSRUYyIl19LCJyb3V0ZSI6eyJjYWxsYmFja191cmwiOiJodHRwczovL2FsdHBheW5ldC5jb20iLCJub3RpZnlfdXNlciI6dHJ1ZX0sInRpbWVfb2Zmc2V0IjoiKzA4OjAwIn19.tdtMETGcPZ2eBoNLMj2LOla2xWSvjzZ_H9kRfF47c28""}"
  Dim url As String = "https://test-api.tlpe.io/preauthorization"
  Dim request As WebRequest = WebRequest.Create(url)
  request.Method = "POST"
  request.Headers.Add("Authorization", "{integratorToken}")
  request.ContentType = "application/json"
  Dim byteArray As Byte() = Encoding.UTF8.GetBytes(payload)
  request.ContentLength = byteArray.Length
  Dim dataStream As Stream = request.GetRequestStream()
  dataStream.Write(byteArray, 0, byteArray.Length)
  dataStream.Close()

  Dim response As WebResponse = request.GetResponse()
  Dim responseStream = response.GetResponseStream()
  Dim reader As New StreamReader(responseStream)
  Dim responseReader As StringReader = New StringReader(reader.ReadToEnd())
  Dim jreader As JsonReader = New JsonTextReader(responseReader)
  reader.Close()
  responseStream.Close()
  response.Close()
  Dim jss As New JsonSerializer()
  Dim responseData As Dictionary(Of String, Object) = jss.Deserialize(Of Dictionary(Of String, Object))(jreader)

  Return responseData
End Function
import http.client
import json

conn = http.client.HTTPSConnection('test-api.tlpe.io')
payload = json.dumps({'payload': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7ImNyZWRpdF9jYXJkIjp7ImNhcmRfaG9sZGVyX25hbWUiOiJKb2huIERvZSIsIm51bWJlciI6IjQxMTExMTExMTExMTExMTEiLCJleHBpcmF0aW9uX21vbnRoIjoiMDEiLCJleHBpcmF0aW9uX3llYXIiOiIyMiIsImN2diI6IjEyMyJ9LCJjdXN0b21lciI6eyJmaXJzdF9uYW1lIjoiSm9obiIsImxhc3RfbmFtZSI6IkRvZSIsImJpbGxpbmdfYWRkcmVzcyI6eyJsaW5lMSI6IlZpY2VudGUgTWFkcmlnYWwgQnVpbGRpbmciLCJsaW5lMiI6IkF5YWxhIEF2ZW51ZSIsImNpdHlfbXVuaWNpcGFsaXR5IjoiTWFrYXRpIENpdHkiLCJ6aXAiOiIxMjM0Iiwic3RhdGVfcHJvdmluY2VfcmVnaW9uIjoiTWV0cm8gTWFuaWxhIiwiY291bnRyeV9jb2RlIjoiUEgifSwic2hpcHBpbmdfYWRkcmVzcyI6eyJsaW5lMSI6IlZpY2VudGUgTWFkcmlnYWwgQnVpbGRpbmciLCJsaW5lMiI6IkF5YWxhIEF2ZW51ZSIsImNpdHlfbXVuaWNpcGFsaXR5IjoiTWFrYXRpIENpdHkiLCJ6aXAiOiIxMjM0Iiwic3RhdGVfcHJvdmluY2VfcmVnaW9uIjoiTWV0cm8gTWFuaWxhIiwiY291bnRyeV9jb2RlIjoiUEgifSwiY29udGFjdCI6eyJlbWFpbCI6ImpvaG5kb2VAZG9tYWluLmNvbSIsIm1vYmlsZSI6Iis2MzkxMjM0NTY3ODkifX0sInBheW1lbnQiOnsiZGVzY3JpcHRpb24iOiJQYXltZW50IGZvciBhIHByb2R1Y3QiLCJhbW91bnQiOjEwMDAuNSwiY3VycmVuY3kiOiJQSFAiLCJvcHRpb24iOiJleUowZVhBaU9pSktWMVFpTENKaGJHY2lPaUpJVXpJMU5pSjkuZXlKcGMzTWlPaUpVVEZCRklpd2ljM1ZpSWpvaVZFeFFSU0JDWVhObElGSnZkWFJsY2lCQmRYUm9aVzUwYVdOaGRHbHZiaUlzSW1GMVpDSTZJbFJNVUVVZ1FtRnpaU0JTYjNWMFpYSWlMQ0psZUhBaU9qRTJNamd3TkRVeU9UQXNJbWxoZENJNk1UWXlOemczTWpRNU1Dd2lhblJwSWpvaVkyWmtNall3TnprdFptUm1OQzAwWVdRM0xUazROMlF0WVdJd01tVmhZVGxpTWpjMklpd2laR0YwWVNJNklqVTBNalUxTmpGaExXWTNNV1V0TkdRNVpTMDVNVFV5TFRsbE5UQTVOV1l3TldVeU5TSjkuYWJORUd0RVpEa29kWVhlYU92MG5rMmhWbWl2MUdzZnNDaHBrbl8yRVFfQSIsIm1lcmNoYW50X3JlZmVyZW5jZV9pZCI6IklOVi0xMjMiLCJvdGhlcl9yZWZlcmVuY2VzIjpbIlJFRjEiLCJSRUYyIl19LCJyb3V0ZSI6eyJjYWxsYmFja191cmwiOiJodHRwczovL2FsdHBheW5ldC5jb20iLCJub3RpZnlfdXNlciI6dHJ1ZX0sInRpbWVfb2Zmc2V0IjoiKzA4OjAwIn19.tdtMETGcPZ2eBoNLMj2LOla2xWSvjzZ_H9kRfF47c28'})
headers = {'Content-Type': 'application/json',
         'Authorization': '{integratorToken}'}
conn.request('POST', '/preauthorization', payload, headers)
res = conn.getresponse()
data = res.read()
print data.decode('utf-8'))
<?php
$curl = curl_init();

curl_setopt_array($curl, array(
   CURLOPT_URL => 'https://test-api.tlpe.io/preauthorization',
   CURLOPT_RETURNTRANSFER => true,
   CURLOPT_ENCODING => '',
   CURLOPT_MAXREDIRS => 10,
   CURLOPT_TIMEOUT => 0,
   CURLOPT_FOLLOWLOCATION => true,
   CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
   CURLOPT_CUSTOMREQUEST => 'POST',
   CURLOPT_POSTFIELDS => '{

                  "payload":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7ImNyZWRpdF9jYXJkIjp7ImNhcmRfaG9sZGVyX25hbWUiOiJKb2huIERvZSIsIm51bWJlciI6IjQxMTExMTExMTExMTExMTEiLCJleHBpcmF0aW9uX21vbnRoIjoiMDEiLCJleHBpcmF0aW9uX3llYXIiOiIyMiIsImN2diI6IjEyMyJ9LCJjdXN0b21lciI6eyJmaXJzdF9uYW1lIjoiSm9obiIsImxhc3RfbmFtZSI6IkRvZSIsImJpbGxpbmdfYWRkcmVzcyI6eyJsaW5lMSI6IlZpY2VudGUgTWFkcmlnYWwgQnVpbGRpbmciLCJsaW5lMiI6IkF5YWxhIEF2ZW51ZSIsImNpdHlfbXVuaWNpcGFsaXR5IjoiTWFrYXRpIENpdHkiLCJ6aXAiOiIxMjM0Iiwic3RhdGVfcHJvdmluY2VfcmVnaW9uIjoiTWV0cm8gTWFuaWxhIiwiY291bnRyeV9jb2RlIjoiUEgifSwic2hpcHBpbmdfYWRkcmVzcyI6eyJsaW5lMSI6IlZpY2VudGUgTWFkcmlnYWwgQnVpbGRpbmciLCJsaW5lMiI6IkF5YWxhIEF2ZW51ZSIsImNpdHlfbXVuaWNpcGFsaXR5IjoiTWFrYXRpIENpdHkiLCJ6aXAiOiIxMjM0Iiwic3RhdGVfcHJvdmluY2VfcmVnaW9uIjoiTWV0cm8gTWFuaWxhIiwiY291bnRyeV9jb2RlIjoiUEgifSwiY29udGFjdCI6eyJlbWFpbCI6ImpvaG5kb2VAZG9tYWluLmNvbSIsIm1vYmlsZSI6Iis2MzkxMjM0NTY3ODkifX0sInBheW1lbnQiOnsiZGVzY3JpcHRpb24iOiJQYXltZW50IGZvciBhIHByb2R1Y3QiLCJhbW91bnQiOjEwMDAuNSwiY3VycmVuY3kiOiJQSFAiLCJvcHRpb24iOiJleUowZVhBaU9pSktWMVFpTENKaGJHY2lPaUpJVXpJMU5pSjkuZXlKcGMzTWlPaUpVVEZCRklpd2ljM1ZpSWpvaVZFeFFSU0JDWVhObElGSnZkWFJsY2lCQmRYUm9aVzUwYVdOaGRHbHZiaUlzSW1GMVpDSTZJbFJNVUVVZ1FtRnpaU0JTYjNWMFpYSWlMQ0psZUhBaU9qRTJNamd3TkRVeU9UQXNJbWxoZENJNk1UWXlOemczTWpRNU1Dd2lhblJwSWpvaVkyWmtNall3TnprdFptUm1OQzAwWVdRM0xUazROMlF0WVdJd01tVmhZVGxpTWpjMklpd2laR0YwWVNJNklqVTBNalUxTmpGaExXWTNNV1V0TkdRNVpTMDVNVFV5TFRsbE5UQTVOV1l3TldVeU5TSjkuYWJORUd0RVpEa29kWVhlYU92MG5rMmhWbWl2MUdzZnNDaHBrbl8yRVFfQSIsIm1lcmNoYW50X3JlZmVyZW5jZV9pZCI6IklOVi0xMjMiLCJvdGhlcl9yZWZlcmVuY2VzIjpbIlJFRjEiLCJSRUYyIl19LCJyb3V0ZSI6eyJjYWxsYmFja191cmwiOiJodHRwczovL2FsdHBheW5ldC5jb20iLCJub3RpZnlfdXNlciI6dHJ1ZX0sInRpbWVfb2Zmc2V0IjoiKzA4OjAwIn19.tdtMETGcPZ2eBoNLMj2LOla2xWSvjzZ_H9kRfF47c28"

                  }',
   CURLOPT_HTTPHEADER => array(
      'Content-Type: application/json',
      'Authorization: {integratorToken}'
   ) ,
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
require 'rest-client'
require 'json'

response = RestClient::Request.execute(
method:  :post, 
url:     "https://test-api.tlpe.io/preauthorization",
payload: '{"payload": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7ImNyZWRpdF9jYXJkIjp7ImNhcmRfaG9sZGVyX25hbWUiOiJKb2huIERvZSIsIm51bWJlciI6IjQxMTExMTExMTExMTExMTEiLCJleHBpcmF0aW9uX21vbnRoIjoiMDEiLCJleHBpcmF0aW9uX3llYXIiOiIyMiIsImN2diI6IjEyMyJ9LCJjdXN0b21lciI6eyJmaXJzdF9uYW1lIjoiSm9obiIsImxhc3RfbmFtZSI6IkRvZSIsImJpbGxpbmdfYWRkcmVzcyI6eyJsaW5lMSI6IlZpY2VudGUgTWFkcmlnYWwgQnVpbGRpbmciLCJsaW5lMiI6IkF5YWxhIEF2ZW51ZSIsImNpdHlfbXVuaWNpcGFsaXR5IjoiTWFrYXRpIENpdHkiLCJ6aXAiOiIxMjM0Iiwic3RhdGVfcHJvdmluY2VfcmVnaW9uIjoiTWV0cm8gTWFuaWxhIiwiY291bnRyeV9jb2RlIjoiUEgifSwic2hpcHBpbmdfYWRkcmVzcyI6eyJsaW5lMSI6IlZpY2VudGUgTWFkcmlnYWwgQnVpbGRpbmciLCJsaW5lMiI6IkF5YWxhIEF2ZW51ZSIsImNpdHlfbXVuaWNpcGFsaXR5IjoiTWFrYXRpIENpdHkiLCJ6aXAiOiIxMjM0Iiwic3RhdGVfcHJvdmluY2VfcmVnaW9uIjoiTWV0cm8gTWFuaWxhIiwiY291bnRyeV9jb2RlIjoiUEgifSwiY29udGFjdCI6eyJlbWFpbCI6ImpvaG5kb2VAZG9tYWluLmNvbSIsIm1vYmlsZSI6Iis2MzkxMjM0NTY3ODkifX0sInBheW1lbnQiOnsiZGVzY3JpcHRpb24iOiJQYXltZW50IGZvciBhIHByb2R1Y3QiLCJhbW91bnQiOjEwMDAuNSwiY3VycmVuY3kiOiJQSFAiLCJvcHRpb24iOiJleUowZVhBaU9pSktWMVFpTENKaGJHY2lPaUpJVXpJMU5pSjkuZXlKcGMzTWlPaUpVVEZCRklpd2ljM1ZpSWpvaVZFeFFSU0JDWVhObElGSnZkWFJsY2lCQmRYUm9aVzUwYVdOaGRHbHZiaUlzSW1GMVpDSTZJbFJNVUVVZ1FtRnpaU0JTYjNWMFpYSWlMQ0psZUhBaU9qRTJNamd3TkRVeU9UQXNJbWxoZENJNk1UWXlOemczTWpRNU1Dd2lhblJwSWpvaVkyWmtNall3TnprdFptUm1OQzAwWVdRM0xUazROMlF0WVdJd01tVmhZVGxpTWpjMklpd2laR0YwWVNJNklqVTBNalUxTmpGaExXWTNNV1V0TkdRNVpTMDVNVFV5TFRsbE5UQTVOV1l3TldVeU5TSjkuYWJORUd0RVpEa29kWVhlYU92MG5rMmhWbWl2MUdzZnNDaHBrbl8yRVFfQSIsIm1lcmNoYW50X3JlZmVyZW5jZV9pZCI6IklOVi0xMjMiLCJvdGhlcl9yZWZlcmVuY2VzIjpbIlJFRjEiLCJSRUYyIl19LCJyb3V0ZSI6eyJjYWxsYmFja191cmwiOiJodHRwczovL2FsdHBheW5ldC5jb20iLCJub3RpZnlfdXNlciI6dHJ1ZX0sInRpbWVfb2Zmc2V0IjoiKzA4OjAwIn19.tdtMETGcPZ2eBoNLMj2LOla2xWSvjzZ_H9kRfF47c28"}',
headers: { authorization: '{integratorToken}', content_type: 'application/json', accept: 'application/json'}
)

responseJson = JSON.parse(response)

puts JSON.pretty_generate(responseJson)
var request = require('request');
var options = {
   'method': 'POST',
   'url': 'https://test-api.tlpe.io/preauthorization',
   'headers': {
      'Content-Type': 'application/json',
      'Authorization': '{integratorToken}'
   },
   body: JSON.stringify({
      "payload": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7ImNyZWRpdF9jYXJkIjp7ImNhcmRfaG9sZGVyX25hbWUiOiJKb2huIERvZSIsIm51bWJlciI6IjQxMTExMTExMTExMTExMTEiLCJleHBpcmF0aW9uX21vbnRoIjoiMDEiLCJleHBpcmF0aW9uX3llYXIiOiIyMiIsImN2diI6IjEyMyJ9LCJjdXN0b21lciI6eyJmaXJzdF9uYW1lIjoiSm9obiIsImxhc3RfbmFtZSI6IkRvZSIsImJpbGxpbmdfYWRkcmVzcyI6eyJsaW5lMSI6IlZpY2VudGUgTWFkcmlnYWwgQnVpbGRpbmciLCJsaW5lMiI6IkF5YWxhIEF2ZW51ZSIsImNpdHlfbXVuaWNpcGFsaXR5IjoiTWFrYXRpIENpdHkiLCJ6aXAiOiIxMjM0Iiwic3RhdGVfcHJvdmluY2VfcmVnaW9uIjoiTWV0cm8gTWFuaWxhIiwiY291bnRyeV9jb2RlIjoiUEgifSwic2hpcHBpbmdfYWRkcmVzcyI6eyJsaW5lMSI6IlZpY2VudGUgTWFkcmlnYWwgQnVpbGRpbmciLCJsaW5lMiI6IkF5YWxhIEF2ZW51ZSIsImNpdHlfbXVuaWNpcGFsaXR5IjoiTWFrYXRpIENpdHkiLCJ6aXAiOiIxMjM0Iiwic3RhdGVfcHJvdmluY2VfcmVnaW9uIjoiTWV0cm8gTWFuaWxhIiwiY291bnRyeV9jb2RlIjoiUEgifSwiY29udGFjdCI6eyJlbWFpbCI6ImpvaG5kb2VAZG9tYWluLmNvbSIsIm1vYmlsZSI6Iis2MzkxMjM0NTY3ODkifX0sInBheW1lbnQiOnsiZGVzY3JpcHRpb24iOiJQYXltZW50IGZvciBhIHByb2R1Y3QiLCJhbW91bnQiOjEwMDAuNSwiY3VycmVuY3kiOiJQSFAiLCJvcHRpb24iOiJleUowZVhBaU9pSktWMVFpTENKaGJHY2lPaUpJVXpJMU5pSjkuZXlKcGMzTWlPaUpVVEZCRklpd2ljM1ZpSWpvaVZFeFFSU0JDWVhObElGSnZkWFJsY2lCQmRYUm9aVzUwYVdOaGRHbHZiaUlzSW1GMVpDSTZJbFJNVUVVZ1FtRnpaU0JTYjNWMFpYSWlMQ0psZUhBaU9qRTJNamd3TkRVeU9UQXNJbWxoZENJNk1UWXlOemczTWpRNU1Dd2lhblJwSWpvaVkyWmtNall3TnprdFptUm1OQzAwWVdRM0xUazROMlF0WVdJd01tVmhZVGxpTWpjMklpd2laR0YwWVNJNklqVTBNalUxTmpGaExXWTNNV1V0TkdRNVpTMDVNVFV5TFRsbE5UQTVOV1l3TldVeU5TSjkuYWJORUd0RVpEa29kWVhlYU92MG5rMmhWbWl2MUdzZnNDaHBrbl8yRVFfQSIsIm1lcmNoYW50X3JlZmVyZW5jZV9pZCI6IklOVi0xMjMiLCJvdGhlcl9yZWZlcmVuY2VzIjpbIlJFRjEiLCJSRUYyIl19LCJyb3V0ZSI6eyJjYWxsYmFja191cmwiOiJodHRwczovL2FsdHBheW5ldC5jb20iLCJub3RpZnlfdXNlciI6dHJ1ZX0sInRpbWVfb2Zmc2V0IjoiKzA4OjAwIn19.tdtMETGcPZ2eBoNLMj2LOla2xWSvjzZ_H9kRfF47c28"
   })
};
request(options, function(error, response) {
   if (error) throw new Error(error);
   console.log(response.body);
});

Download Postman request here

200 Successful Response - Non-3DS

RESPONSE SCHEMA: application/json

timestamp
string
Transaction timestamp

status
string
HTTP status code

message
string
HTTP status code message/description

path
string
Endpoint path used for the transaction

data
object
Contains transaction-related response

transaction_id
string
Payment reference number of the transaction

status_code
string
API status code

status_description
string
API status code message/description

200 Successful Response - 3DS

RESPONSE SCHEMA: application/json

timestamp
string
Transaction timestamp

status
string
HTTP status code

message
string
HTTP status code message/description

path
string
Endpoint path used for the transaction

data
object
Contains transaction-related response

transaction_id
string
Payment reference number of the transaction

status_code
string
API status code

status_description
string
API status code message/description

redirect_url
string
Payment URL of the transaction

422 Erroneous Response

RESPONSE SCHEMA: application/json

timestamp
string
Transaction timestamp

status
string
HTTP status code

message
string
HTTP status code message/description

path
string
Endpoint path used for the transaction

data
object
Contains transaction-related response

status_code
string
API status code

status_description
string
API status code message/description

Response Samples

{
   "timestamp":"2020-07-14T09:29:03.806+0000",
   "status":200,
   "message":"Request processed successfully",
   "path":"/preauthorization",
   "data":{
      "transaction_id":"{transactionId}",
      "status_code":"OK.08.00",
      "status_description":"Preauthorization successful"
   }
}
{
   "timestamp":"2020-07-14T09:29:03.806+0000",
   "status":200,
   "message":"Request processed successfully",
   "path":"/preauthorization",
   "data":{
      "transaction_id":"{transactionId}",
      "status_description":"Preauthorization pending",
      "status_code":"OK.08.10",
      "redirect_url":"{redirectURL}"
   }
}
{
   "timestamp":"2020-07-14T09:29:49.843+0000",
   "status":422,
   "messages":"Preauthorization failed",
   "path":"/preauthorization",
   "data":{
      "status_code":"ER.40.00",
      "status_description":"Preauthorization failed"
   }
}

See API Reference > Response Messages for a guided reference.