Merge pull request #203 into master
cc2e4a7container: hledger-flow: btcpayserver: update mockups (Aaron Fiore)5920d87container: hledger-flow: btcpayserver: support "Legacy Invoice Export" plugin, update "Wallets" impl (Aaron Fiore)
This commit was merged in pull request #203.
This commit is contained in:
@@ -49,13 +49,15 @@ function btcpayserver::print_warning()
|
|||||||
#
|
#
|
||||||
# TL;DR:
|
# TL;DR:
|
||||||
#
|
#
|
||||||
|
# - As of v2.2.0, *MUST* install the "Legacy Invoice Export" plugin. TODO: use v2.2.0 format w/out plugin
|
||||||
|
#
|
||||||
# - *MUST* export both "Legacy Invoice" report and "Wallets" report for an accurate balance.
|
# - *MUST* export both "Legacy Invoice" report and "Wallets" report for an accurate balance.
|
||||||
# * The "Legacy Invoice" report currently does *not* include any outgoing txs (refunds or transfers).
|
# * The "Legacy Invoice" report currently does *not* include any outgoing txs (refunds or transfers).
|
||||||
#
|
#
|
||||||
# WARNING:
|
# WARNING:
|
||||||
#
|
#
|
||||||
# - All outgoing txs do *not* account for fees (they are lumped in with the total).
|
# - If using a watch-ony wallet, consider accounting entirely here (via btcpayserver) or
|
||||||
# * Until upstream changes this, any fees must be separated manually w/ custom rules.
|
# entirely via that other wallet (e.g., electrum). Mixing the two may cause tax accounting issues.
|
||||||
#
|
#
|
||||||
# CAUTION:
|
# CAUTION:
|
||||||
#
|
#
|
||||||
@@ -119,16 +121,19 @@ function btcpayserver::legacy()
|
|||||||
printf $16 OFS # InvoiceCurrency
|
printf $16 OFS # InvoiceCurrency
|
||||||
printf $17 OFS # InvoiceDue
|
printf $17 OFS # InvoiceDue
|
||||||
printf $18 OFS # InvoicePrice
|
printf $18 OFS # InvoicePrice
|
||||||
printf $19 OFS # InvoiceItemCode
|
printf $19 OFS # InvoiceTaxIncluded
|
||||||
|
printf $20 OFS # InvoiceTip
|
||||||
|
printf $21 OFS # InvoiceSubtotal
|
||||||
|
printf $22 OFS # InvoiceItemCode
|
||||||
|
|
||||||
# TODO: if description contains comma(s)?
|
# TODO: if description contains comma(s)?
|
||||||
printf $20 OFS # InvoiceItemDesc
|
printf $23 OFS # InvoiceItemDesc
|
||||||
|
|
||||||
printf $21 OFS # InvoiceFullStatus
|
printf $24 OFS # InvoiceFullStatus
|
||||||
printf $22 OFS # InvoiceStatus
|
printf $25 OFS # InvoiceStatus
|
||||||
printf $23 OFS # InvoiceExceptionStatus
|
printf $26 OFS # InvoiceExceptionStatus
|
||||||
printf $24 OFS # BuyerEmail
|
printf $27 OFS # BuyerEmail
|
||||||
printf $25 OFS # Accounted
|
printf $28 OFS # Accounted
|
||||||
|
|
||||||
# WARNING: appears to be always IN (see notes regarding "Wallets" report)
|
# WARNING: appears to be always IN (see notes regarding "Wallets" report)
|
||||||
printf "IN" OFS # Direction
|
printf "IN" OFS # Direction
|
||||||
@@ -176,6 +181,9 @@ function btcpayserver::wallets()
|
|||||||
if ($6 !~ /^-/)
|
if ($6 !~ /^-/)
|
||||||
next
|
next
|
||||||
|
|
||||||
|
# Strip sign from amount (using direction instead)
|
||||||
|
sub(/^-/, "", $6)
|
||||||
|
|
||||||
# Date (ReceivedDate w/ local timezone added)
|
# Date (ReceivedDate w/ local timezone added)
|
||||||
sub(/ /, "T", $1) # HACK: makes arg-friendly by removing space
|
sub(/ /, "T", $1) # HACK: makes arg-friendly by removing space
|
||||||
cmd = "date \"+%F %T %z\" --date="$1 | getline date
|
cmd = "date \"+%F %T %z\" --date="$1 | getline date
|
||||||
@@ -197,14 +205,25 @@ function btcpayserver::wallets()
|
|||||||
printf $2 OFS # Crypto (CryptoCode)
|
printf $2 OFS # Crypto (CryptoCode)
|
||||||
|
|
||||||
# BalanceChange (Paid)
|
# BalanceChange (Paid)
|
||||||
printf("%.8f", $6); printf OFS
|
# NOTE: must provide as subtotal, so subtract fee
|
||||||
|
printf("%.8f", $6 - $7); printf OFS
|
||||||
|
|
||||||
|
# Fee (NetworkFee)
|
||||||
|
printf("%.8f", $7); printf OFS
|
||||||
|
|
||||||
printf OFS # (NetworkFee)
|
|
||||||
printf OFS # (ConversionRate)
|
printf OFS # (ConversionRate)
|
||||||
printf OFS # (PaidCurrency)
|
|
||||||
printf OFS # (InvoiceCurrency)
|
# FeeRate (PaidCurrency)
|
||||||
|
printf("%.3f", $8); printf OFS
|
||||||
|
|
||||||
|
# Rate (XXX) (InvoiceCurrency)
|
||||||
|
printf("%.3f", $9); printf OFS
|
||||||
|
|
||||||
printf OFS # (InvoiceDue)
|
printf OFS # (InvoiceDue)
|
||||||
printf OFS # (InvoicePrice)
|
printf OFS # (InvoicePrice)
|
||||||
|
printf OFS # (InvoiceTaxIncluded)
|
||||||
|
printf OFS # (InvoiceTip)
|
||||||
|
printf OFS # (InvoiceSubtotal)
|
||||||
printf OFS # (InvoiceItemCode)
|
printf OFS # (InvoiceItemCode)
|
||||||
printf OFS # (InvoiceItemDesc)
|
printf OFS # (InvoiceItemDesc)
|
||||||
printf OFS # (InvoiceFullStatus)
|
printf OFS # (InvoiceFullStatus)
|
||||||
@@ -223,7 +242,7 @@ function btcpayserver::wallets()
|
|||||||
|
|
||||||
function btcpayserver::parse()
|
function btcpayserver::parse()
|
||||||
{
|
{
|
||||||
lib_preprocess::test_header "ReceivedDate,StoreId,OrderId,InvoiceId,InvoiceCreatedDate,InvoiceExpirationDate,InvoiceMonitoringDate,PaymentId,Destination,PaymentType,CryptoCode,Paid,NetworkFee,ConversionRate,PaidCurrency,InvoiceCurrency,InvoiceDue,InvoicePrice,InvoiceItemCode,InvoiceItemDesc,InvoiceFullStatus,InvoiceStatus,InvoiceExceptionStatus,BuyerEmail,Accounted" \
|
lib_preprocess::test_header "ReceivedDate,StoreId,OrderId,InvoiceId,InvoiceCreatedDate,InvoiceExpirationDate,InvoiceMonitoringDate,PaymentId,Destination,PaymentType,CryptoCode,Paid,NetworkFee,ConversionRate,PaidCurrency,InvoiceCurrency,InvoiceDue,InvoicePrice,InvoiceTaxIncluded,InvoiceTip,InvoiceSubtotal,InvoiceItemCode,InvoiceItemDesc,InvoiceFullStatus,InvoiceStatus,InvoiceExceptionStatus,BuyerEmail,Accounted" \
|
||||||
&& btcpayserver::legacy
|
&& btcpayserver::legacy
|
||||||
|
|
||||||
lib_preprocess::test_header "Date,InvoiceId,OrderId,Category,PaymentMethodId,Confirmed,Address,PaymentCurrency,PaymentAmount,PaymentMethodFee,LightningAddress,InvoiceCurrency,InvoiceCurrencyAmount,Rate" \
|
lib_preprocess::test_header "Date,InvoiceId,OrderId,Category,PaymentMethodId,Confirmed,Address,PaymentCurrency,PaymentAmount,PaymentMethodFee,LightningAddress,InvoiceCurrency,InvoiceCurrencyAmount,Rate" \
|
||||||
@@ -238,7 +257,9 @@ function btcpayserver::parse()
|
|||||||
lib_preprocess::test_header "Date,InvoiceId,State,AppId,Product,Quantity,CurrencyAmount,Currency" \
|
lib_preprocess::test_header "Date,InvoiceId,State,AppId,Product,Quantity,CurrencyAmount,Currency" \
|
||||||
&& btcpayserver::sales
|
&& btcpayserver::sales
|
||||||
|
|
||||||
lib_preprocess::test_header "Date,Crypto,TransactionId,InvoiceId,Confirmed,BalanceChange" \
|
# TODO: don't hardcode USD (upstream should make the currency in "Rate (XXX)" into a separate column).
|
||||||
|
#lib_preprocess::test_header "Date,Crypto,TransactionId,InvoiceId,Confirmed,BalanceChange,Fee,FeeRate,Rate (USD)" \
|
||||||
|
lib_preprocess::test_header "Date,Crypto,TransactionId,InvoiceId,Confirmed,BalanceChange,Fee,FeeRate" \
|
||||||
&& btcpayserver::wallets
|
&& btcpayserver::wallets
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
# TODO: currently, only supports "Legacy Invoice" and "Wallets" format (w/ additional custom columns)
|
# TODO: currently, only supports "Legacy Invoice" and "Wallets" format (w/ additional custom columns)
|
||||||
fields ReceivedDate,StoreId,OrderId,InvoiceId,InvoiceCreatedDate,InvoiceExpirationDate,InvoiceMonitoringDate,txid,index,Destination,PaymentType,CryptoCode,Paid,NetworkFee,ConversionRate,PaidCurrency,InvoiceCurrency,InvoiceDue,InvoicePrice,InvoiceItemCode,InvoiceItemDesc,InvoiceFullStatus,InvoiceStatus,InvoiceExceptionStatus,BuyerEmail,Accounted,direction,subaccount
|
fields ReceivedDate,StoreId,OrderId,InvoiceId,InvoiceCreatedDate,InvoiceExpirationDate,InvoiceMonitoringDate,txid,index,Destination,PaymentType,CryptoCode,Paid,NetworkFee,ConversionRate,PaidCurrency,InvoiceCurrency,InvoiceDue,InvoicePrice,InvoiceTaxIncluded,InvoiceTip,InvoiceSubtotal,InvoiceItemCode,InvoiceItemDesc,InvoiceFullStatus,InvoiceStatus,InvoiceExceptionStatus,BuyerEmail,Accounted,direction,subaccount
|
||||||
|
|
||||||
# NOTE: BTCPayServer exports to localtime
|
# NOTE: BTCPayServer exports to localtime
|
||||||
date-format %Y-%m-%d %H:%M:%S %z
|
date-format %Y-%m-%d %H:%M:%S %z
|
||||||
@@ -41,43 +41,78 @@ if %Accounted ^[^a-z]*$
|
|||||||
# NOTE: all IN assumed to be INCOME
|
# NOTE: all IN assumed to be INCOME
|
||||||
|
|
||||||
# Default comment
|
# Default comment
|
||||||
comment created:%InvoiceCreatedDate, expired:%InvoiceExpirationDate, store_id:%StoreId, order_id:%OrderId, invoice_id:%InvoiceId, type:%PaymentType, to_address:%Destination, txid:%txid, index:%index, status:%InvoiceStatus, direction:%direction, taxed_as:INCOME
|
comment created:%InvoiceCreatedDate, expired:%InvoiceExpirationDate, store_id:%StoreId, order_id:%OrderId, invoice_id:%InvoiceId, invoice_tax:%InvoiceTaxIncluded, invoice_tip:%InvoiceTip, invoice_subtotal:%InvoiceSubtotal, type:%PaymentType, to_address:%Destination, txid:%txid, index:%index, status:%InvoiceStatus, direction:%direction, taxed_as:INCOME
|
||||||
|
|
||||||
# Comment w/ item code
|
# Comment w/ item code
|
||||||
if %InvoiceItemCode [a-z0-9]
|
if %InvoiceItemCode [a-z0-9]
|
||||||
comment created:%InvoiceCreatedDate, expired:%InvoiceExpirationDate, store_id:%StoreId, order_id:%OrderId, invoice_id:%InvoiceId, item_code:%InvoiceItemCode, type:%PaymentType, to_address:%Destination, txid:%txid, index:%index, status:%InvoiceStatus, direction:%direction, taxed_as:INCOME
|
comment created:%InvoiceCreatedDate, expired:%InvoiceExpirationDate, store_id:%StoreId, order_id:%OrderId, invoice_id:%InvoiceId, invoice_tax:%InvoiceTaxIncluded, invoice_tip:%InvoiceTip, invoice_subtotal:%InvoiceSubtotal, item_code:%InvoiceItemCode, type:%PaymentType, to_address:%Destination, txid:%txid, index:%index, status:%InvoiceStatus, direction:%direction, taxed_as:INCOME
|
||||||
|
|
||||||
# Comment w/ buyer email
|
# Comment w/ buyer email
|
||||||
if %BuyerEmail [a-z0-9]
|
if %BuyerEmail [a-z0-9]
|
||||||
comment created:%InvoiceCreatedDate, expired:%InvoiceExpirationDate, store_id:%StoreId, order_id:%OrderId, invoice_id:%InvoiceId, email:%BuyerEmail, type:%PaymentType, to_address:%Destination, txid:%txid, index:%index, status:%InvoiceStatus, direction:%direction, taxed_as:INCOME
|
comment created:%InvoiceCreatedDate, expired:%InvoiceExpirationDate, store_id:%StoreId, order_id:%OrderId, invoice_id:%InvoiceId, invoice_tax:%InvoiceTaxIncluded, invoice_tip:%InvoiceTip, invoice_subtotal:%InvoiceSubtotal, email:%BuyerEmail, type:%PaymentType, to_address:%Destination, txid:%txid, index:%index, status:%InvoiceStatus, direction:%direction, taxed_as:INCOME
|
||||||
|
|
||||||
# Comment w/ both item code + buyer email
|
# Comment w/ both item code + buyer email
|
||||||
if %InvoiceItemCode [a-z0-9]
|
if %InvoiceItemCode [a-z0-9]
|
||||||
& %BuyerEmail [a-z0-9]
|
& %BuyerEmail [a-z0-9]
|
||||||
comment created:%InvoiceCreatedDate, expired:%InvoiceExpirationDate, store_id:%StoreId, order_id:%OrderId, invoice_id:%InvoiceId, item_code:%InvoiceItemCode, email:%BuyerEmail, type:%PaymentType, to_address:%Destination, txid:%txid, index:%index, status:%InvoiceStatus, direction:%direction, taxed_as:INCOME
|
comment created:%InvoiceCreatedDate, expired:%InvoiceExpirationDate, store_id:%StoreId, order_id:%OrderId, invoice_id:%InvoiceId, invoice_tax:%InvoiceTaxIncluded, invoice_tip:%InvoiceTip, invoice_subtotal:%InvoiceSubtotal, item_code:%InvoiceItemCode, email:%BuyerEmail, type:%PaymentType, to_address:%Destination, txid:%txid, index:%index, status:%InvoiceStatus, direction:%direction, taxed_as:INCOME
|
||||||
|
|
||||||
# Comment for "Wallets" export
|
|
||||||
if %direction ^OUT$
|
|
||||||
comment txid:%txid, confirmed:%Accounted, direction:%direction
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Direction
|
# Direction
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# NOTE/TODO:
|
||||||
|
#
|
||||||
|
# InvoiceTaxIncluded, InvoiceTip and InvoiceSubtotal are not included
|
||||||
|
# as new accounts because they are static across rows and treated more
|
||||||
|
# like tags (i.e., if an invoice is not paid in full in a single tx,
|
||||||
|
# then these entries will be repeated across rows).
|
||||||
|
|
||||||
# Default income
|
# Default income
|
||||||
if %direction ^IN$
|
if %direction ^IN$
|
||||||
account2 income:btcpayserver:%subaccount:%CryptoCode
|
account2 income:btcpayserver:%subaccount:%CryptoCode
|
||||||
comment2 %ReceivedDate,INCOME,btcpayserver:%subaccount,%CryptoCode,%Paid,%InvoiceCurrency,%PaidCurrency,%InvoiceId
|
comment2 %ReceivedDate,INCOME,btcpayserver:%subaccount,%CryptoCode,%Paid,%InvoiceCurrency,%PaidCurrency,%InvoiceId
|
||||||
|
|
||||||
# Default equity transfer
|
# Default refund
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
#
|
||||||
|
# - If the tx is not a refund, use custom rules for account2/comment2
|
||||||
|
# * If the tx also not an expense, remove comment tag taxed_as:SPEND
|
||||||
|
#
|
||||||
|
# - Since refunds may not be considered taxable events, and since the
|
||||||
|
# "Wallets" export only includes the market price of the tx at the
|
||||||
|
# time of sending (refunding), use custom rules to replace the
|
||||||
|
# sending tx's price to the time of receiving (the income tx).
|
||||||
|
#
|
||||||
|
# This way one can "negate" the original income event by "spending"
|
||||||
|
# the original amount at the original rate (the rate at which the
|
||||||
|
# invoice was paid):
|
||||||
|
#
|
||||||
|
# Example in custom rules (replace "MANUAL_ADJUSTMENT_NEEDED"):
|
||||||
|
#
|
||||||
|
# if %direction ^OUT$
|
||||||
|
# comment txid:%txid, confirmed:%Accounted, direction:%direction, taxed_as:SPEND
|
||||||
|
# comment2 %ReceivedDate,SPEND,btcpayserver:%subaccount:%CryptoCode,%CryptoCode,%Paid,USD,MANUAL_ADJUSTMENT_NEEDED,REFUND
|
||||||
|
#
|
||||||
|
# - Use different custom rules if your refund type is not the default
|
||||||
|
# provided option of 'price at the rate the invoice was paid'.
|
||||||
|
#
|
||||||
if %direction ^OUT$
|
if %direction ^OUT$
|
||||||
account2 equity:btcpayserver:%subaccount:deposit:%CryptoCode
|
account2 expenses:btcpayserver:%subaccount:refunds:%CryptoCode
|
||||||
|
amount -%Paid %CryptoCode
|
||||||
|
comment txid:%txid, confirmed:%Accounted, direction:%direction, taxed_as:SPEND
|
||||||
|
comment2 %ReceivedDate,SPEND,btcpayserver:%subaccount:%CryptoCode,%CryptoCode,%Paid,USD,,REFUND
|
||||||
|
# TODO: don't hardcode USD (upstream should make the "Rate (XXX)" currency column a separate column).
|
||||||
|
|
||||||
# TODO:
|
if %direction ^OUT$
|
||||||
#
|
& %NetworkFee [1-9]
|
||||||
# WARNING:
|
account3 assets:btcpayserver:%subaccount:%CryptoCode
|
||||||
#
|
amount3 -%NetworkFee %CryptoCode
|
||||||
# - All outgoing txs do *not* account for fees (they are lumped in with the total).
|
account4 expenses:electrum:%subaccount:fees:%CryptoCode
|
||||||
# * Until upstream changes this, any fees must be separated manually w/ custom rules.
|
amount4 %NetworkFee %CryptoCode
|
||||||
|
comment txid:%txid, confirmed:%Accounted, direction:%direction, taxed_as:SPEND
|
||||||
|
comment3 %ReceivedDate,SPEND,btcpayserver:%subaccount:%CryptoCode,%CryptoCode,%NetworkFee,USD,%PaidCurrency,FEE
|
||||||
|
# Using comment3 so a comment2 SPEND isn't overwritten (when applicable)
|
||||||
|
# TODO: don't hardcode USD (upstream should make the "Rate (XXX)" currency column a separate column).
|
||||||
|
|
||||||
# vim: sw=2 sts=2 si ai et
|
# vim: sw=2 sts=2 si ai et
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
ReceivedDate,StoreId,OrderId,InvoiceId,InvoiceCreatedDate,InvoiceExpirationDate,InvoiceMonitoringDate,PaymentId,Destination,PaymentType,CryptoCode,Paid,NetworkFee,ConversionRate,PaidCurrency,InvoiceCurrency,InvoiceDue,InvoicePrice,InvoiceItemCode,InvoiceItemDesc,InvoiceFullStatus,InvoiceStatus,InvoiceExceptionStatus,BuyerEmail,Accounted
|
ReceivedDate,StoreId,OrderId,InvoiceId,InvoiceCreatedDate,InvoiceExpirationDate,InvoiceMonitoringDate,PaymentId,Destination,PaymentType,CryptoCode,Paid,NetworkFee,ConversionRate,PaidCurrency,InvoiceCurrency,InvoiceDue,InvoicePrice,InvoiceTaxIncluded,InvoiceTip,InvoiceSubtotal,InvoiceItemCode,InvoiceItemDesc,InvoiceFullStatus,InvoiceStatus,InvoiceExceptionStatus,BuyerEmail,Accounted
|
||||||
2025-01-01 11:11:11,STOREXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1,PAY_REQUEST_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX2,INVOICEXXXXXXXXXXXXXX2,2025-01-01 12:12:12,2025-01-01 12:12:12,2025-01-01 12:12:12,TXIDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2-10,bc1qXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2,BTC-CHAIN,BTC,0.12345678,0,100000.101,12345.6904,USD,0,12345.69,,,Settled,complete,,alice@bob.email,true
|
2025-08-06 15:08:52,6Hba3EYeVpNaZbDduFrJ2jkKsGF69k83dJJUFNB1haX2,6ZiCU7wv2ATm7RQNda1hPr,2DYE61SvSs9Q1DsfKjXd21,2025-08-06 15:08:39,2025-08-06 15:23:39,2025-08-07 15:23:39,dc132e44e053d9023cf20374aea200850efd1e88de28d1344f5a1343bbc0519f-1,tb1q20fhdv9tvl5rz5vfgnn96hwqhy242yqgfyd6d9,BTC-CHAIN,BTC,0.0006219,0,115131.4,71.600,USD,0,71.6,6.8,0,64.8,,,Settled,complete,,user2@local.domain,true
|
||||||
2025-01-01 11:11:11,STOREXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1,PAY_REQUEST_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX2,INVOICEXXXXXXXXXXXXXX2,2025-01-01 12:12:12,2025-01-01 12:12:12,2025-01-01 12:12:12,TXIDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2-10,bc1qXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2,BTC-CHAIN,BTC,0.12345678,0,100000.101,12345.6904,USD,0,12345.69,,,Settled,complete,,alice@bob.email,
|
2025-08-06 15:05:20,6Hba3EYeVpNaZbDduFrJ2jkKsGF69k83dJJUFNB1haX2,RuuupW4i5qXpD9biED4V79,8bZWGbYbKJh3moNwjehdfY,2025-08-06 15:04:54,2025-08-06 15:19:54,2025-08-07 15:19:54,a4174c80d019043eed0227c1b2bedf99f432f5fdb27149595810c8299fb09f9d-0,tb1qvfle8fr3xfhksc5gxuuz486t0rpq4td4hnk4tv,BTC-CHAIN,BTC,0.00007254,0,115118.7,8.351,USD,-0.001,8.35,0.7,1,6.65,,,Settled,complete,,user@local.domain,true
|
||||||
2024-12-31 22:22:22,STOREXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1,PAY_REQUEST_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX1,INVOICEXXXXXXXXXXXXXX1,2024-12-31 23:23:23,2024-12-31 23:23:23,2024-12-31 23:23:23,TXIDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1-5,bc1qXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1,BTC-CHAIN,BTC,0.01234567,0,95000.505,1172.840,USD,0,1172.84,product_1,Great Product That You Want #1,Settled,complete,,,true
|
|
||||||
2024-12-31 22:22:22,STOREXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1,PAY_REQUEST_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX1,INVOICEXXXXXXXXXXXXXX1,2024-12-31 23:23:23,2024-12-31 23:23:23,2024-12-31 23:23:23,TXIDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1-5,bc1qXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1,BTC-CHAIN,BTC,0.01234567,0,95000.505,1172.840,USD,0,1172.84,product_1,Great Product That You Want #1,Settled,complete,,,
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
Date,Crypto,TransactionId,InvoiceId,Confirmed,BalanceChange
|
Date,Crypto,TransactionId,InvoiceId,Confirmed,BalanceChange,Fee,FeeRate,Rate (USD)
|
||||||
2024-12-31 22:22:22,BTC,TXIDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1,INVOICEXXXXXXXXXXXXXX1,true,0.01234567
|
2025-08-06 15:05:20,BTC,a4174c80d019043eed0227c1b2bedf99f432f5fdb27149595810c8299fb09f9d,8bZWGbYbKJh3moNwjehdfY,true,0.00007254,0.00015848,112.397,115118.7
|
||||||
2025-01-01 11:11:11,BTC,TXIDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2,INVOICEXXXXXXXXXXXXXX2,true,0.12345678
|
2025-08-06 15:08:52,BTC,dc132e44e053d9023cf20374aea200850efd1e88de28d1344f5a1343bbc0519f,2DYE61SvSs9Q1DsfKjXd21,true,0.00062190,0.00015854,112.439,115131.4
|
||||||
2025-02-02 02:02:02,BTC,TXIDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX3,,true,-0.00123456
|
2025-08-06 15:13:27,BTC,8cbae88fd430eb257960738577bbba7d5be72b3f8799954fa309d288749431ee,,true,-0.00014869,0.00007615,54.007,115199.95
|
||||||
|
@@ -1,5 +1,3 @@
|
|||||||
ReceivedDate,StoreId,OrderId,InvoiceId,InvoiceCreatedDate,InvoiceExpirationDate,InvoiceMonitoringDate,PaymentId,Destination,PaymentType,CryptoCode,Paid,NetworkFee,ConversionRate,PaidCurrency,InvoiceCurrency,InvoiceDue,InvoicePrice,InvoiceItemCode,InvoiceItemDesc,InvoiceFullStatus,InvoiceStatus,InvoiceExceptionStatus,BuyerEmail,Accounted
|
ReceivedDate,StoreId,OrderId,InvoiceId,InvoiceCreatedDate,InvoiceExpirationDate,InvoiceMonitoringDate,PaymentId,Destination,PaymentType,CryptoCode,Paid,NetworkFee,ConversionRate,PaidCurrency,InvoiceCurrency,InvoiceDue,InvoicePrice,InvoiceTaxIncluded,InvoiceTip,InvoiceSubtotal,InvoiceItemCode,InvoiceItemDesc,InvoiceFullStatus,InvoiceStatus,InvoiceExceptionStatus,BuyerEmail,Accounted
|
||||||
2025-01-01 11:11:11,STOREXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1,PAY_REQUEST_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX2,XXXXXXXXXXXXXXXXXXXXX2,2025-01-01 12:12:12,2025-01-01 12:12:12,2025-01-01 12:12:12,TXIDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2-10,bc1qXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2,BTC-CHAIN,BTC,0.12345678,0,100000.101,12345.6904,USD,0,12345.69,,,Settled,complete,,alice@bob.email,true
|
2025-08-06 15:08:52,6Hba3EYeVpNaZbDduFrJ2jkKsGF69k83dJJUFNB1haX2,6ZiCU7wv2ATm7RQNda1hPr,2DYE61SvSs9Q1DsfKjXd21,2025-08-06 15:08:39,2025-08-06 15:23:39,2025-08-07 15:23:39,dc132e44e053d9023cf20374aea200850efd1e88de28d1344f5a1343bbc0519f-1,tb1q20fhdv9tvl5rz5vfgnn96hwqhy242yqgfyd6d9,BTC-CHAIN,BTC,0.0006219,0,115131.4,71.600,USD,0,71.6,6.8,0,64.8,,,Settled,complete,,user2@local.domain,true
|
||||||
2025-01-01 11:11:11,STOREXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1,PAY_REQUEST_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX2,XXXXXXXXXXXXXXXXXXXXX2,2025-01-01 12:12:12,2025-01-01 12:12:12,2025-01-01 12:12:12,TXIDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2-10,bc1qXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2,BTC-CHAIN,BTC,0.12345678,0,100000.101,12345.6904,USD,0,12345.69,,,Settled,complete,,alice@bob.email,
|
2025-08-06 15:05:20,6Hba3EYeVpNaZbDduFrJ2jkKsGF69k83dJJUFNB1haX2,RuuupW4i5qXpD9biED4V79,8bZWGbYbKJh3moNwjehdfY,2025-08-06 15:04:54,2025-08-06 15:19:54,2025-08-07 15:19:54,a4174c80d019043eed0227c1b2bedf99f432f5fdb27149595810c8299fb09f9d-0,tb1qvfle8fr3xfhksc5gxuuz486t0rpq4td4hnk4tv,BTC-CHAIN,BTC,0.00007254,0,115118.7,8.351,USD,-0.001,8.35,0.7,1,6.65,,,Settled,complete,,user@local.domain,true
|
||||||
2024-12-31 22:22:22,STOREXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1,PAY_REQUEST_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX1,XXXXXXXXXXXXXXXXXXXXX1,2024-12-31 23:23:23,2024-12-31 23:23:23,2024-12-31 23:23:23,TXIDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1-5,bc1qXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1,BTC-CHAIN,BTC,0.01234567,0,95000.505,1172.840,USD,0,1172.84,product_1,Great Product That You Want #1,Settled,complete,,,true
|
|
||||||
2024-12-31 22:22:22,STOREXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1,PAY_REQUEST_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX1,XXXXXXXXXXXXXXXXXXXXX1,2024-12-31 23:23:23,2024-12-31 23:23:23,2024-12-31 23:23:23,TXIDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1-5,bc1qXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1,BTC-CHAIN,BTC,0.01234567,0,95000.505,1172.840,USD,0,1172.84,product_1,Great Product That You Want #1,Settled,complete,,,
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
Date,Crypto,TransactionId,InvoiceId,Confirmed,BalanceChange
|
Date,Crypto,TransactionId,InvoiceId,Confirmed,BalanceChange,Fee,FeeRate,Rate (USD)
|
||||||
2024-12-31 22:22:22,BTC,TXIDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1,INVOICEXXXXXXXXXXXXXX1,true,0.01234567
|
2025-08-06 15:05:20,BTC,a4174c80d019043eed0227c1b2bedf99f432f5fdb27149595810c8299fb09f9d,8bZWGbYbKJh3moNwjehdfY,true,0.00007254,0.00015848,112.397,115118.7
|
||||||
2025-01-01 11:11:11,BTC,TXIDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2,INVOICEXXXXXXXXXXXXXX2,true,0.12345678
|
2025-08-06 15:08:52,BTC,dc132e44e053d9023cf20374aea200850efd1e88de28d1344f5a1343bbc0519f,2DYE61SvSs9Q1DsfKjXd21,true,0.00062190,0.00015854,112.439,115131.4
|
||||||
2025-02-02 02:02:02,BTC,TXIDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX3,,true,-0.00123456
|
2025-08-06 15:13:27,BTC,8cbae88fd430eb257960738577bbba7d5be72b3f8799954fa309d288749431ee,,true,-0.00014869,0.00007615,54.007,115199.95
|
||||||
|
Reference in New Issue
Block a user