Feed de dados do evento de faturamento - AWS Marketplace

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Feed de dados do evento de faturamento

Este feed de dados fornece informações sobre eventos de faturamento, inclusive faturamento e desembolsos.

Por exemplo, você pode usar esse feed de dados para saber quando e qual comprador é cobrado. Você também pode usar as SQLconsultas de exemplo para analisar os dados desse feed de dados.

Este feed de dados contém informações associadas a eventos de faturamento dos quais você é o vendedor do registro. Para acordos feitos por meio de parceiros de canal, este feed de dados contém informações sobre eventos de faturamento entre o fabricante e o vendedor do registro.

O feed de dados do evento de faturamento é atualizado a cada 24 horas, para que novos dados estejam disponíveis diariamente.

Os dados dos eventos de faturamento são imutáveis.

A tabela a seguir explica os nomes e as descrições das colunas do feed de dados.

Nome da coluna Descrição
billing_event_id Um identificador de um evento de faturamento. Este ID é exclusivo no ambiente do vendedor.
from_account_id

A conta que iniciou o evento de faturamento. Se transaction_type for SELLER_REV_SHARE, é a conta pagante do comprador. Esta é uma chave externa para o feed de dados da conta.

Pode ser usado para entrar no feed de dados Account no campo account_id.

to_account_id A conta que recebe o valor da transação do produto. Esta é uma chave externa para o feed de dados da conta.

Pode ser usado para entrar no feed de dados Account no campo account_id.

end_user_account_id A conta que usa o produto. Esta conta pode ser diferente das contas pagante e do comprador.

Pode ser usado para entrar no feed de dados Account no campo account_id.

product_id O identificador do produto. Esta é uma chave externa para o feed de dados do produto.

Pode ser usado para entrar no feed de dados Product no campo product_id.

ação

O tipo de ação para este evento. Os valores possíveis são:

  • INVOICED: o comprador foi cobrado pelo valor.

  • FORGIVEN: o comprador foi cobrado pelo valor e a AWS reverteu a cobrança.

  • DISBURSED: o vendedor recebeu esse valor. Isso pode incluir um mês de faturas ou ser um desembolso sob demanda.

transaction_type

O tipo de transação. Para ver exemplos, consulte Cenários de tributação. Os valores possíveis são:

  • SELLER_REV_SHARE: um valor positivo; este é o preço que o vendedor estabeleceu no acordo com o comprador.

  • SELLER_TAX_SHARE: um valor positivo; este é o valor adicionado a SELLER_REV_SHARE para cobrir os impostos que o vendedor deve.

  • AWS_REV_SHARE: um valor negativo; esta é a taxa de oferta.

  • AWS_TAX_SHARE— Um valor positivo; esse é o valor dos impostos AWS arrecadados, além deSELLER_REV_SHARE. Esse valor não afeta o saldo do vendedor. Este valor não é desembolsado e é fornecido para o conhecimento do vendedor sobre os impostos faturados ao comprador e enviados às autoridades em nome do vendedor.

  • transaction_type_REFUND: o valor do reembolso solicitado pelo comprador.

  • transaction_type_CREDIT— O valor AWS credita o comprador.

  • BALANCE_ADJUSTMENT— Um ajuste feito por AWS para resolver problemas de faturamento.

  • DISBURSEMENT: se o valor de action é DISBURSED e o valor de balance_impacting é 1, esse é o valor pago ao vendedor. Se o valor de action for INVOICED, esse registro negará o registro parent_billing_event_id na totalidade ou em parte. Neste caso, o desembolso relacionado disbursement_billing_event_id é exibido e o valor de balance_impacting é 0.

  • DISBURSEMENT_FAILURE: nega a transação.

parent_billing_event_id

Quando o valor de broker_id é AWS_INC, o valor de action é DISBURSED ou FORGIVEN e o valor de transaction_type é DISBURSEMENT, o parent_billing_event_id se refere ao billing_event_id original que iniciou esse evento de cobrança. Se action tiver outro valor, este campo será nulo.

Quando o valor de broker_id é AWS_EUROPE, o parent_billing_event_id se refere ao billing_event_id original que iniciou esse evento de cobrança para os seguintes cenários:

  • O valor de action é FORGIVEN ou INVOICED e o valor de transaction_type é AWS_REV_SHARE, AWS_REV_SHARE_REFUND ou SELLER_REV_SHARE_REFUND.

  • O valor de action é DISBURSED e o valor de transaction_type é ANY (excluindo DISBURSEMENT_FAILURE).

  • O valor é transaction_type, AWS_TAX_SHARE, AWS_TAX_SHARE_REFUND, SELLER_TAX_SHARE ou SELLER_TAX_SHARE_REFUND.

  • O valor de action é DISBURSED e o valor de transaction_type é DISBURSEMENT_FAILURE.

Quando o valor de broker_id é AWS_EUROPE, o parent_billing_event_id se refere ao billing_event_id original do evento anterior de cobrança de desembolso bem-sucedido para o seguinte cenário:

  • O valor de action é DISBURSED e o valor de transaction_type é DISBURSEMENT_FAILURE.

Quando o valor de broker_id é AWS_EUROPE, esse campo é nulo para todos os cenários restantes.

disbursement_billing_event_id

O desembolso relacionado quando o valor de action é DISBURSED e um dos seguintes aspectos é verdadeiro:

  • transaction_type like ('SELLER%')

  • transaction_type like ('AWS%')

Em todos os outros cenários, esse valor é nulo.

valor O valor do evento de faturamento.
currency O código da moeda ISO 639.
balance_impacting Se o valor é levado em conta no cálculo dos desembolsos do vendedor. Um valor de 0 indica que o valor é exibido para fins informativos e não tem efeito sobre o saldo. Um valor de 1 indica que esse valor é considerado na determinação dos desembolsos do vendedor.
invoice_date A data em que a fatura foi criada.
payment_due_date

Quando o valor de action é INVOICED, a data de vencimento da fatura.

usage_period_start_date A data inicial do período no registro.
usage_period_end_date A data final do período no registro.
invoice_id

O ID da AWS fatura.

billing_address_id A referência do endereço de faturamento do pagante no feed de dados do endereço.

Pode ser usado para entrar no feed de dados Address no campo address_id.

transaction_reference_id

Um identificador que permite que você faça referência cruzada de dados dos seguintes relatórios:

bank_trace_id

Para transações de desembolso (transaction_type é DISBURSEMENT e a ação é DISBURSED), o ID de rastreamento atribuído pelo banco. O ID de rastreamento pode ser usado para correlacionar com relatórios fornecidos pelo banco do vendedor.

broker_id

Um identificador da entidade comercial que facilitou a transação. Os valores possíveis são:

  • AWS_INC

    — O identificador da AWS, Inc. (com sede nos Estados Unidos).

  • AWS_EUROPE

    — O identificador da Amazon Web Services EMEA SARL (com sede em Luxemburgo).

  • NULL

    - Transações anteriores sem um broker_id explícito foram facilitadas pela AWS_INC.

buyer_transaction_reference_id

Um identificador que agrupa todos os registros relacionados no feed de faturamento usando GROUP BY ou as funções de janela construídas emSQL. Esses registros relacionados podem conter a fatura do comprador, a fatura do vendedor e os impostos sobre valor agregado (VATs) sobre a taxa do anúncio.

Cenários de tributação

O modelo de tributação que está em vigor para o país e o estado do comprador e do vendedor determina como os impostos são cobrados e enviados. Veja a seguir os cenários possíveis:

  • Os impostos são coletados e remetidos por AWS. Nestes casos, o transaction_type é AWS_TAX_SHARE.

  • Os impostos são cobrados pelo vendedor AWS, desembolsados e enviados pelo vendedor às autoridades fiscais. Nestes casos, o transaction_type é SELLER_TAX_SHARE.

  • Os impostos não são cobrados por AWS. O vendedor deve calcular os impostos e enviá-los para as autoridades fiscais. Nesses casos, AWS Marketplace não realiza cálculos fiscais nem recebe informações tributárias. O vendedor paga os impostos da participação na receita.

Exemplos de feed de dados do evento de faturamento

Esta seção mostra exemplos do período de dados do evento de faturamento no momento do faturamento e um mês depois. Observe o seguinte em todas as tabelas nesta seção:

  • Em feeds de dados, os valores billing_event_id são strings alfanuméricas de 40 caracteres. Eles são mostrados aqui como strings de dois caracteres por motivo de legibilidade.

  • No feed de dados, essa informação é apresentada em uma única tabela. Para fins de legibilidade, os dados são mostrados em várias tabelas aqui, e as colunas não são mostradas.

Para os exemplos nesta seção, suponha o seguinte:

  • Arnav é comprador.

    • O ID da conta dele é 737399998888.

    • Ele está na França, que é sujeita às leis de facilitadores do mercado. Para obter mais informações, consulte Ajuda com impostos da Amazon Web Service.

    • Ele comprou prod-o4grxfafcxxxx e foi cobrado no valor de 120,60 USD pelo uso mensal desse produto.

    • Ele pagou a fatura dentro de um mês.

  • Jane é fabricante.

    • O ID da conta dela é 111122223333.

  • Paulo é vendedor de registros.

    • O ID da conta dele é 777788889999.

    • Ele mora no Kansas, que não está sujeito às leis de facilitadores do mercado.

Feed de dados do evento de faturamento para o vendedor de registro

Como vendedor de registro, Paulo cobra o comprador, Arnav.

As tabelas a seguir mostram as informações relevantes no feed de dados de Paulo quando ele cobra Arnav.

billing_event_id from_account_id to_account_id end_user_account_id product_id action transaction_type
I0 737399998888 777788889999 737399998888 prod-o4grxfafcxxxx INVOICED SELLER_REV_SHARE
I1 737399998888 AWS 737399998888 prod-o4grxfafcxxxx INVOICED AWS_TAX_SHARE
I2 777788889999 111122223333 737399998888 prod-o4grxfafcxxxx INVOICED SELLER_REV_SHARE
I3 777788889999 AWS 737399998888 prod-o4grxfafcxxxx INVOICED AWS_REV_SHARE

parent_billing_event_id disbursement_billing_event_id amount currency invoice_date invoice_id
100 USD 2018-12-31T00:00:00Z 781216640
20.6 USD 2018-12-31T00:00:00Z 781216640
-80 USD 2018-12-31T00:04:07Z 788576665
-0.2 USD 2018-12-31T00:04:07Z 788576665

As tabelas a seguir mostram as informações relevantes no feed de dados de Paulo no final do mês, após Arnav fazer o pagamento da fatura.

billing_event_id from_account_id to_account_id end_user_account_id product_id action transaction_type
I10 737399998888 777788889999 737399998888 DISBURSED SELLER_REV_SHARE
I12 777788889999 111122223333 737399998888 DISBURSED SELLER_REV_SHARE
I13 777788889999 AWS 737399998888 prod-o4grxfafcxxxx DISBURSED AWS_REV_SHARE
I14 AWS 777788889999 DISBURSED DISBURSEMENT

parent_billing_event_id disbursement_billing_event_id amount currency invoice_date invoice_id
I0 I14 -100 USD 2018-12-31T00:00:00Z 781216640
I2 I14 80 USD 2018-12-31T00:04:07Z 788576665
I3 I14 0.2 USD 2018-12-31T00:04:07Z 788576665
19.8 USD

Feed de dados do evento de faturamento para o fabricante

As tabelas a seguir mostram as informações relevantes no feed de dados de Jane quando Paulo cobra Arnav.

billing_event_id from_account_id to_account_id end_user_account_id product_id action transaction_type
I5 777788889999 111122223333 prod-o4grxfafcxxxx INVOICED SELLER_REV_SHARE
I6 777788889999 111122223333 prod-o4grxfafcxxxx INVOICED SELLER_TAX_SHARE
I7 111122223333 AWS prod-o4grxfafcxxxx INVOICED AWS_REV_SHARE

parent_billing_event_id disbursement_billing_event_id amount currency invoice_date invoice_id
73.5 2018-12-31T00:04:07Z 788576665
6.5 2018-12-31T00:04:07Z 788576665
-7.35 2018-12-31T00:04:07Z 788576665

As tabelas a seguir mostram as informações relevantes no feed de dados de Jane no final do mês, após o pagamento da fatura.

billing_event_id from_account_id to_account_id end_user_account_id product_id action transaction_type
I30 777788889999 111122223333 prod-o4grxfafcxxxx DISBURSED SELLER_REV_SHARE
I31 777788889999 111122223333 prod-o4grxfafcxxxx DISBURSED SELLER_TAX_SHARE
I32 111122223333 AWS prod-o4grxfafcxxxx DISBURSED AWS_REV_SHARE
I33 AWS 111122223333 DISBURSED DISBURSEMENT

parent_billing_event_id disbursement_billing_event_id amount currency invoice_date invoice_id
I5 I33 -73.5 USD
I6 I33 -6.5 USD
I7 I33 7.35 USD
72.65 USD

Consultas de exemplo

Conforme descrito em Coletando e analisando dados com feeds de dados, é possível usar o Athena para executar consultas nos dados coletados e armazenados como feeds de dados no bucket gerenciado do Amazon S3. Esta seção fornece alguns exemplos de maneiras comuns de fazer isso. Todos os exemplos partem do princípio de que é utilizada uma moeda única.

Exemplo 1: valor faturado, incluindo impostos

Para descobrir o valor da cobrança dos compradores, incluindo impostos, é possível executar uma consulta como a mostrada no exemplo a seguir.

SELECT sum(amount) FROM billing_event WHERE action = 'INVOICED' AND ( (transaction_type in ('SELLER_REV_SHARE', 'SELLER_TAX_SHARE') -- to discard SELLER_REV_SHARE from Manufacturer to Channel Partner, aka cost of goods AND to_account_id='seller-account-id' ) OR transaction_type= 'AWS_TAX_SHARE' );

Exemplo 2: valor faturado aos compradores em nome do vendedor

Para descobrir o valor da cobrança dos compradores em nome de um vendedor, é possível executar uma consulta como a mostrada no exemplo a seguir.

SELECT sum(amount) FROM billing_event WHERE action = 'INVOICED' AND transaction_type in ('SELLER_REV_SHARE', 'SELLER_TAX_SHARE') AND to_account_id='seller-account-id' ;

Exemplo 3: O valor AWS pode ser cobrado em nome do vendedor

Para descobrir quanto AWS posso cobrar em nome de um vendedor, menos reembolsos, créditos e contas perdoadas, você pode executar uma consulta conforme mostrado no exemplo a seguir.

SELECT sum(amount) FROM billing_event WHERE -- what is invoiced on behalf of SELLER, incl. refunds/ credits and cost of goods transaction_type like 'SELLER_%' -- FORGIVEN action records will "negate" related INVOICED and action in ('INVOICED','FORGIVEN') ;

Exemplo 4: valor que o vendedor pode cobrar

Para descobrir quanto os vendedores podem cobrar, é possível executar uma consulta como a mostrada no exemplo a seguir. Esse exemplo remove as taxas de listagem e os impostos AWS cobrados e adiciona quaisquer ajustes de saldo excepcionais.

SELECT sum(amount) FROM billing_event WHERE (transaction_type like 'SELLER_%' -- what is invoiced on behalf of SELLER or transaction_type like 'AWS_REV_%' -- what is owed to AWS or transaction_type = 'BALANCE_ADJUSTMENT' -- exceptionnal case ) and action in ('INVOICED','FORGIVEN') ;

Você também pode usar a consulta a seguir para coletar as mesmas informações, conforme mostrado no exemplo a seguir.

SELECT sum(amount) FROM billing_event WHERE balance_impacting = 1 and action in ('INVOICED','FORGIVEN') ;

O exemplo a seguir mostra as mesmas informações, mas está restrito às transações de 2018 e assume que todos os compradores pagaram suas faturas.

SELECT sum(amount) FROM billing_event WHERE invoice_date between '2018-01-01' and '2018-12-31' and balance_impacting = 1 and action in ('INVOICED','FORGIVEN') ;

Exemplo 5: valor dos desembolsos

Para descobrir o valor que foi desembolsado, é possível executar uma consulta como a mostrada no exemplo a seguir.

select sum(amount) FROM billing_event WHERE action ='DISBURSED' and transaction_type like 'DISBURSEMENT%' ;

Exemplo 6: valor pendente para desembolso

Para descobrir o valor que está pendente para desembolso, é possível executar uma consulta como a mostrada no exemplo a seguir. Essa consulta remove valores que já foram desembolsados.

SELECT sum(amount) FROM billing_event targeted WHERE (transaction_type like 'SELLER_%' -- what is invoiced on behalf of SELLER or transaction_type like 'AWS_REV_%' -- what is owed to AWS or transaction_type = 'BALANCE_ADJUSTMENT' -- exceptionnal case ) -- DISBURSEMENT action records will "negate" 'INVOICED' -- but do not take into account failed disbursements AND (not exists (select 1 from billing_event disbursement join billing_event failed_disbursement on disbursement.billing_event_id=failed_disbursement.parent_billing_event_id where disbursement.transaction_type='DISBURSEMENT' and failed_disbursement.transaction_type='DISBURSEMENT_FAILURE' and targeted.disbursement_billing_event_id=disbursement.billing_event_id ) ) ;

Outra maneira de obter as mesmas informações é executar uma consulta para obter o saldo do vendedor, como a mostrada no exemplo a seguir.

SELECT sum(amount) FROM billing_event WHERE balance_impacting = 1 ;

A consulta a seguir estende nosso exemplo. Ela restringe os resultados às transações de 2018 e retorna mais detalhes sobre as transações.

select sum(residual_amount_per_transaction) from (SELECT max(billed_invoices.amount) invoiced_amount, sum(nvl(disbursed_invoices.amount,0)) disbursed_amount, -- Exercise left to the reader: -- use transaction_type to distinguish listing fee vs seller-owed money -- still pending collection max(transaction_type) transaction_type, max(billed_invoices.amount) + sum(nvl(disbursed_invoices.amount,0)) residual_amount_per_transaction FROM billing_event billed_invoices -- find related disbursements left join billing_event disbursed_invoices on disbursed_invoices.action='DISBURSED' and disbursed_invoices.parent_billing_event_id=billed_invoices.billing_event_id WHERE billed_invoices.invoice_date between '2018-01-01' and '2018-12-31' and billed_invoices.transaction_type like 'SELLER_%' -- invoiced on behalf of SELLER and billed_invoices.action in ('INVOICED','FORGIVEN') -- do not take into account failed disbursements AND not exists (select 1 from billing_event failed_disbursement where disbursed_invoices.disbursement_billing_event_id = failed_disbursement.parent_billing_event_id ) GROUP BY billed_invoices.billing_event_id );

Exemplo 7: saldo do conjunto de faturas

Para saber a soma de um conjunto de faturas, é possível executar uma consulta como a mostrada no exemplo a seguir.

SELECT invoice_id, sum(amount) FROM billing_event targeted WHERE -- invoice_id is only not null for invoiced records AND disbursed records -- linking them to related disbursement -> no need to filter more precisely invoice_id in ('XXX','YYY') -- filter out failed disbursements AND not exists (select 1 from billing_event disbursement join billing_event failed_disbursement on disbursement.billing_event_id=failed_disbursement.parent_billing_event_id where disbursement.transaction_type='DISBURSEMENT' and failed_disbursement.transaction_type='DISBURSEMENT_FAILURE' and targeted.disbursement_billing_event_id=disbursement.billing_event_id ) group by invoice_id;