ข้ามไปยังเนื้อหาหลัก

รายงานยอดคงเหลือและการตัดบัญชี

รายงานยอดคงเหลือให้รายละเอียดเกี่ยวกับยอดคงเหลือบัญชี ระเบียนการตัดบัญชี และข้อมูลการชำระเงินของคุณ

ภาพรวม

รายงานยอดคงเหลือให้:

  • ยอดคงเหลือบัญชี: เงินพร้อม เงินที่รอดำเนินการ และเงินสำรอง
  • ระเบียนการตัดบัญชี: การโอนไปยังบัญชีธนาคาร
  • รายละเอียดค่าธรรมเนียม: ค่าธรรมเนียมการทำธุรกรรมโดยละเอียด
  • การติดตามสำรอง: การจัดการเงินที่สำรอง
  • สนับสนุนหลายสกุลเงิน: แสดงยอดคงเหลือแบบหลายสกุลเงิน

ทำความเข้าใจรายละเอียดยอดคงเหลือ

ประเภทยอดคงเหลือ

ยอดคงเหลือมีหลายประเภท:

  • พร้อมใช้: เงินที่สามารถโอนได้ทันที
  • รอดำเนินการ: เงินที่รอการตัดบัญชี
  • สำรอง: เงินสำรองสำหรับช็อปเบ็กและการคืนเงิน
const balance = await omise.balance.retrieve();

console.log('Available:', balance.available / 100, 'THB');
console.log('Pending:', balance.pending / 100, 'THB');
console.log('Reserved:', balance.reserved / 100, 'THB');
console.log('Total:', (balance.available + balance.pending) / 100, 'THB');

รับข้อมูลการตัดบัญชี

รายชื่อระเบียนการตัดบัญชี

import omise

omise.api_secret = 'skey_test_123456789'

def get_settlements(from_date=None, to_date=None):
"""รับระเบียนการตัดบัญชี"""
settlements = omise.Settlement.list(
limit=100,
from_date=from_date,
to_date=to_date
)

for settlement in settlements.data:
print(f"ID: {settlement.id}")
print(f"Amount: {settlement.amount / 100} THB")
print(f"Fee: {settlement.fee / 100} THB")
print(f"Net: {settlement.net / 100} THB")
print(f"Date: {settlement.created}")

return settlements

การเข้าถึงผ่าน API

ข้อมูลรายงานยอดคงเหลือ

async function getBalanceReport(currency = 'THB') {
const balance = await omise.balance.retrieve();

return {
available: balance.available / 100,
pending: balance.pending / 100,
reserved: balance.reserved / 100,
currency: currency,
retrieved_at: new Date().toISOString()
};
}

// ตัวอย่างการใช้งาน
const report = await getBalanceReport();
console.log(JSON.stringify(report, null, 2));

รายละเอียดการตัดบัญชี

require 'omise'

Omise.api_key = 'skey_test_123456789'

def get_settlement_details(settlement_id)
settlement = Omise::Settlement.retrieve(settlement_id)

{
id: settlement.id,
amount: settlement.amount / 100.0,
fee: settlement.fee / 100.0,
net: settlement.net / 100.0,
currency: settlement.currency,
status: settlement.status,
created: settlement.created
}
end

ส่งออกรายงาน

ดาวน์โหลดเป็น CSV

จากแดชบอร์ด:

  1. ไปที่ รายงาน > ยอดคงเหลือ
  2. เลือกช่วงวันที่
  3. คลิก ส่งออก > CSV
  4. ไฟล์จะดาวน์โหลด

ส่งออกจากโปรแกรม

<?php
$omise = new Omise(['secretKey' => 'skey_test_123456789']);

function export_balance_data($from_date, $to_date) {
$balance = $omise['balance']->retrieve();

$data = [
['Available', $balance['available'] / 100],
['Pending', $balance['pending'] / 100],
['Reserved', $balance['reserved'] / 100],
['Total Available', ($balance['available'] + $balance['pending']) / 100]
];

$fp = fopen('balance_report.csv', 'w');
foreach ($data as $row) {
fputcsv($fp, $row);
}
fclose($fp);

echo "Report exported to balance_report.csv";
}

สถานการณ์รายงานทั่วไป

รายงานบัญชีรายเดือน

from datetime import datetime, timedelta
import omise

def generate_monthly_accounting_report(year, month):
"""สร้างรายงานบัญชีรายเดือน"""

# คำนวณช่วงวันที่ของเดือน
from_date = datetime(year, month, 1)
if month == 12:
to_date = datetime(year + 1, 1, 1) - timedelta(seconds=1)
else:
to_date = datetime(year, month + 1, 1) - timedelta(seconds=1)

# รับการตัดบัญชี
settlements = omise.Settlement.list(
from_date=from_date.isoformat(),
to_date=to_date.isoformat(),
limit=100
)

# คำนวณสถิติ
report = {
'month': f'{year}-{month:02d}',
'total_settled': 0,
'total_fees': 0,
'settlement_count': len(settlements.data)
}

for settlement in settlements.data:
report['total_settled'] += settlement.amount
report['total_fees'] += settlement.fee

report['total_settled'] = report['total_settled'] / 100
report['total_fees'] = report['total_fees'] / 100
report['net_received'] = report['total_settled'] - report['total_fees']

return report

# ตัวอย่างการใช้งาน
report = generate_monthly_accounting_report(2024, 1)
print(f"Month: {report['month']}")
print(f"Total Settled: {report['total_settled']:.2f} THB")
print(f"Total Fees: {report['total_fees']:.2f} THB")
print(f"Net Received: {report['net_received']:.2f} THB")

รายงานอัตโนมัติรายเดือน

package main

import (
"fmt"
"log"
"time"

"github.com/omise/omise-go"
)

func generateMonthlyReport(client *omise.Client) {
now := time.Now()
firstDay := time.Date(now.Year(), now.Month(), 1, 0, 0, 0, 0, time.UTC)
lastDay := firstDay.AddDate(0, 1, -1)

balance := &omise.BalanceResponse{}
err := client.Do(balance, nil)
if err != nil {
log.Fatalf("Failed to retrieve balance: %v", err)
}

fmt.Printf("Balance Report for %s\n", now.Format("2006-01"))
fmt.Printf("Available: %.2f THB\n", float64(balance.Available)/100)
fmt.Printf("Pending: %.2f THB\n", float64(balance.Pending)/100)
fmt.Printf("Reserved: %.2f THB\n", float64(balance.Reserved)/100)
}

วิธีปฏิบัติที่ดีที่สุด

1. ตรวจสอบอย่างสม่ำเสมอ

async function monitorBalance() {
const balance = await omise.balance.retrieve();

// แจ้งเตือนยอดคงเหลือต่ำ
if (balance.available < 10000000) { // น้อยกว่า 100,000 THB
console.warn('Low balance alert!');
// ส่งการแจ้งเตือน
}

// แจ้งเตือนยอดคงเหลือที่สำรองสูง
if (balance.reserved > 50000000) { // มากกว่า 500,000 THB
console.warn('High reserved balance');
// ต้องการการสอบสวน
}
}

// ทำงานทุกวัน
setInterval(monitorBalance, 24 * 60 * 60 * 1000);

2. การปรองดอง

def reconcile_with_bank_statement(bank_statement, omise_settlements):
"""ปรองดองบัญชีธนาคารกับการตัดบัญชี Omise"""

discrepancies = {
'omise_only': [],
'bank_only': [],
'amount_mismatches': []
}

bank_map = {tx['reference']: tx for tx in bank_statement}

for settlement in omise_settlements.data:
if settlement.id in bank_map:
bank_tx = bank_map[settlement.id]
if bank_tx['amount'] != settlement.amount / 100:
discrepancies['amount_mismatches'].append({
'reference': settlement.id,
'omise_amount': settlement.amount / 100,
'bank_amount': bank_tx['amount']
})
del bank_map[settlement.id]
else:
discrepancies['omise_only'].append(settlement.id)

discrepancies['bank_only'] = list(bank_map.keys())

return discrepancies

คำถามที่พบบ่อย

สำรองคืออะไร?

สำรองคือเงินที่ถูกสำรองไว้เพื่อรับมือกับช็อปเบ็คและการคืนเงิน ไม่พร้อมใช้และไม่สามารถใช้ได้

เงินจะถึงบัญชีธนาคารในเวลานานเท่าใด หลังการตัดบัญชี?

การตัดบัญชีส่วนใหญ่จะถึงบัญชีธนาคารภายใน 1-3 วันธุรกิจ แต่จะแตกต่างกันไปตามธนาคารและเวลา

ฉันสามารถดูยอดคงเหลือแบบหลายสกุลเงินได้หรือไม่?

ใช่ หากคุณทำธุรกรรมในสกุลเงินหลายสกุลสกุล คุณสามารถดูยอดคงเหลือสำหรับแต่ละสกุลเงินแยกกัน

ระเบียนการตัดบัญชีจะถูกเก็บไว้นานแค่ไหน?

Omise จะเก็บบันทึกการตัดบัญชีไว้ได้นาน 7 ปี คุณสามารถเข้าถึงได้ทุกเวลาผ่าน API

ทรัพยากรที่เกี่ยวข้อง