ACIDPANEL
Active

Dealer Integration API

For merchants and dealers to accept payments from customers

Overview

What is Dealer Integration?

The Dealer API is designed for merchants and businesses who want to connect to the Acid Panel payment infrastructure through an assigned dealer account. This API allows you to:

  • Query assigned IBAN accounts and their balances
  • Process withdrawals (send money to bank accounts)
  • Initiate credit card payments with 3D Secure
  • View transaction history and check transaction status
  • Receive real-time callbacks for transaction updates

Base URL

https://acidpanel.net/api/dealer

Authentication

All API requests require authentication using API Key, Secret Key, and Timestamp.

Required Headers

Header Value
X-Api-Key Your API Key
X-Hash SHA256(api_key + secret_key + timestamp)
X-Timestamp Current Unix timestamp (seconds)
Content-Type application/json

Timestamp Validation: The timestamp must be within 5 minutes of the server time. Make sure your system clock is synchronized.

Hash Generation

PHP
$apiKey = 'your_api_key';
$secretKey = 'your_secret_key';
$timestamp = time();

$hash = hash('sha256', $apiKey . $secretKey . $timestamp);

// Headers
$headers = [
    'X-Api-Key: ' . $apiKey,
    'X-Hash: ' . $hash,
    'X-Timestamp: ' . $timestamp,
    'Content-Type: application/json'
];
JavaScript
const crypto = require('crypto');

const apiKey = 'your_api_key';
const secretKey = 'your_secret_key';
const timestamp = Math.floor(Date.now() / 1000);

const hash = crypto
    .createHash('sha256')
    .update(apiKey + secretKey + timestamp)
    .digest('hex');

const headers = {
    'X-Api-Key': apiKey,
    'X-Hash': hash,
    'X-Timestamp': timestamp.toString(),
    'Content-Type': 'application/json'
};

Dealer Settings API

Get dealer information and available payment methods status.

Endpoint
/api/dealer/settings
Method
GET

Response Example

{
  "success": true,
  "message": "Welcome, Demo Dealer",
  "dealer_name": "Demo Dealer",
  "payment_methods": {
    "credit_card": "active",
    "eiban": "active",
    "manual_iban": "inactive"
  }
}

Response Parameters

Parameter Description
message Welcome message with dealer name
dealer_name Your dealer account name
payment_methods.credit_card Credit card payment status (active/inactive)
payment_methods.eiban E-IBAN payment status (active/inactive)
payment_methods.manual_iban Manual IBAN payment status (active/inactive)

Manual IBAN Deposit API

Get an available manual IBAN for deposit based on amount limits.

Endpoint
/api/dealer/manual-iban/deposit
Method
POST

Request Parameters

Parameter Type Required Description
username string Yes Customer username
userid string Yes Customer user ID
fullname string Yes Customer full name
amount decimal Yes Deposit amount

Response Example

{
  "success": true,
  "message": "Uygun IBAN bulundu.",
  "data": {
    "tracking_code": "DEP-ABC123XYZ-1733312400",
    "bank_name": "Garanti Bankası",
    "account_name": "Ahmet Yılmaz",
    "iban_no": "TR123456789012345678901234",
    "amount": 500.00,
    "formatted_iban": "TR12 3456 7890 1234 5678 9012 34"
  }
}

Manual IBAN Withdraw API

Create a withdrawal request to be processed manually.

Endpoint
/api/dealer/manual-iban/withdraw
Method
POST

Request Parameters

Parameter Type Required Description
username string Yes Customer username
userid string Yes Customer user ID
amount decimal Yes Withdrawal amount
recipient_name string Yes Recipient's full name
recipient_iban string Yes Recipient's IBAN

Response Example

{
  "success": true,
  "message": "Çekim talebi alındı.",
  "data": {
    "tracking_code": "WDR-XYZ789ABC-1733312400",
    "status": "pending",
    "amount": 250.00,
    "recipient_name": "Mehmet Demir",
    "recipient_iban": "TR987654321098765432109876"
  }
}

E-IBAN Query API

Get all assigned E-IBANs with current balances.

Endpoint
/api/dealer/eibans
Method
GET

Response Example

{
  "success": true,
  "dealer_name": "Demo Dealer",
  "total_eibans": 2,
  "eibans": [
    {
      "id": 1,
      "iban_no": "TR330006100519786457841326",
      "bank_name": "Garanti BBVA",
      "account_name": "Demo Account",
      "wallet_id": "ABC123XYZ",
      "balance": "125000.00",
      "available_balance": "120000.00"
    },
    {
      "id": 2,
      "iban_no": "TR440006200619786457841327",
      "bank_name": "Akbank",
      "account_name": "Demo Account 2",
      "wallet_id": "DEF456UVW",
      "balance": "50000.00",
      "available_balance": "50000.00"
    }
  ]
}

Response Parameters

Parameter Description
total_eibans Total number of assigned E-IBANs
eibans[].iban_no Full IBAN number
eibans[].wallet_id Wallet ID (used for transactions)
eibans[].balance Total balance
eibans[].available_balance Available balance for withdrawal

E-IBAN Transaction History API

Query E-IBAN transaction history. Maximum date range is 3 days. Results are paginated with 100 records per page.

Important Limitation

Date range cannot exceed 3 days. For longer periods, make multiple requests.

Endpoint
/api/dealer/transactions
Method
GET

Query Parameters

Parameter Type Required Description
wallet_id string Yes Wallet ID from E-IBAN query
start_date date Yes Start date (YYYY-MM-DD)
end_date date Yes End date (YYYY-MM-DD)
page integer No Page number (default: 1)

Example Request

GET /api/dealer/transactions?wallet_id=ABC123XYZ&start_date=2025-12-01&end_date=2025-12-03&page=1

Response Example

{
  "success": true,
  "dealer_name": "Demo Dealer",
  "wallet_id": "ABC123XYZ",
  "date_range": {
    "start_date": "2025-12-01",
    "end_date": "2025-12-03"
  },
  "pagination": {
    "current_page": 1,
    "per_page": 100,
    "total_records": 250,
    "total_pages": 3,
    "has_more": true
  },
  "transactions": [
    {
      "transactionId": "TXN123456",
      "amount": "1500.00",
      "type": "incoming",
      "description": "EFT Transfer",
      "senderName": "JOHN DOE",
      "senderIban": "TR1234567890123456789012",
      "date": "2025-12-01T14:30:00"
    }
  ]
}

Pagination Response

Field Description
current_page Current page number
per_page Records per page (always 100)
total_records Total number of transactions
total_pages Total number of pages
has_more Whether more pages exist

Error Responses

Error Code Description
DATE_RANGE_EXCEEDED Date range exceeds 3 days limit
INVALID_DATE_RANGE End date is before start date
WALLET_NOT_ASSIGNED Wallet not assigned to dealer

E-IBAN Send Money API

Initiate money transfer from your E-IBAN to customer's bank account. Use this endpoint for withdrawal payments.

Endpoint
/api/dealer/send-money
Method
POST

Request Parameters

Parameter Type Required Description
wallet_id string Yes Source E-IBAN wallet ID
recipient_iban string Yes Recipient's IBAN number
recipient_name string Yes Recipient's full name
amount decimal Yes Transfer amount (min: 10.00)
description string No Transfer description/note

Request Example

{
  "wallet_id": "ABC123XYZ",
  "recipient_iban": "TR330006100519786457841326",
  "recipient_name": "JOHN DOE",
  "amount": 1500.00,
  "description": "Withdrawal payment"
}

Success Response

{
  "success": true,
  "message": "Transfer initiated successfully",
  "transfer": {
    "transfer_id": "TRF-ABC123XYZ",
    "status": "pending",
    "amount": "1500.00",
    "recipient_iban": "TR330006100519786457841326",
    "recipient_name": "JOHN DOE",
    "created_at": "2025-12-04T14:30:00"
  }
}

Error Responses

Error Code Description
INSUFFICIENT_BALANCE Not enough balance in source E-IBAN
INVALID_IBAN Recipient IBAN is invalid
WALLET_NOT_ASSIGNED Wallet not assigned to dealer
MIN_AMOUNT_ERROR Amount below minimum (10.00 TRY)

E-IBAN Transfer Status API

Check the status of a previously initiated E-IBAN money transfer (Send Money).

Endpoint
/api/dealer/transfer-status
Method
GET

Query Parameters

Parameter Type Required Description
transfer_id string Yes Transfer ID returned from Send Money API

Example Request

GET /api/dealer/transfer-status?transfer_id=TRF-ABC123XYZ

Response Example

{
  "success": true,
  "dealer_name": "Demo Dealer",
  "transfer": {
    "transfer_id": "TRF-ABC123XYZ",
    "status": "completed",
    "amount": "1500.00",
    "recipient_iban": "TR330006100519786457841326",
    "recipient_name": "JOHN DOE",
    "description": "Withdrawal payment",
    "created_at": "2025-12-04T14:30:00",
    "completed_at": "2025-12-04T14:32:15"
  }
}

Transfer Status Values

Status Description
pending Transfer is being processed
completed Transfer completed successfully
failed Transfer failed
cancelled Transfer was cancelled

Credit Card Payment API

Create credit card payment for customer.

Important

Credit card feature must be enabled for your dealer account. Contact support to activate.

Endpoint
/api/dealer/credit-card/payment
Method
POST

Request Parameters

Parameter Type Required Description
username string Yes Customer username
firstname string Yes First name
lastname string Yes Last name
email email Yes Email address
phone string Yes Phone number
amount decimal Yes Payment amount (min: 200 TL)
description string No Payment description

Response Example

{
  "success": true,
  "message": "Payment created successfully",
  "data": {
    "tracking_code": "CC-A1B2C3D4-1733312400",
    "payment_url": "https://payment.gateway.com/pay/abc123",
    "order_id": "CC-20251126-ABC123",
    "amount": 500.00,
    "currency": "TRY"
  }
}

Response Parameters

Parameter Description
tracking_code Unique tracking code for this transaction (use this for status queries)
payment_url Redirect customer to this URL to complete payment
order_id Internal order ID

Credit Card Callback

Receive real-time notifications when credit card payment status changes.

How it Works

When payment is completed, failed or expired, we send HTTP POST request to your credit_card_callback_url with transaction details.

Callback Headers

Header Description
X-Api-Key Your dealer API key
X-Timestamp Unix timestamp
X-Hash SHA256 hash for verification

Callback Payload Example (Success)

{
  "success": true,
  "tracking_code": "CC-A1B2C3D4-1733312400",
  "order_id": "CC-20251204-XYZ789",
  "status": "success",
  "amount": 500.00,
  "currency": "TRY",
  "customer_name": "John Doe",
  "customer_email": "[email protected]",
  "customer_phone": "+905551234567",
  "status_message": "Payment completed",
  "completed_at": "2025-12-04T14:35:00",
  "timestamp": 1733312400,
  "hash": "abc123..."
}

Callback Payload Example (Failed)

{
  "success": false,
  "tracking_code": "CC-A1B2C3D4-1733312400",
  "order_id": "CC-20251204-XYZ789",
  "status": "failed",
  "amount": 500.00,
  "currency": "TRY",
  "customer_name": "John Doe",
  "error_code": "TIMEOUT",
  "error_message": "Transaction expired after 15 minutes",
  "timestamp": 1733313300,
  "hash": "def456..."
}

Hash Verification (PHP)

$apiKey = 'your_api_key';
$secretKey = 'your_secret_key';
$trackingCode = $payload['tracking_code'];
$status = $payload['status'];
$timestamp = $payload['timestamp'];

$expectedHash = hash('sha256', $apiKey . $secretKey . $trackingCode . $status . $timestamp);

if ($expectedHash === $payload['hash']) {
    // Valid callback
} else {
    // Invalid callback - reject
}

Response Required

Your callback URL must respond with HTTP 200 status:

{
  "success": true
}

Callback Status Values

Status Description
success Payment completed successfully
failed Payment failed or expired

Site Integration

Alternative integration method for your website.

What is Site Integration?

Site integration allows your website to communicate with our API using a secure token and secret key.

Configuration Steps

  1. Get your site token and secret key from admin panel
  2. Configure your website with these credentials
  3. Use site-specific endpoints for API requests
  4. Monitor integration status in dashboard

Need Help?

Our support team is available 24/7 to assist you with integration questions, troubleshooting, and best practices.