Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Flux de données d'événement de facturation
Ce flux de données fournit des informations sur les événements de facturation, y compris la facturation et les débours.
Par exemple, vous pouvez utiliser ce flux de données pour savoir quand et pour quoi un acheteur est facturé. Vous pouvez également utiliser les exemples de SQL requêtes pour analyser les données de ce flux de données.
Ce flux de données contient des informations associées aux événements de facturation pour lesquels vous êtes le vendeur inscrit. Pour les accords conclus par l'intermédiaire de partenaires de distribution, ce flux de données contient des informations sur les événements de facturation enregistrés entre le fabricant et le vendeur.
Le flux de données d'événement de facturation est actualisé toutes les 24 heures, de sorte que de nouvelles données sont disponibles tous les jours.
Les données d'événement de facturation sont immuables.
Le tableau suivant explique les noms et les descriptions des colonnes du flux de données.
Nom de la colonne | Description |
---|---|
billing_event_id | Identificateur d'un événement de facturation. Cet ID est unique dans l'environnement du vendeur. |
from_account_id |
Compte qui a initié l'événement de facturation. Si Peut être utilisé pour rejoindre le flux de |
to_account_id | Compte qui reçoit le montant du mouvement pour le produit. Il s'agit d'une clé étrangère du flux de données du compte. Peut être utilisé pour rejoindre le flux de |
end_user_account_id | Compte qui utilise le produit. Ce compte peut être différent des comptes acheteur et payeur. Peut être utilisé pour rejoindre le flux de |
product_id | Identificateur de chemin du produit. Il s'agit d'une clé étrangère du flux de données du produit. Peut être utilisé pour rejoindre le flux de |
action |
Type d'action pour cet événement. Les valeurs possibles sont les suivantes :
|
transaction_type |
Type de transaction. Pour obtenir des exemples, consultez Scénarios de taxation. Les valeurs possibles sont les suivantes :
|
parent_billing_event_id |
Lorsque la valeur de Lorsque la valeur de
Lorsque la valeur de
Lorsque la valeur de |
disbursement_billing_event_id |
Le décaissement correspondant lorsque la valeur de
Dans tous les autres scénarios, cette valeur est nulle. |
amount | Montant de l'événement de facturation. |
devise | Le code de devise ISO 639. |
balance_impacting | Si le montant est pris en compte dans le calcul des débours du vendeur. Une valeur de 0 indique que le montant est mentionné à titre informatif et n'a aucun effet sur le solde. Une valeur de 1 indique que ce montant est pris en compte pour déterminer les débours du vendeur. |
invoice_date | Date de création de la facture. |
payment_due_date |
Lorsque la valeur de |
usage_period_start_date | Date de début de la période de l'enregistrement. |
usage_period_end_date | Date de fin de la période de l'enregistrement. |
invoice_id |
Le numéro AWS de facture. |
billing_address_id | Référence de l'adresse de facturation du payeur dans le flux de données d'adresse. Peut être utilisé pour rejoindre le flux de |
transaction_reference_id |
Identificateur qui vous permet de recouper les données des rapports suivants : |
bank_trace_id |
Pour les transactions de versement ( |
identifiant du courtier |
Identifiant de l'entité commerciale qui a facilité la transaction. Les valeurs possibles sont les suivantes :
|
identifiant_référence_de_transaction de l'acheteur |
Identifiant qui regroupe tous les enregistrements associés du flux de facturation à l'aide des fonctions de fenêtre intégrées |
Scénarios de taxation
Le modèle de taxation qui est en place pour le pays et l'état de l'acheteur et du vendeur dicte la façon dont les taxes sont perçues et remises. Voici les scénarios possibles :
-
Les taxes sont collectées et versées par AWS. Dans ces cas,
transaction_type
estAWS_TAX_SHARE
. -
Les taxes sont collectées par le vendeur AWS, versées au vendeur et remises par le vendeur aux autorités fiscales. Dans ces cas,
transaction_type
estSELLER_TAX_SHARE
. -
Les taxes ne sont pas collectées par AWS. Le vendeur doit calculer les taxes et les remettre aux autorités fiscales. Dans ces cas, AWS Marketplace n'effectue pas de calculs fiscaux ni ne reçoit d'informations fiscales. Le vendeur paie les impôts sur la part des revenus.
Exemples de flux de données d'événements de facturation
Cette section présente des exemples de la période de données de l'événement de facturation au moment de la facturation et un mois plus tard. Notez ce qui suit pour tous les tableaux de cette section :
-
Dans les flux de données, les valeurs
billing_event_id
sont des chaînes alphanumériques de 40 caractères. Elles sont affichées ici sous forme de chaînes à deux caractères pour la lisibilité. -
Dans le flux de données, ces informations sont présentées dans un seul tableau. Pour plus de lisibilité, les données sont présentées ici dans plusieurs tableaux et toutes les colonnes ne sont pas affichées.
Pour les exemples présentés dans cette section, supposons ce qui suit :
-
Arnav est l'acheteur.
-
Son ID de compte est
737399998888
. -
Il est situé en France, où il est assujetti aux lois sur les facilitateurs du marché. Pour de plus amples informations, veuillez consulter l'aide fiscale d'Amazon Web Service
. -
Il a acheté
prod-o4grxfafcxxxx
et reçu une facture de 120,60 USD pour son utilisation mensuelle de ce produit. -
Il a payé la facture au cours du mois.
-
-
Jane est le fabricant.
-
Son ID de compte est
111122223333
.
-
-
Paulo est le vendeur de disques.
-
Son ID de compte est
777788889999
. -
Il vit au Kansas, qui n'est pas soumis aux lois sur les facilitateurs du marché.
-
Flux de données d'événement de facturation pour le vendeur enregistré
En tant que vendeur officiel, Paulo facture l'acheteur, Arnav.
Les tableaux suivants montrent les informations pertinentes dans le flux de données de Paulo lorsqu'il facture 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 | devise | 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 |
Les tableaux suivants présentent les informations pertinentes dans le flux de données de Paulo à la fin du mois, après le paiement de la facture par Arnav.
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 | devise | 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 |
Flux de données d'événement de facturation pour le fabricant
Les tableaux suivants présentent les informations pertinentes dans le flux de données de Jane lorsque Paulo facture 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 | devise | 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 |
Les tableaux suivants présentent les informations pertinentes dans le flux de données de Jane à la fin du mois, après le paiement de la facture.
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 | devise | invoice_date | invoice_id |
---|---|---|---|---|---|
I5 | I33 | -73,5 | USD | ||
I6 | I33 | -6,5 | USD | ||
I7 | I33 | 7,35 | USD | ||
72,65 | USD |
Exemples de requêtes
Comme décrit dansCollecte et analyse de données à l'aide de flux de données, vous pouvez utiliser Athena pour exécuter des requêtes sur les données collectées et stockées sous forme de flux de données dans votre compartiment Amazon S3 géré. Cette section fournit quelques exemples de façons courantes de le faire. Tous les exemples supposent qu'une devise unique est utilisée.
Exemple 1 : Montant facturé, taxes comprises
Pour connaître le montant facturé aux acheteurs, taxes comprises, vous pouvez exécuter une requête comme indiqué dans l'exemple suivant.
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' );
Exemple 2 : Montant facturé aux acheteurs pour le compte du vendeur
Pour savoir combien les acheteurs ont été facturés au nom d'un vendeur, vous pouvez exécuter une requête comme indiqué dans l'exemple suivant.
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
' ;
Exemple 3 : montant AWS pouvant être collecté pour le compte du vendeur
Pour connaître le montant que AWS vous pouvez collecter pour le compte d'un vendeur, déduction faite des remboursements, des crédits et des comptes annulés, vous pouvez exécuter une requête comme indiqué dans l'exemple suivant.
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') ;
Exemple 4 : Montant que le vendeur peut collecter
Pour savoir combien les vendeurs peuvent collecter, vous pouvez exécuter une requête comme indiqué dans l'exemple suivant. Cet exemple supprime les frais de mise en vente et les AWS taxes perçus, et ajoute tout ajustement de solde exceptionnel.
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') ;
Vous pouvez également utiliser la requête suivante pour collecter les mêmes informations, comme indiqué dans l'exemple suivant.
SELECT sum(amount) FROM billing_event WHERE balance_impacting = 1 and action in ('INVOICED','FORGIVEN') ;
L'exemple suivant présente les mêmes informations, mais est limité aux transactions de 2018 et suppose que tous les acheteurs ont payé leurs factures.
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') ;
Exemple 5 : Montant des décaissements
Pour connaître le montant déboursé, vous pouvez exécuter une requête comme indiqué dans l'exemple suivant.
select sum(amount) FROM billing_event WHERE action ='DISBURSED' and transaction_type like 'DISBURSEMENT%' ;
Exemple 6 : Montant en attente de décaissement
Pour connaître le montant en attente de versement, vous pouvez exécuter une requête comme indiqué dans l'exemple suivant. Cette requête supprime les montants déjà décaissés.
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 ) ) ;
Pour obtenir les mêmes informations, vous pouvez également exécuter une requête pour obtenir le solde du vendeur, comme indiqué dans l'exemple suivant.
SELECT sum(amount) FROM billing_event WHERE balance_impacting = 1 ;
La requête suivante étend notre exemple. Il limite les résultats aux transactions de 2018 et renvoie des détails supplémentaires sur les transactions.
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 );
Exemple 7 : Solde de l'ensemble de factures
Pour connaître la somme d'un ensemble de factures, vous pouvez exécuter une requête comme indiqué dans l'exemple suivant.
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;