Gere código para linguagem contábil de dupla entrada com base em contas. Suporte de conta atual:
Suporte a idiomas contábeis atuais:
A arquitetura suporta expansão. Se você precisar suportar novas contas (como contas bancárias, etc.), poderá adicionar um provedor. Se precisar oferecer suporte a novas linguagens de contabilidade, você poderá adicionar um compilador.
┌───────────┐ ┌──────────┐ ┌────┐ ┌──────────┐ ┌──────────┐
│ translate │->│ provider │->│ IR │->│ compiler │->│ analyser │
└───────────┘ └──────────┘ └────┘ └──────────┘ └──────────┘
alipay beancount alipay
wechat ledger wechat
huobi huobi
htsec htsec
icbc icbc
td td
bmo bmo
Instale usando o Homebrew:
brew install deb-sig/tap/double-entry-generator
Atualize o software usando Homebrew:
brew upgrade deb-sig/tap/double-entry-generator
Basta baixar o arquivo binário da arquitetura correspondente para o seu computador local na página de lançamento do GitHub.
go get -u github.com/deb-sig/double-entry-generator
Consulte a documentação de uso
double-entry-generator translate
--config ./example/alipay/config.yaml
--output ./example/alipay/example-alipay-output.beancount
./example/alipay/example-alipay-records.csv
Entre eles, --config
é o arquivo de configuração. Por padrão, Alipay é usado como provedor e --provider
também pode ser especificado manualmente. Consulte a documentação de uso para obter detalhes. O arquivo gerado por padrão é default_output.beancount
. Se --output
ou -o
especificar um arquivo de saída, ele será enviado para o arquivo especificado. No exemplo acima, os resultados da conversão serão enviados para o arquivo ./example/alipay/example-alipay-output.beancount
.
double-entry-generator translate
--config ./example/wechat/config.yaml
--provider wechat
--output ./example/wechat/example-wechat-output.beancount
./example/wechat/example-wechat-records.csv
double-entry-generator translate
--config ./example/huobi/config.yaml
--provider huobi
--output ./example/huobi/example-huobi-output.beancount
./example/huobi/example-huobi-records.csv
double-entry-generator translate
--config ./example/htsec/config.yaml
--provider htsec
--output ./example/htsec/example-htsec-output.beancount
./example/htsec/example-htsec-records.xlsx
double-entry-generator translate
--config ./example/icbc/credit/config.yaml
--provider icbc
--output ./example/icbc/credit/example-icbc-credit-output.beancount
./example/icbc/credit/example-icbc-credit-records.csv
double-entry-generator translate
--config ./example/td/config.yaml
--provider td
--output ./example/td/example-td-output.beancount
./example/td/example-td-records.csv
double-entry-generator translate
--config ./example/bmo/credit/config.yaml
--provider bmo
--output ./example/bmo/credit/example-bmo-output.beancount
./example/bmo/credit/example-bmo-records.csv
double-entry-generator translate
--config ./example/alipay/config.yaml
--target ledger
--output ./example/alipay/example-alipay-output.ledger
./example/alipay/example-alipay-records.csv
double-entry-generator translate
--config ./example/wechat/config.yaml
--provider wechat
--target ledger
--output ./example/wechat/example-wechat-output.ledger
./example/wechat/example-wechat-records.csv
double-entry-generator translate
--config ./example/huobi/config.yaml
--provider huobi
--target ledger
--output ./example/huobi/example-huobi-output.ledger
./example/huobi/example-huobi-records.csv
double-entry-generator translate
--config ./example/htsec/config.yaml
--provider htsec
--target ledger
--output ./example/htsec/example-htsec-output.ledger
./example/htsec/example-htsec-records.xlsx
double-entry-generator translate
--config ./example/icbc/credit/config.yaml
--provider icbc
--target ledger
--output ./example/icbc/credit/example-icbc-credit-output.ledger
./example/icbc/credit/example-icbc-credit-records.csv
double-entry-generator translate
--config ./example/td/config.yaml
--provider td
--target ledger
--output ./example/td/example-td-output.ledger
./example/td/example-td-records.csv
double-entry-generator translate
--config ./example/bmo/debit/config.yaml
--provider bmo
--target ledger
--output ./example/bmo/debit/example-bmo-output.ledger
./example/bmo/debit/example-bmo-records.csv
Para versões v1.0.0
e superiores, consulte este artigo para obter a fatura Alipay.
Para versões v0.2.0
e inferiores, use este método para obter a fatura: Após fazer login no PC Alipay, visite aqui, selecione o intervalo de tempo, desça até o final da página e clique para baixar os resultados da consulta. Observação: baixe os resultados da consulta, não os detalhes de receitas e despesas.
exemplo-alipay-records.csv
Este exemplo é o formato da fatura obtido no APP “Alipay”.
Exemplo de resultado convertido: exmaple-alipay-output.beancount.
Veja aqui como fazer download do WeChat Pay.
exemplo-wechat-records.csv
Exemplo de resultado convertido: exmaple-wechat-output.beancount.
Atualmente, o projeto garante apenas a conversão de ordens de negociação de moeda em criptografia e ainda não testou contratos, alavancagem e outras ordens de negociação.
Relações públicas bem-vindas :)
Faça login no site da Huobi Global, entre na página de detalhes da transação do pedido de moeda, selecione o intervalo de tempo apropriado e clique no botão exportar no canto superior direito dos detalhes da transação.
exemplo-huobi-records.csv
Exemplo de resultado convertido: exmaple-huobi-output.beancount.
Faça login no cliente de PC da versão de negociação independente eHaitongcai PC, selecione Consulta-Ordem de Entrega na barra de navegação esquerda e clique no botão de consulta à direita para exportar o arquivo Excel da ordem de entrega.
exemplo-htsec-records.csv
Exemplo de resultado convertido: exmaple-htsec-output.beancount.
Como baixar o extrato do ICBC pode ser encontrado aqui.
double-entry-generator
pode identificar automaticamente o tipo de fatura (cartão de débito/cartão de crédito) do Banco Industrial e Comercial da China.
Exemplo de fatura de cartão de débito: example-icbc-debit-records.csv
Exemplo de resultado de conversão de fatura de cartão de débito: exemplo-icbc-debit-output.beancount.
Exemplo de fatura de cartão de crédito: example-icbc-credit-records.csv
Exemplo de resultado convertido de uma fatura de cartão de crédito: exemplo-icbc-credit-output.beancount.
exemplo-td-records.csv
exemplo-bmo-record.csv
exemplo-jd-records.csv
defaultMinusAccount : Assets:FIXME
defaultPlusAccount : Expenses:FIXME
defaultCurrency : CNY
title : 测试
alipay :
rules :
- category : 日用百货
targetAccount : Expenses:Groceries
- category : 餐饮美食
time : 11:00-14:00
targetAccount : Expenses:Food:Lunch
- category : 餐饮美食
time : 16:00-22:00
targetAccount : Expenses:Food:Dinner
- peer : 滴露
targetAccount : Expenses:Groceries
- peer : 苏宁
targetAccount : Expenses:Electronics
- item : 相互宝
targetAccount : Expenses:Insurance
- method : 余额
fullMatch : true
methodAccount : Assets:Alipay
- method : 余额宝
fullMatch : true
methodAccount : Assets:Alipay
- method : 招商银行(9876)
fullMatch : true
methodAccount : Assets:Bank:CN:CMB-9876:Savings
- type : 收入 # 其他转账收款
targetAccount : Income:FIXME
methodAccount : Assets:Alipay
- type : 收入 # 收款码收款
item : 商品
targetAccount : Income:Alipay:ShouKuanMa
methodAccount : Assets:Alipay
# 交易类型为其他
- type : 其他
item : 收益发放
methodAccount : Income:Alipay:YuEBao:PnL
targetAccount : Assets:Alipay
- type : 其他
item : 余额宝-单次转入
targetAccount : Assets:Alipay
methodAccount : Assets:Alipay
- peer : 基金
type : 其他
item : 黄金-买入
methodAccount : Assets:Alipay
targetAccount : Assets:Alipay:Invest:Gold
- peer : 基金
type : 其他
item : 黄金-卖出
methodAccount : Assets:Alipay:Invest:Gold
targetAccount : Assets:Alipay
pnlAccount : Income:Alipay:Invest:PnL
- peer : 基金
type : 其他
item : 买入
methodAccount : Assets:Alipay
targetAccount : Assets:Alipay:Invest:Fund
- peer : 基金
type : 其他
item : 卖出
methodAccount : Assets:Alipay:Invest:Fund
targetAccount : Assets:Alipay
pnlAccount : Income:Alipay:Invest:PnL
defaultMinusAccount
, defaultPlusAccount
e defaultCurrency
são valores padrão globais obrigatórios. Entre eles, defaultMinusAccount
é a conta com o valor padrão reduzido defaultPlusAccount
é a conta com o valor padrão aumentado. defaultCurrency
é a moeda padrão.
alipay
é a configuração específica do provedor O provedor Alipay possui mecanismo de correspondência de regras.
Configuração relacionada à conta alipay
ant. Ele fornece correspondência baseada em regras. Você pode especificar:
peer
(contraparte).item
(descrição do item).type
(recebimento/despesa).method
(forma de recebimento/pagamento).category
(categoria de transação).time
(tempo de negociação).O tempo de negociação pode ser escrito nas duas formas a seguir:
11:00-13:00
11:00:00-13:00:00
Relógio de 24 horas, hora de início e hora de término são separadas por-
.
minPrice
(valor mínimo) e maxPrice
(valor máximo).Você pode usar o separador (sep) para preencher várias palavras-chave em uma única regra. No mesmo objeto, existe um relacionamento OR entre cada palavra-chave.
Você pode usar fullMatch
para definir regras de correspondência de caracteres em uma única regra. true
significa usar correspondência completa, false
significa usar correspondência parcial. Se este item não for definido, a correspondência inclusiva será usada por padrão.
Em uma única regra, você pode usar tag
para definir a tag do pipeline e usar sep
como separador.
Você pode usar ignore
em uma única regra para definir se deseja ignorar as transações que correspondem à regra. true
significa ignorar as transações que correspondem à regra, fasle
significa não ignorar e o padrão é false
.
Se a correspondência for bem-sucedida, targetAccount
, methodAccount
e outras contas definidas na regra serão usadas para substituir a conta definida padrão.
A ordem da correspondência de regras é: comece a correspondência a partir do primeiro item na configuração rules
e continue a correspondência se a correspondência for bem-sucedida. Ou seja, a prioridade das regras subsequentes é maior que a das regras anteriores.
Alipay fornece um campo de “método de transação” para identificar fundos que entram e saem da conta. Desta forma, você pode utilizar diretamente o “Método de Transação” e o campo “Receitas/Despesas” para confirmar se a conta é um aumento ou uma diminuição. O método de contabilidade de partidas dobradas requer pelo menos duas contas para cada transação. A outra conta pode ser inserida através de “peer”, “mercadoria” (item), “recebimento/despesa” (tipo) e “método de transação” (método). ) é obtido por múltiplas correspondências de inclusão. Se a correspondência for bem-sucedida, targetAccount
e methodAccount
definidas na regra serão usadas e, ao confirmar se a transação é receita ou despesa, o relacionamento positivo e negativo entre targetAccount
e methodAccount
será determinado para substituir o aumento ou diminuição da conta padrão definida .
O relacionamento da conta entre targetAccount
e methodAccount
é o seguinte:
Receitas/Despesas | Classificação de transações | menosConta | maisConta |
---|---|---|---|
renda | * | conta alvo | métodoConta |
renda | Reembolso | conta alvo | métodoConta |
despesas | * | métodoConta | conta alvo |
outro | * | métodoConta | conta alvo |
outro | Reembolso | conta alvo | métodoConta |
Quando o tipo de transação for "Outro", você mesmo precisará definir manualmente a conta do empréstimo. Neste momento, o software pensará
methodAccount
é uma conta de crédito etargetAccount
é uma conta de débito.
defaultMinusAccount : Assets:FIXME
defaultPlusAccount : Expenses:FIXME
defaultCommissionAccount : Expenses:Commission:FIXME
defaultCurrency : CNY
title : 测试
wechat :
rules :
# type (additional condition)
- type : 收入 # 微信红包
method : /
item : /
targetAccount : Income:Wechat:RedPacket
- type : / # 转入零钱通
txType : 转入零钱
peer : /
item : /
targetAccount : Assets:Digital:Wechat:Cash
- type : / # 零钱提现
txType : 零钱提现
targetAccount : Assets:Digital:Wechat:Cash
commissionAccount : Expenses:Wechat:Commission
- type : / # 零钱充值
txType : 零钱充值
targetAccount : Assets:Digital:Wechat:Cash
- type : / # 零钱通转出-到工商银行(9876)
txType : 零钱通转出-到工商银行(9876)
targetAccount : Assets:Bank:CN:ICBC:Savings
- peer : 云膳过桥米线,餐厅
sep : ' , '
time : 11:00-15:00
targetAccount : Expenses:Food:Meal:Lunch
- peer : 云膳过桥米线,餐厅
sep : ' , '
time : 16:30-21:30
targetAccount : Expenses:Food:Meal:Dinner
- peer : 餐厅
time : 23:55-00:10 # test T+1
targetAccount : Expenses:Food:Meal:MidNight
- peer : 餐厅
time : 23:50-00:05 # test T-1
targetAccount : Expenses:Food:Meal:MidNight
- peer : 房东
type : 支出
targetAccount : Expenses:Housing:Rent
- peer : 用户
type : 收入
targetAccount : Income:Service
- peer : 理财通
type : /
targetAccount : Assets:Trade:Tencent:LiCaiTong
- peer : 建设银行
txType : 信用卡还款
targetAccount : Liabilities:Bank:CN:CCB
- method : / # 一般为收入,存入零钱
methodAccount : Assets:Digital:Wechat:Cash
- method : 零钱
fullMatch : true
methodAccount : Assets:Digital:Wechat:Cash
- method : 零钱通
fullMatch : true
methodAccount : Assets:Digital:Wechat:Cash
- method : 工商银行
methodAccount : Assets:Bank:CN:ICBC:Savings
- method : 中国银行
methodAccount : Assets:Bank:CN:BOC:Savings
defaultMinusAccount
, defaultPlusAccount
e defaultCurrency
são valores padrão globais obrigatórios. Entre eles, defaultMinusAccount
é a conta com o valor padrão reduzido defaultPlusAccount
é a conta com o valor padrão aumentado. defaultCurrency
é a moeda padrão.
defaultCommissionAccount
é a conta de taxa de serviço padrão. Se não houver transações relacionadas a taxas de serviço, você não precisará preenchê-la. Porém, o autor ainda recomenda o preenchimento de uma conta FIXME de espaço reservado, caso contrário o conversor sairá com erro ao encontrar uma transação com taxa de serviço.
wechat
é a configuração específica do provedor. O provedor WeChat possui mecanismo de correspondência de regras.
wechat
é uma configuração relacionada ao WeChat. Ele fornece correspondência baseada em regras. Você pode especificar:
peer
(contraparte).item
(nome do item).type
(recebimento/despesa).txType
(tipo de transação).method
(forma de pagamento).time
(horário de negociação).O tempo de negociação pode ser escrito nas duas formas a seguir:
11:00-13:00
11:00:00-13:00:00
Relógio de 24 horas, hora de início e hora de término são separadas por-
.
minPrice
(valor mínimo) e maxPrice
(valor máximo).Você pode usar o separador (sep) para preencher várias palavras-chave em uma única regra. No mesmo objeto, existe um relacionamento OR entre cada palavra-chave.
Você pode usar fullMatch
para definir regras de correspondência de caracteres em uma única regra. true
significa usar correspondência completa, false
significa usar correspondência parcial. Se este item não for definido, a correspondência inclusiva será usada por padrão.
Em uma única regra, você pode usar tag
para definir a tag do pipeline e usar sep
como separador.
Você pode usar ignore
em uma única regra para definir se deseja ignorar as transações que correspondem à regra. true
significa ignorar as transações que correspondem à regra, fasle
significa não ignorar e o padrão é false
.
Se a correspondência for bem-sucedida, targetAccount
, methodAccount
e outras contas definidas na regra serão usadas para substituir a conta definida padrão.
A ordem da correspondência de regras é: comece a correspondência a partir do primeiro item na configuração rules
e continue a correspondência se a correspondência for bem-sucedida. Ou seja, a prioridade das regras subsequentes é maior que a das regras anteriores.
A fatura do WeChat fornece um campo de “método de transação” para identificar fundos que entram e saem da conta. Desta forma, você pode utilizar diretamente o “Método de Transação” e o campo “Receitas/Despesas” para confirmar se a conta é um aumento ou uma diminuição. O método de contabilidade de partidas dobradas requer pelo menos duas contas para cada transação. A outra conta pode ser inserida através de “peer”, “mercadoria” (item), “recebimento/despesa” (tipo) e “método de transação” (método). ) é obtido por múltiplas correspondências de inclusão. Se a configuração do Alipay for semelhante, se a correspondência for bem-sucedida, serão usados targetAccount
e methodAccount
definidos nas regras e, ao confirmar se a transação é receita ou despesa, a relação positiva e negativa entre targetAccount
e methodAccount
será determinada para substituir a conta de aumento ou diminuição definida por padrão.
O relacionamento da conta entre targetAccount
e methodAccount
é o seguinte:
Receitas/Despesas | menosConta | maisConta |
---|---|---|
renda | conta alvo | métodoConta |
despesas | métodoConta | conta alvo |
defaultCashAccount : Assets:Huobi:Cash
defaultPositionAccount : Assets:Huobi:Positions
defaultCommissionAccount : Expenses:Huobi:Commission
defaultPnlAccount : Income:Huobi:PnL
defaultCurrency : USDT
title : 测试
huobi :
rules :
- item : BTC/USDT,BTC1S/USDT # multiple keywords with separator
type : 买入
txType : 币币交易
fullMatch : true
sep : ' , ' # define separator as a comma
cashAccount : Assets:Rule1:Cash
positionAccount : Assets:Rule1:Positions
CommissionAccount : Expenses:Rule1:Commission
pnlAccount : Income:Rule1:PnL
defaultCashAccount
, defaultPositionAccount
, defaultCommissionAccount
, defaultPnlAccount
e defaultCurrency
são valores padrão globais obrigatórios.
huobi
é a configuração específica do provedor. O provedor Huobi possui mecanismo de correspondência de regras.
huobi
é a configuração relacionada ao Huobi. Ele fornece correspondência baseada em regras. Você pode especificar:
item
(par de negociação).type
(direção de negociação).txType
(tipo de transação).time
(horário de negociação).O tempo de negociação pode ser escrito nas duas formas a seguir:
11:00-13:00
11:00:00-13:00:00
Relógio de 24 horas, hora de início e hora de término são separadas por-
.
Você pode usar o separador (sep) para preencher várias palavras-chave em uma única regra. No mesmo objeto, existe um relacionamento OR entre cada palavra-chave.
Você pode usar fullMatch
para definir regras de correspondência de caracteres em uma única regra. true
significa usar correspondência completa, false
significa usar correspondência parcial. Se este item não for definido, a correspondência inclusiva será usada por padrão.
Você pode usar ignore
em uma única regra para definir se deseja ignorar as transações que correspondem à regra. true
significa ignorar as transações que correspondem à regra, fasle
significa não ignorar e o padrão é false
.
Se a correspondência for bem-sucedida, cashAccount
, positionAccount
, commissionAccount
e pnlAccount
definidos na regra serão usados para substituir a definição padrão.
A ordem da correspondência de regras é: comece a correspondência a partir do primeiro item na configuração rules
e continue a correspondência se a correspondência for bem-sucedida. Ou seja, a prioridade das regras subsequentes é maior que a das regras anteriores.
em:
defaultCashAccount
é a conta de capital padrão, geralmente usada para armazenar USDT.defaultPositionAccount
é a conta de posição padrão.defaultCommissionAccount
é a conta de comissão padrão.defaultPnlAccount
é a conta padrão de lucros e perdas.defaultCurrency
é a moeda padrão. defaultCashAccount : Assets:Htsec:Cash
defaultPositionAccount : Assets:Htsec:Positions
defaultCommissionAccount : Expenses:Htsec:Commission
defaultPnlAccount : Income:Htsec:PnL
defaultCurrency : CNY
title : 测试
htsec :
rules :
- item : 兴业转债
type : 卖
sep : ' , '
cashAccount : Assets:Rule1:Cash
positionAccount : Assets:Rule1:Positions
CommissionAccount : Expenses:Rule1:Commission
pnlAccount : Income:Rule1:PnL
defaultCashAccount
, defaultPositionAccount
, defaultCommissionAccount
, defaultPnlAccount
e defaultCurrency
são valores padrão globais obrigatórios.
htsec
é a configuração específica do provedor O provedor Htsec possui mecanismo de correspondência de regras.
htsec
é uma configuração relacionada à Haitong Securities. Ele fornece correspondência baseada em regras. Você pode especificar:
item
(direção de negociação-código de segurança-capitalização de mercado de títulos).type
(direção de negociação).time
(tempo de negociação).O tempo de negociação pode ser escrito nas duas formas a seguir:
11:00-13:00
11:00:00-13:00:00
> Relógio de 24 horas, use-
para separar a hora de início e a hora de término.
Você pode usar o separador (sep) para preencher várias palavras-chave em uma única regra. No mesmo objeto, existe um relacionamento OR entre cada palavra-chave.
Você pode usar fullMatch
para definir regras de correspondência de caracteres em uma única regra. true
significa usar correspondência completa, false
significa usar correspondência parcial. Se este item não for definido, a correspondência inclusiva será usada por padrão.
Você pode usar ignore
em uma única regra para definir se deseja ignorar as transações que correspondem à regra. true
significa ignorar as transações que correspondem à regra, fasle
significa não ignorar e o padrão é false
.
Se a correspondência for bem-sucedida, cashAccount
, positionAccount
, commissionAccount
e pnlAccount
definidos na regra serão usados para substituir a definição padrão.
A ordem da correspondência de regras é: comece a correspondência a partir do primeiro item na configuração rules
e continue a correspondência se a correspondência for bem-sucedida. Ou seja, a prioridade das regras subsequentes é maior que a das regras anteriores.
em:
defaultCashAccount
é a conta de capital padrão, geralmente usada para armazenar fundos disponíveis em contas de títulos.defaultPositionAccount
é a conta de posição padrão.defaultCommissionAccount
é a conta de comissão padrão.defaultPnlAccount
é a conta padrão de lucros e perdas.defaultCurrency
é a moeda padrão. defaultMinusAccount : Assets:FIXME
defaultPlusAccount : Expenses:FIXME
defaultCashAccount : Liabilities:Bank:CN:ICBC
defaultCurrency : CNY
title : 测试
icbc :
rules :
- peer : 财付通,支付宝
ignore : true
- peer : 广东联合电子收费股份
targetAccount : Expenses:Transport:Highway
- txType : 人民币自动转帐还款
targetAccount : Assets:Bank:CN:ICBC:Savings
- peer : XX旗舰店
targetAccount : Expenses:Joy
defaultMinusAccount
, defaultPlusAccount
, defaultCashAccount
e defaultCurrency
são valores padrão globais obrigatórios. Entre eles, defaultMinusAccount
é a conta com o valor padrão reduzido, defaultPlusAccount
é a conta com o valor padrão aumentado defaultCashAccount
é a conta de cartão bancário usada por padrão nesta configuração (equivalente ao methodAccount
no Alipay/WeChat). defaultCurrency
é a moeda padrão.
icbc
é a configuração relacionada ao Banco Industrial e Comercial da China. Ele fornece correspondência baseada em regras. Você pode especificar:
peer
(contraparte).type
(recebimento/despesa).txType
(tipo de transação). Em uma única regra, você pode usar o separador sep
para preencher várias palavras-chave. No mesmo objeto, existe um relacionamento OR entre cada palavra-chave.
Você pode usar fullMatch
para definir regras de correspondência de caracteres em uma única regra. true
significa usar correspondência completa, false
significa usar correspondência parcial. Se este item não for definido, a correspondência inclusiva será usada por padrão.
Em uma única regra, você pode usar tag
para definir a tag do pipeline e usar sep
como separador.
Você pode usar ignore
em uma única regra para definir se deseja ignorar as transações que correspondem à regra. true
significa ignorar as transações que correspondem à regra, fasle
significa não ignorar e o padrão é false
.
Se a correspondência for bem-sucedida, a conta targetAccount
definida na regra será usada para substituir a conta definida padrão.
A ordem da correspondência de regras é: comece a correspondência a partir do primeiro item na configuração rules
e continue a correspondência se a correspondência for bem-sucedida. Ou seja, a prioridade das regras subsequentes é maior que a das regras anteriores.
O valor registrado no extrato do ICBC é dividido em receitas/despesas. Por meio desse mecanismo, pode-se avaliar a relação positiva e negativa entre a conta do cartão bancário na transação. Se a configuração do Alipay for semelhante, se a correspondência for bem-sucedida, serão usados targetAccount
e valor global defaultCashAccount
definidos na regra e, ao confirmar se a transação é receita ou despesa, a relação positiva e negativa entre targetAccount
e defaultCashAccount
será determinada para substituir a conta de aumento ou diminuição definida por padrão.
O relacionamento da conta entre targetAccount
e defaultCashAccount
é o seguinte:
Receitas/Despesas | menosConta | maisConta |
---|---|---|
renda | conta alvo | conta padrãoCashAccount |
despesas | conta padrãoCashAccount | conta alvo |
defaultMinusAccount : Assets:FIXME
defaultPlusAccount : Expenses:FIXME
defaultCashAccount : Assets:DebitCard:TDChequing
defaultCurrency : CAD
title : 测试
td :
rules :
- item : " T T "
targetAccount : Expenses:Grocery
tag : tt_tag
- item : " DOLLARAMA "
targetAccount : Expenses:Grocery
tag : grocery_tag1,cheap_tag2
- item : " DEVELOPM MSP "
targetAccount : Income:Salary
- type : 收入
item : " SEND E-TFR "
targetAccount : Income:FIXME
defaultMinusAccount
, defaultPlusAccount
, defaultCashAccount
e defaultCurrency
são valores padrão globais obrigatórios. Entre eles, defaultMinusAccount
é a conta com o valor padrão reduzido, defaultPlusAccount
é a conta com o valor padrão aumentado defaultCashAccount
é a conta de cartão bancário usada por padrão nesta configuração (equivalente ao methodAccount
no Alipay/WeChat). defaultCurrency
é a moeda padrão.
td
é uma configuração relacionada ao Toronto-Dominion Bank. Ele fornece correspondência baseada em regras. Como o projeto de lei do próprio TD é relativamente simples, não há muitas regras que possam ser especificadas:
item
: (item comercial).type
: Correspondência exata/inclusiva de (recebimento/despesa). Em uma única regra, você pode usar o separador sep
para preencher várias palavras-chave. No mesmo objeto, existe um relacionamento OR entre cada palavra-chave.
Você pode usar fullMatch
para definir regras de correspondência de caracteres em uma única regra. true
significa usar correspondência completa, false
significa usar correspondência parcial. Se este item não for definido, a correspondência inclusiva será usada por padrão.
Em uma única regra, você pode usar tag
para definir a tag Beancount ou Ledger Meta Tag do pipeline e usar sep
como separador.
Você pode usar ignore
em uma única regra para definir se deseja ignorar as transações que correspondem à regra. true
significa ignorar as transações que correspondem à regra, fasle
significa não ignorar e o padrão é false
.
Se a correspondência for bem-sucedida, a conta targetAccount
definida na regra será usada para substituir a conta definida padrão.
A ordem da correspondência de regras é: comece a correspondência a partir do primeiro item na configuração rules
e continue a correspondência se a correspondência for bem-sucedida. Ou seja, a prioridade das regras subsequentes é maior que a das regras anteriores.
O valor registrado na fatura TD é dividido em receitas/despesas. Através deste mecanismo, pode-se avaliar a relação positiva e negativa entre a conta do cartão bancário na transação. Se a configuração do Alipay for semelhante, se a correspondência for bem-sucedida, serão usados targetAccount
e valor global defaultCashAccount
definidos na regra e, ao confirmar se a transação é receita ou despesa, a relação positiva e negativa entre targetAccount
e defaultCashAccount
será determinada para substituir a conta de aumento ou diminuição definida por padrão.
O relacionamento da conta entre targetAccount
e defaultCashAccount
é o seguinte:
Receitas/Despesas | menosConta | maisConta |
---|---|---|
renda | conta alvo | conta padrãoCashAccount |
despesas | conta padrãoCashAccount | conta alvo |
defaultMinusAccount : Assets:FIXME
defaultPlusAccount : Expenses:FIXME
defaultCashAccount : Assets:DebitCard:BMOChequing
defaultCurrency : CAD
title : 测试
bmo :
rules :
- item : " T T "
targetAccount : Expenses:Grocery
tag : tt_tag
- item : " DOLLARAMA "
targetAccount : Expenses:Grocery
tag : grocery_tag1,cheap_tag2
- item : " DEVELOPM MSP "
targetAccount : Income:Salary
- type : 收入
item : " SEND E-TFR "
targetAccount : Income:FIXME
defaultMinusAccount
, defaultPlusAccount
, defaultCashAccount
e defaultCurrency
são valores padrão globais obrigatórios. Entre eles, defaultMinusAccount
é a conta com o valor padrão reduzido, defaultPlusAccount
é a conta com o valor padrão aumentado defaultCashAccount
é a conta de cartão bancário usada por padrão nesta configuração (equivalente ao methodAccount
no Alipay/WeChat). defaultCurrency
é a moeda padrão.
bmo
é uma configuração relacionada ao Toronto-Dominion Bank. Ele fornece correspondência baseada em regras. Como o faturamento próprio do BMO é relativamente simples, não há muitas regras que possam ser especificadas:
item
: (item comercial).type
: Correspondência exata/inclusiva de (recebimento/despesa). Em uma única regra, você pode usar o separador sep
para preencher várias palavras-chave. No mesmo objeto, existe um relacionamento OR entre cada palavra-chave.
Você pode usar fullMatch
para definir regras de correspondência de caracteres em uma única regra. true
significa usar correspondência completa, false
significa usar correspondência parcial. Se este item não for definido, a correspondência inclusiva será usada por padrão.
Em uma única regra, você pode usar tag
para definir a tag Beancount ou Ledger Meta Tag do pipeline e usar sep
como separador.
Você pode usar ignore
em uma única regra para definir se deseja ignorar as transações que correspondem à regra. true
significa ignorar as transações que correspondem à regra, fasle
significa não ignorar e o padrão é false
.
Se a correspondência for bem-sucedida, a conta targetAccount
definida na regra será usada para substituir a conta definida padrão.
A ordem da correspondência de regras é: comece a correspondência a partir do primeiro item na configuração rules
e continue a correspondência se a correspondência for bem-sucedida. Ou seja, a prioridade das regras subsequentes é maior que a das regras anteriores.
O valor registrado na fatura do BMO é dividido em receitas/despesas. Por meio desse mecanismo, pode-se avaliar a relação positiva e negativa entre a conta do cartão bancário na transação. Se a configuração do Alipay for semelhante, se a correspondência for bem-sucedida, serão usados targetAccount
e valor global defaultCashAccount
definidos na regra e, ao confirmar se a transação é receita ou despesa, a relação positiva e negativa entre targetAccount
e defaultCashAccount
será determinada para substituir a conta de aumento ou diminuição definida por padrão.
O relacionamento da conta entre targetAccount
e defaultCashAccount
é o seguinte:
Receitas/Despesas | menosConta | maisConta |
---|---|---|
renda | conta alvo | conta padrãoCashAccount |
despesas | conta padrãoCashAccount | conta alvo |
defaultMinusAccount : Assets:FIXME
defaultPlusAccount : Expenses:FIXME
defaultCurrency : CNY
title : 测试
jd :
rules :
- method : 京东白条
methodAccount : Liabilities:Baitiao
- method : 小金库零用钱
methodAccount : Assets:EPay:JD
- item : 椰子
targetAccount : Expenses:Food
- item : 京东小金库-转入
peer : 京东金融
targetAccount : Assets:EPay:JD
- category : 美妆个护
targetAccount : Expenses:MakeUp
- item : "食品酒饮"
targetAccount : Assets:Food
- peer : 亲密卡
targetAccount : Expenses:Prpaid
- item : 白条,还款
targetAccount : Liabilities:Baitiao
- item : 京东小金库收益
fullMatch : true
targetAccount : Income:PnL:JD
methodAccount : Assets:EPay:JD
O formato das contas JD.com é geralmente semelhante ao Alipay.
Quando a categoria de transação da fatura do JD.com不计收支
, o processamento da conta é dividido em duas situações:
Situação geral:收/付款方式
(ou seja, o campo correspondido por method
) é geralmente a conta de despesas, e交易分类
(ou seja, o campo correspondido por category
) é geralmente a conta de receitas. Por exemplo, quando os fundos do cartão bancário são transferidos para o pequeno cofre de Jingdong,收/付款方式
é cartão bancário, e a transação é交易分类
como pequeno cofre ao reembolsar o dinheiro de I Tiao,收/付款方式
é cartão bancário ou pequeno; dinheiro de bolso do cofre, e交易分类
como Bai Tiao.
Caso especial: Quando o prefixo da交易说明
(ou seja, o campo correspondente ao item
) é冻结-
ou解冻-
é um caso especial em que不计收支
. No caso de冻结-
,收/付款方式
é a conta de despesas; no caso de解冻-
收/付款方式
é a conta de receitas, mas o valor é 0. Atualmente, todas as transações relacionadas ao冻结
e解冻
serão ignoradas.
O relacionamento da conta entre targetAccount
e methodAccount
é o seguinte:
Receitas/Despesas | menosConta | maisConta |
---|---|---|
renda | conta alvo | métodoConta |
despesas | métodoConta | conta alvo |
Independentemente de receitas e despesas | métodoConta | conta alvo |