Skip to content

GET /info

Get information about your application, branch, and quota usage.

Endpoint

http
GET /info

Full URL: https://api.easyslip.com/v2/info

Authentication

Required. Uses HMAC-SHA256 with your branch UUID as X-API-Key. See Authentication Guide.

HeaderDescription
X-API-KeyYour branch UUID
X-TimestampUnix timestamp (seconds)
X-NonceUUID v4, unique per request
X-SignatureHMAC-SHA256 signature

Request

No request body required.

Type Definitions

typescript
// Response Types
interface InfoResponse {
  success: true;
  data: InfoData;
  message: string;
}

interface InfoData {
  application: Application;
  branch: Branch;
  account: Account;
  product: Product;
}

interface Application {
  name: string;
  autoRenew: AutoRenew;
  quota: ApplicationQuota;
}

interface AutoRenew {
  expired: boolean;
  quota: boolean;
  createdAt: string;   // ISO 8601
  expiresAt: string;   // ISO 8601
}

interface ApplicationQuota {
  used: number;
  max: number | null;       // null = unlimited
  remaining: number | null;
  totalUsed: number;
}

interface Branch {
  name: string;
  isActive: boolean;
  quota: BranchQuota;
}

interface BranchQuota {
  used: number;
  totalUsed: number;
}

interface Account {
  email: string;
  credit: number;
}

interface Product {
  name: string;
}

// Error Response
interface ErrorResponse {
  success: false;
  error: {
    code: string;
    message: string;
  };
}

Examples

bash
API_KEY="a1b2c3d4-e5f6-7890-abcd-ef1234567890"  # Branch UUID
SECRET_KEY="your_secret_key"
TIMESTAMP=$(date +%s)
NONCE=$(uuidgen | tr '[:upper:]' '[:lower:]')
BODY_HASH=$(printf '' | shasum -a 256 | cut -d' ' -f1)

STRING_TO_SIGN="GET\n/info\n${TIMESTAMP}\n${NONCE}\n${BODY_HASH}"
SIGNATURE=$(printf "${STRING_TO_SIGN}" | openssl dgst -sha256 -hmac "${SECRET_KEY}" | cut -d' ' -f2)

curl -X GET https://api.easyslip.com/v2/info \
  -H "X-API-Key: ${API_KEY}" \
  -H "X-Timestamp: ${TIMESTAMP}" \
  -H "X-Nonce: ${NONCE}" \
  -H "X-Signature: ${SIGNATURE}"
javascript
import crypto from 'crypto'

const apiKey = 'a1b2c3d4-e5f6-7890-abcd-ef1234567890' // Branch UUID
const secretKey = 'your_secret_key'
const timestamp = Math.floor(Date.now() / 1000).toString()
const nonce = crypto.randomUUID()
const bodyHash = crypto.createHash('sha256').update('').digest('hex')

const stringToSign = `GET\n/info\n${timestamp}\n${nonce}\n${bodyHash}`
const signature = crypto.createHmac('sha256', secretKey).update(stringToSign).digest('hex')

const response = await fetch('https://api.easyslip.com/v2/info', {
    headers: {
        'X-API-Key': apiKey,
        'X-Timestamp': timestamp,
        'X-Nonce': nonce,
        'X-Signature': signature,
    },
})

const result = await response.json()
console.log(result.data)
php
<?php
$apiKey = 'a1b2c3d4-e5f6-7890-abcd-ef1234567890'; // Branch UUID
$secretKey = 'your_secret_key';
$timestamp = (string) time();
$nonce = sprintf(
    '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
    mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff),
    mt_rand(0, 0x0fff) | 0x4000, mt_rand(0, 0x3fff) | 0x8000,
    mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
);
$bodyHash = hash('sha256', '');

$stringToSign = implode("\n", ['GET', '/info', $timestamp, $nonce, $bodyHash]);
$signature = hash_hmac('sha256', $stringToSign, $secretKey);

$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL => 'https://api.easyslip.com/v2/info',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        "X-API-Key: $apiKey",
        "X-Timestamp: $timestamp",
        "X-Nonce: $nonce",
        "X-Signature: $signature",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);
print_r($result['data']);
python
import hashlib
import hmac
import time
import uuid
import requests

api_key = 'a1b2c3d4-e5f6-7890-abcd-ef1234567890'  # Branch UUID
secret_key = 'your_secret_key'
timestamp = str(int(time.time()))
nonce = str(uuid.uuid4())
body_hash = hashlib.sha256(b'').hexdigest()

string_to_sign = f'GET\n/info\n{timestamp}\n{nonce}\n{body_hash}'
signature = hmac.new(secret_key.encode(), string_to_sign.encode(), hashlib.sha256).hexdigest()

response = requests.get(
    'https://api.easyslip.com/v2/info',
    headers={
        'X-API-Key': api_key,
        'X-Timestamp': timestamp,
        'X-Nonce': nonce,
        'X-Signature': signature,
    }
)

result = response.json()
print(result['data'])

Response

Success Response (200)

json
{
  "success": true,
  "data": {
    "application": {
      "name": "My Application",
      "autoRenew": {
        "expired": false,
        "quota": true,
        "createdAt": "2024-01-01T00:00:00+07:00",
        "expiresAt": "2025-01-01T00:00:00+07:00"
      },
      "quota": {
        "used": 1500,
        "max": 35000,
        "remaining": 33500,
        "totalUsed": 45000
      }
    },
    "branch": {
      "name": "Main Branch",
      "isActive": true,
      "quota": {
        "used": 500,
        "totalUsed": 12000
      }
    },
    "account": {
      "email": "[email protected]",
      "credit": 5000
    },
    "product": {
      "name": "Pro Plan"
    }
  },
  "message": "Information retrieved successfully"
}

Response Fields

FieldTypeDescription
application.namestringApplication name
application.autoRenew.expiredbooleanAuto-renew on expiry
application.autoRenew.quotabooleanAuto-renew on quota exhaustion
application.autoRenew.createdAtstringCreation timestamp (ISO 8601)
application.autoRenew.expiresAtstringExpiration timestamp (ISO 8601)
application.quota.usednumberQuota used this period
application.quota.maxnumber | nullMaximum quota (null = unlimited)
application.quota.remainingnumber | nullRemaining quota
application.quota.totalUsednumberTotal quota used all time
branch.namestringCurrent branch name
branch.isActivebooleanBranch active status
branch.quota.usednumberBranch quota used
branch.quota.totalUsednumberBranch total used
account.emailstringAccount email
account.creditnumberAvailable credit
product.namestringSubscription plan name

Error Responses

Missing Auth Headers (401)

json
{
  "success": false,
  "error": {
    "code": "MISSING_API_KEY",
    "message": "X-API-Key header is required"
  }
}

Invalid API Key (401)

json
{
  "success": false,
  "error": {
    "code": "INVALID_API_KEY",
    "message": "The provided API key is invalid"
  }
}

Branch Inactive (403)

json
{
  "success": false,
  "error": {
    "code": "BRANCH_INACTIVE",
    "message": "This API branch has been deactivated"
  }
}

Notes

  • This endpoint does not consume quota
  • Quota resets monthly based on your billing cycle
  • max: null indicates unlimited quota
  • totalUsed tracks all-time usage across all billing periods
  • Branch quota is tracked separately from application quota

Bank Slip Verification API for Thai Banking