Tylt: API Documentation
  • Introduction
    • Introduction
    • Getting Started
    • Generating API Keys
    • Signing API Payloads
    • Important Concepts
    • Merchant Verification
    • Tylt Prime (UPI to Crypto Solution)
      • API Reference
        • Create a Pay-in Instance
        • Create a Pay-out Instance
        • Webhook for Tylt Prime
        • Get Instance Information
        • Get Pay-In Transaction Information
        • Get Pay-Out Transaction Information
    • Tylt Prime (UPI to Crypto Solution - H2H)
      • API Reference ( Pay-In)
        • Create a Pay-in Instance
        • Buyer Confirms Payment
        • Webhook for Tylt Prime
        • Get Instance Details
        • Get Pay-In Transaction Information
        • Get List of Fiat Currency and Supported Payment Methods
        • Get List of Supported Crypto Currency for Settlement
        • Get Conversion Rates
  • Tylt CPG (Crypto Payment Gateway)
    • API Reference
      • Accept Crypto Payments
        • Creating a Pay-in Request
        • Get Pay-In Transaction History
        • Get Pay-In Transaction Information
      • Make Crypto Payouts
        • Creating a Payout Request
        • Get Pay-Out Transaction History
        • Get Pay-Out Transaction Information
      • Supporting API's
        • Get Supported Crypto Currencies List
        • Get Supported Fiat Currencies
        • Get Account Balance / Holdings
        • Get Supported Crypto Networks
        • Supported Base Currency List
      • Webhook
    • Use Cases
      • E-commerce Flow
      • Withdrawal Flow
Powered by GitBook
On this page
  1. Introduction
  2. Tylt Prime (UPI to Crypto Solution - H2H)
  3. API Reference ( Pay-In)

Create a Pay-in Instance

This endpoint allows you to create a new payment instance and receive a in the response an instanceId.The instanceId can be used further along with the other exposed API's to create a completely customisable host to host integration.

Endpoint

POSThttps://api.tylt.money/h2h/in/upi/createPayinInstance

Request Headers

Name
Type
Example
Description

X-TLP-APIKEY

string

93ee3c5e133697251b5362bcf9cc8532476785t8768075616f58d88

Your Tylt API Key, used to identify your account in API requests.

X-TLP-SIGNATURE

string

d0afef3853dfc8489c8b9affa5825171fdd7y7685675e4966a05f66ed2b3eaf9462b3c9c0

HMAC SHA-256 signature generated using the API Secret Key to secure the request.

When using the API, ensure to include your API Key and generate the signature for the request payload using your API Secret. The tables provided above contain example values for illustration purposes only. Please refer to the code snippets for detailed instructions on how to sign the request and generate the signature properly.

Request Body

Field Name

Type

Description

userDetails

JSON Object

Custom fields associated with the user, supplied by the merchant. These fields are included in webhook notifications and other API responses for easy reference and tracking. An empty object can be sent.

merchantOrderId

string

Mandatory.A UUID used by the merchant to reference this instance or any transaction related to it.

callBackUrl

string

Mandatory.The URL to which payment status updates are sent.

amount

number

Mandatory. This is the amount the user wants to deposit in USDT or INR equivalent. If this field is empty user can enter the value in the payment flow.

currencySymbol

string

Mandatory. Supported Currency is "USDT" or "INR" only.

userEmail

string

Mandatory. The emailId of the end user.

isKYCNeeded

number

1 or 0. If set to 0 the user will not be required to complete KYC or provide KYC. If field is in passed, default behaviour is KYC is required. This bypass needs to be approved by the admin for the Merchant.

isUTRNeeded

number

To be set Mandatorily as 1. The user will be required to provide the UTR (Unique Transaction Reference) number after making the payment. This is a recommended setting as it significantly reduces payment failures, disputes, and chargebacks while also enabling seamless processing through our automated Lightning Bridge.

Flow Modularity

  1. KYC Bypass:

    • In certain use cases, KYC verification may not be required for the end user.

    • To bypass KYC, set isKYCNeeded to 0.

    • When enabled, the user will not be required to complete KYC, and any existing KYC records will not be checked.

    • Important: Merchants must have admin pre-authorisation to use the KYC bypass feature.

Code Snippet

const axios = require('axios');
const crypto = require('crypto');

// Replace with your API Key and Secret
const apiKey = 'your-api-key';
const apiSecret = 'your-api-secret';

// Request body
const requestBody = {
    userDetails: {},
    amount: 250,
    currencySymbol: 'INR',
    merchantOrderId: 'b73b73b-87wtbc-q36gbc-331n3',
    callBackUrl: 'https://www.test.com/callback',
    redirectUrl: 'https://www.test.com/callback',
    userEmail: 'test@test.com'
};

// Convert request body to JSON
const raw = JSON.stringify(requestBody);

// Function to create HMAC SHA-256 signature
const createSignature = (secret, data) => {
    return crypto.createHmac('sha256', secret)
                 .update(data)
                 .digest('hex');
};

// Generate signature
const signature = createSignature(apiSecret, raw);

// Define headers
const headers = {
    "Content-Type": "application/json",
    "X-TLP-APIKEY": apiKey,
    "X-TLP-SIGNATURE": signature
};

// Send the request
axios.post('https://api.tylt.money/h2h/in/upi/createPayinInstance', raw, { headers })
    .then(response => console.log("Success:", response.data))
    .catch(error => console.error("Error:", error));
import requests
import hmac
import hashlib
import json

# Replace with your API Key and Secret
api_key = 'your-api-key'
api_secret = 'your-api-secret'

# Request body
request_body = {
    "userDetails": {},
    "amount": 250,
    "currencySymbol": 'INR',
    "merchantOrderId": 'b73b73b-87wtbc-q36gbc-331n3',
    "callBackUrl": 'https://www.test.com/callback',
    "redirectUrl": 'https://www.test.com/callback',
    "userEmail": 'test@test.com'
}

# Convert request body to JSON
raw = json.dumps(request_body, separators=(',', ':'), ensure_ascii=False)

# Function to create HMAC SHA-256 signature
def create_signature(secret, data):
    return hmac.new(secret.encode(), data.encode(), hashlib.sha256).hexdigest()

# Generate signature
signature = create_signature(api_secret, raw)

# Define headers
headers = {
    "Content-Type": "application/json",
    "X-TLP-APIKEY": api_key,
    "X-TLP-SIGNATURE": signature
}

# Send the request
response = requests.post('https://api.tylt.money/h2h/in/upi/createPayinInstance', headers=headers, data=raw)
print("Response:", response.json())

Response

{
    "msg": "Trade created successfully.",
    "data": {
        "instanceId": "51138bbb-fe4e-11ef-bcfd-42010a280107",
        "tradeId": 2081,
        "accounts": {
            "transactionType": "pay-in",
            "amountPaidInLocalCurrency": 215.04999999999998,
            "localCurrency": "INR",
            "conversionRate": 93.5,
            "amountPaidInCryptoCurrency": 2.3,
            "cryptoCurrencySymbol": "USDT",
            "MDR_Rate": 4,
            "merchantAccountCredited": null,
            "merchantAccountDebited": null
        }
    }
}

Field Name

Type

Description

instanceId

string

The instance ID generated by Tylt, used as a global identifier.

PreviousAPI Reference ( Pay-In)NextBuyer Confirms Payment

Last updated 24 days ago