Plutu Documentation
  • API Documentation
    • Introduction
    • Authentication
      • IP Whitelist
    • Payments
      • Sadad
      • Adfali
      • Local Bank Cards
      • MPGS
      • T-Lync Service
    • Errors
    • Testing
  • SDKs
    • Plutu PHP
    • Plutu Laravel
  • Plugins and extensions
    • Plutu WooCommerce
    • Plutu Formidable
    • Plutu OpenCart
Powered by GitBook
On this page
  • Confirm (Pay)
  • Callback handler
  • Return handler

Was this helpful?

  1. API Documentation
  2. Payments

T-Lync Service

T-Lync service from Tadawul digital solution provider

Pay

Pay the transaction.

Confirm (Pay)

POST https://api.plutus.ly/api/v1/transaction/tlync/confirm

Pay the transaction

Headers

Name
Type
Description

Authorization*

String

Bearer: [Access token]

X-API-KEY*

String

API Key

Request Body

Name
Type
Description

amount*

String

Transaction amount in Libyan dinars.

Formatting is allowed with a maximum of two decimal places: XXX, XX.X, XX.XX

invoice_no*

String

Invoice number associated with transaction, must be unique and not previously used.

mobile_number*

String

Valid mobile number format start with 9x or 09

email

String

[Optional] Email address

return_url*

String

URL after payment is completed to allow the customer to return to the order/invoice

callback_url*

String

The URL of your Instant update Server URL to track your order/invoice, instantly sent by Plutu when the transaction is complete. This URL must be publicly accessible; private and localhost URLs are not supported.

customer_ip

String

[Optional] Customer IP address

lang

String

[Optional] ar or en, by default ar

{
    "status": 200,
    "result": {
        "code": "CHECKOUT_REDIRECT",
        "redirect_url": "https://xxxxxxxxxxxxxxx"
    }
}
{
    "error": {
        "status": 4xx,
        "code": "ERROR_CODE_PLACEHOLDER",
        "message": "ERROR_MESSAGE_PLACEHOLDER"
    }
}
curl --location --request POST 'https://api.plutus.ly/api/v1/transaction/tlync/confirm' \
--header 'X-API-KEY: [API_KEY]' \
--header 'Authorization: Bearer [ACCESS_TOKEN]' \
--form 'amount="[AMONUT]"' \
--form 'invoice_no="[INVOICE_NO]"' \
--form 'return_url="[RETURN_URL]"' \
--form 'callback_url="[CALLBACK_URL]"' \
--form 'mobile_number="[MOBILE_NUMBER]"' \
--form 'customer_ip="[CUSTOMER_IP]"'
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.plutus.ly/api/v1/transaction/tlync/confirm',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array(
    'amount' => '[AMONUT]', 
    'invoice_no' => '[INVOICE_NO]', 
    'return_url' => '[RETURN_URL]', 
    'callback_url' => '[CALLBACK_URL]', 
    'mobile_number' => '[MOBILE_NUMBER]', 
    'customer_ip' => '[CUSTOMER_IP]'
  ),
  CURLOPT_HTTPHEADER => array(
    'X-API-KEY: [API_KEY]',
    'Authorization: Bearer [ACCESS_TOKEN]'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
<?php

use Plutu\Services\PlutuTlync;

$amount = 5.0; // amount in float format
$invoiceNo = 'inv-12345'; // invoice number
$returnUrl = 'https://example.com/return/handler'; // the url to handle the return from plutu after payment completed from T-Lync
$callbackUrl = 'https://example.com/callback/handler'; // the url to handle the callback trgigger from plutu after payment completed from T-Lync

try {

    $api = new PlutuTlync;
    $api->setCredentials('api_key', 'access_token', 'secret_key');
    $apiResponse = $api->confirm($amount, $invoiceNo, $returnUrl, $callbackUrl);

    if ($apiResponse->getOriginalResponse()->isSuccessful()) {

        // Redirect URL for Plutu and T-Lync checkout page
        $redirectUrl = $apiResponse->getRedirectUrl();

        // You should rediect the customer to payment checkout page
        // header("location: " . $redirectUrl);

    } elseif ($apiResponse->getOriginalResponse()->hasError()) {

        // Possible errors from Plutu API
        // @see https://docs.plutu.ly/api-documentation/errors Plutu API Error Documentation
        $errorCode = $apiResponse->getOriginalResponse()->getErrorCode();
        $errorMessage = $apiResponse->getOriginalResponse()->getErrorMessage();
        $statusCode = $apiResponse->getOriginalResponse()->getStatusCode();
        $responseData = $apiResponse->getOriginalResponse()->getBody();

    }

// Handle exceptions that may be thrown during the execution of the code
// The following are the expected exceptions that may be thrown:
// Check the "Handle Exceptions and Errors" section for more details
// 
// InvalidAccessTokenException, InvalidApiKeyException, InvalidSecretKeyException,
// InvalidAmountException, InvalidInvoiceNoException, InvalidReturnUrlException, InvalidCallbackUrlException
} catch (\Exception $e) {
    $exception = $e->getMessage();
}

Callback handler

The callback will be received from Plutu when the transaction is completed. This gives a Merchant better control of how the transaction is processed on the Merchant's side. This is useful e.g. when you want to mark an order as paid, update your shop's inventory, or add appropriate records to Merchant’s internal accounting system.

Callback parameters:

The callback is called with HTTP POST as JSON

Parameter
Description

gateway

Gateway name: tlync

approved

1 or 0 (true, false), the transaction is completed and must be checked to be 1 (true)

invoice_no

Invoice number sent in the pay request

amount

The amount sent in the request

paymet_method

The payment method in which the transaction was completed on T-Lync. Supported payment methods: tadawul, edfaly, sadad, mobicash, and moamalat

transaction_id

Plutu transaction id

hashed

Hash message authorization code (HMAC) is used to verify both the data integrity and the authorization of a message.

Return handler

Once the payment has been completed client can be redirected to the merchant-provided return URL.

Return parameters:

The callback is called with HTTP GET and with the same query string parameters as in the redirect

Parameter
Description

approved

Transaction completed

invoice_no

Invoice number sent in the pay request

hashed

Hash message authorization code (HMAC) is used to verify both the data integrity and the authorization of a message.

SHA-256 HMAC is calculated as follows:

  • The SHA-256 HMAC calculation includes all response parameters and key-value pairs except the “hashed” parameter.

  • Create an SHA-256 HMAC of the resultant string using the secret key created in the Plutu account, convert it to uppercase, and compare it with the “hashed” parameter received in the callback or return handler.

PreviousMPGSNextErrors

Last updated 6 months ago

Was this helpful?

You can review the section for all possible errors

Check out the example in the Plutu PHP Examples document on GitHub.

Errors
Confirm (Pay)