TNI Gateway API Documentation

Welcome to the TRESSA NODE INTERNATIONAL Institutional Asset Settlement Gateway. This API allows you to process real-time transactions via multiple settlement methods.

⚡ Base URL: https://tressanodeinternational.io / http://76.13.197.139:8000
🔐 Version: v1.0.0
📋 Compliance: ISO 20022 | PCI-DSS
🟢 Status: Operational | Wallet: 0x5448c44c...f5fEC95c6

🔐 Authentication

All API endpoints require a Bearer Token. Obtain your token by authenticating with your credentials.

POST /token

Request:

curl -X POST https://tressanodeinternational.io/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "username=admin&password=Tressa2026!"

Response:

{
  "access_token": "Token",
  "token_type": "bearer"
}

❤️ Health Check

GET /health
curl https://tressanodeinternational.io/health
{
  "status": "healthy",
  "service": "TNI Gateway with Crossmint",
  "version": "0.0.1"
}

💰 Create Pay-in Wallet (Crossmint)

Membuat wallet unik untuk customer menerima pembayaran stablecoin (USDC, USDT). Wallet ini bisa digunakan sekali atau per customer.

POST /api/v1/crossmint/create-payin-wallet

Request Body:

{
  "customer_id": "customer_001",
  "chain": "base",
  "amount_expected": 10,
  "currency_expected": "USDC"
}

Response:

{
  "status": "success",
  "customer_id": "customer_001",
  "wallet_address": "0x1234...5678",
  "chain": "base",
  "message": "Transfer 10 USDC ke alamat di atas"
}

📡 Crossmint Webhook

Endpoint untuk menerima notifikasi transfer masuk dari Crossmint. Crossmint akan mengirim POST request saat customer mengirim stablecoin ke wallet address.

POST /api/v1/crossmint/webhook
# Crossmint otomatis mengirim request ke endpoint ini
# Tidak perlu dipanggil manual

🏦 Host-to-Host Crypto Settlement

Direct blockchain settlement between institutional wallets. Supports ERC-20, BEP-20, and TRC-20 networks.

POST /api/v1/settlement/host-to-host-crypto
{
  "source_wallet": "0x742d35Cc6634C0532925a3b844Bc9e7595f0b1b1",
  "destination_wallet": "0x5448c44c2088f43d651dbeAACee99aFf5fEC95c6",
  "amount": 15000.50,
  "asset_type": "USDT",
  "network": "ERC-20",
  "transaction_id": "0x7e5f4552091a69125d5dfcb7b8c2659029395bdf",
  "block_hash": "0x1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t",
  "confirmations": 12,
  "signature": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6"
}

💳 Tokenization Fiat Settlement

PCI-DSS compliant card tokenization via Visa TSP / Mastercard MDES protocol.

POST /api/v1/settlement/tokenization-fiat
{
  "card_pan_token": "tok_4111111111111111",
  "amount": 1500000.00,
  "currency": "IDR",
  "merchant_id": "MERCH_TNI_001",
  "token_cryptogram": "AQoBAAAAAAABAgMEBQYHCAkKCwwNDg8=",
  "eci_indicator": "05"
}

📄 JSON Raw Settlement

ISO 20022 compliant batch settlement via JSON raw file processing.

POST /api/v1/settlement/process-raw-json
{
  "raw_payload": {
    "bank_transaction": {
      "identification": {
        "swift_reference": "TNI2026001",
        "message_type": "MT103"
      },
      "financial": {
        "amount": {
          "sent": {"value": 2500000.00, "currency": "IDR"},
          "converted": {"value": 158.50, "currency": "USDT"}
        }
      }
    }
  }
}

📦 Batch JSON Upload

Upload multiple transactions via JSON file for batch processing.

POST /api/v1/settlement/upload-json-file
curl -X POST https://tressanodeinternational.io/api/v1/settlement/upload-json-file \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -F "file=@transactions.json"

🔐 Confirm Crypto Transaction

POST /api/v1/settlement/confirm-crypto
{
  "network": "ERC-20",
  "asset_type": "USDC",
  "amount": 1000.00,
  "transaction_hash": "0x1234...abcd",
  "payout_master_wallet": "0x5448c44c2088f43d651dbeAACee99aFf5fEC95c6"
}

🏦 Submit Fiat Transaction

POST /api/v1/settlement/submit-fiat
{
  "sender_bank": "BCA",
  "account_name": "PT TRESSA NODE",
  "amount": 500000000.00,
  "currency": "IDR",
  "swift_code": "BCAIDJA",
  "payout_wallet": "0x5448c44c2088f43d651dbeAACee99aFf5fEC95c6"
}

💳 Process Card Transaction

POST /api/v1/settlement/process-card
{
  "card_id": "card_visa_001",
  "status": "active",
  "balance": 10000000.00,
  "currency": "IDR",
  "payout_wallet": "0x5448c44c2088f43d651dbeAACee99aFf5fEC95c6",
  "metadata": {"merchant": "TNI Merchant"}
}

💎 VMML Institutional

POST /api/v1/settlement/vmml-institutional
{
  "card_number": "4111111111111111",
  "amount": 10000000.00,
  "payout_master_wallet": "0x5448c44c2088f43d651dbeAACee99aFf5fEC95c6",
  "metadata": {"type": "institutional"}
}

👥 Get Institutional Profiles

GET /v2/profiles
curl -X GET https://tressanodeinternational.io/v2/profiles \
  -H "Authorization: Bearer YOUR_TOKEN"

📋 Account Management

GET /v1/accounts?currency=USD
curl -X GET "https://tressanodeinternational.io/v1/accounts?currency=USD" \
  -H "Authorization: Bearer YOUR_TOKEN"
POST /v1/accounts
{
  "currency": "USD",
  "type": "settlement",
  "profile": 888168,
  "ownedByCustomer": true,
  "accountHolderName": "TRESSA NODE INTERNATIONAL",
  "details": {
    "legalType": "CORPORATION",
    "abartn": "021000021",
    "accountNumber": "1150010351452",
    "accountType": "CHECKING",
    "address": {
      "country": "ID",
      "city": "Jakarta",
      "firstLine": "Menara Karya",
      "state": "Jakarta Selatan",
      "postCode": "12920"
    },
    
  }
}

📊 Create Quote

POST /v3/profiles/{profile_id}/quotes
{
  "sourceCurrency": "IDR",
  "targetCurrency": "USDT",
  "targetAmount": 158.50,
  "payOut": "CRYPTO",
  "preferredPayIn": "BANK_TRANSFER",
  "targetAccount": 123456
}

💸 Make Transfer

POST /v1/transfers
{
  "targetAccount": 123456,
  "quoteUuid": "quote-123",
  "customerTransactionId": "txn-001",
  "details": {"reference": "Payment for invoice"}
}

🌍 Create Remittance

POST /gateway/integration/remittances
{
  "senderBankOfficerFullName": "John Doe",
  "receiverDetails": {
    "externalId": "RECV001",
    "firstName": "Jane",
    "lastName": "Smith",
    "email": "jane@example.com",
    "dob": "1990-01-01",
    "companyName": "PT Example",
    "address": {"city": "Jakarta", "country": "ID"},
    "accountNumber": "1150003988898"
  },
  "correspondentBankId": "BANK001",
  "bankId": "BNIIDJA"
}

📜 Transaction History

GET /api/v1/settlement/history
curl -X GET https://tressanodeinternational.io/api/v1/settlement/history \
  -H "Authorization: Bearer YOUR_TOKEN"

🛠️ Admin Endpoints

GET /api/v1/admin/view-uploads
curl -X GET https://tressanodeinternational.io/api/v1/admin/view-uploads \
  -H "Authorization: Bearer YOUR_TOKEN"
GET /api/v1/admin/download/{file_name}
curl -X GET https://tressanodeinternational.io/api/v1/admin/download/batch_20260509.json \
  -H "Authorization: Bearer YOUR_TOKEN" -O