API
Bitcofy API documentation
Detailed guide for project creation, invoice issuing, webhook/IPN processing, direct payouts and payout request flow.
REST
https://api.bitcofy.pro/api/v1
Getting started
Quick start
- Create an owner cabinet account and obtain a project API key.
- Create a project and configure invoice language, webhook and enabled assets.
- Create an invoice via `/api/v1/invoices` and give the client the `/payment_{invoice_hash}` link.
- On the merchant side, treat the order as successful only after the `paid` status.
- For payouts use either a direct signed payout or a payout request with owner approval.
Overview
Main flows
- Invoices: create, get public link, poll status, choose payment option.
- Cabinet: registration, login, projects, API keys, webhook config, security, 2FA.
- Withdraw: direct payout or payout request approved by the project owner.
- Admin: global billing/gas policy, network monitoring, sweep and processing queues.
Request and response examples
Create invoice
POST/api/v1/invoices
{
"project_id": "project_xxx",
"order_id": "order_1001",
"amount_fiat": "100.00",
"fiat_currency": "USD",
"buy_type": "package",
"language": "auto"
}
Invoice response example
{
"invoice_id": "inv_xxx",
"invoice_hash": "9c8f...",
"invoice_url": "https://pay.bitcofy.pro/payment_9c8f...",
"status": "created",
"resolved_language": "ru",
"payment_options": [
{
"network": "Tron",
"asset": "USDT",
"amount_crypto": "100.12",
"required_confirmations": 1
}
]
}
Create payout request
POST/api/v1/projects/{project_id}/payout-requests
{
"network": "Tron",
"asset": "USDT",
"amount": "50.00",
"destination_address": "T...",
"idempotency_key": "withdraw_001",
"note": "manual withdrawal"
}
Payout request response example
{
"request_id": "par_xxx",
"status": "requested",
"network": "Tron",
"asset": "USDT",
"amount": "50.00",
"destination_address": "T..."
}
Webhook / IPN
- Webhook is configured per project from the cabinet.
- Merchant processing must be idempotent.
- For business logic, rely on the final invoice status and aggregated API amounts.
- The Tron energy rental callback uses the `/rent-callback` endpoint.
Important notes
- Direct payouts require Ed25519 signing.
- Tron activation and gas preparation are handled only in backend logic.
- For `package` a full exact payment is required, while for `balance` the credited amount is the actual payment minus fee.
- If reserve or aggregated balance is insufficient, payout API returns `409` with the available limit.
- Project wallet seed files are created automatically when deposit addresses are allocated.