Teleport

Teleport Pay

Developer Portal

Getting Started

Teleport Pay is a payment gateway supporting 30+ methods — crypto (BTC, ETH, USDT), bank cards (Visa, Mastercard), SEPA, SWIFT, SBP, P2P, and bank transfers. Create invoices via REST API, redirect customers to a hosted payment page, and receive webhook notifications when payment status changes.

Base URL https://gate.teleport.ltd/api/crypto-acquiring/v1

Authentication

All API requests require an API key passed in the X-API-Key header.

X-API-Key: tk_your_api_key_here

Go to the API Keys tab to generate your key.

Endpoints

GET /payment-methods/

Returns available payment method groups and their methods.

curl -s https://gate.teleport.ltd/api/crypto-acquiring/v1/payment-methods/ \
  -H "X-API-Key: tk_your_key"
Show response example
{
  "success": true,
  "groups": [
    {
      "id": "crypto",
      "name": "Crypto",
      "allowed": true,
      "methods": [...]
    }
  ]
}
GET /currencies/

Returns available crypto and fiat currencies for invoicing.

curl -s https://gate.teleport.ltd/api/crypto-acquiring/v1/currencies/ \
  -H "X-API-Key: tk_your_key"
POST /invoice/create/

Creates a payment invoice and returns a hosted payment page URL.

curl -X POST https://gate.teleport.ltd/api/crypto-acquiring/v1/invoice/create/ \
  -H "X-API-Key: tk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "order_id": "1234",
    "amount": 49.99,
    "currency": "USD",
    "description": "Order #1234",
    "customer_email": "customer@example.com",
    "return_url": "https://yoursite.com/success/",
    "payment_methods": ["crypto", "cards"]
  }'
Parameters
FieldTypeRequiredDescription
amountnumberYesPayment amount
currencystringYesCurrency code (USD, EUR, USDT...)
order_idstringNoYour internal order ID
descriptionstringNoPayment description
customer_emailstringNoCustomer email
customer_namestringNoCustomer name
return_urlstringNoRedirect URL after payment
cancel_urlstringNoRedirect URL on cancel
webhook_urlstringNoWebhook URL (falls back to key default)
payment_methodsarrayNoe.g. ["crypto", "cards"]. Default: all available
Show response example
{
  "success": true,
  "payment_id": "pay_8c8e62e273b54997",
  "bill_uid": "8c8e62e2-73b5-4997-...",
  "payment_url": "https://pay.teleport.ltd/bill/...",
  "expires_at": "2026-03-28T06:40:02...",
  "payment_methods": ["crypto", "cards"]
}
GET /key/info/

Returns current API key settings (webhook URL, name, status).

curl -s https://gate.teleport.ltd/api/crypto-acquiring/v1/key/info/ \
  -H "X-API-Key: tk_your_key"
PATCH /key/update/

Update API key settings (webhook_url, name).

curl -X PATCH https://gate.teleport.ltd/api/crypto-acquiring/v1/key/update/ \
  -H "X-API-Key: tk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"webhook_url": "https://yoursite.com/webhook/"}'

Webhooks

When an invoice status changes, a POST request is sent to your webhook URL.

{
  "event": "invoice.status_changed",
  "payment_id": "pay_8c8e62e273b54997",
  "bill_uid": "8c8e62e2-...",
  "order_id": "1234",
  "status": "paid",
  "amount": 49.99,
  "currency": "USD",
  "timestamp": 1711608002
}

Statuses

StatusDescriptionAction
paidPayment confirmedFulfill the order
expiredInvoice expiredCancel the order
cancelledCancelled by customerCancel the order
failedPayment failedMark as failed
manual_confirmationUnderpayment detectedManual review

Signature Verification

Every webhook includes an X-Webhook-Signature header. Verify using HMAC-SHA256 with your Webhook Secret.

# Python
import hmac, hashlib

def verify_webhook(body: bytes, signature: str, secret: str) -> bool:
    sig = signature.removeprefix('sha256=')
    expected = hmac.new(secret.encode(), body, hashlib.sha256).hexdigest()
    return hmac.compare_digest(expected, sig)

Retry Policy

AttemptDelay
1st retry30 seconds
2nd retry5 minutes
3rd retry30 minutes

Always return HTTP 200 to acknowledge receipt.

Payment Flow

Your Server                Teleport Pay              Customer
    |                           |                        |
    |-- POST /invoice/create/ ->|                        |
    |<- { payment_url } --------|                        |
    |                           |                        |
    |-- redirect customer ----->|----------------------->|
    |                           |    hosted payment page  |
    |                           |<-- customer pays -------|
    |                           |                        |
    |<-- webhook (paid) --------|                        |
    |                           |-- redirect to -------->|
    |                           |   return_url           |