Invoices
https://dtrnk0o2zy01c.cloudfront.net/openapi/en-us/dest/Billing_prod_3p.json
Get invoice data by invoice ID
- class ad_api.api.Invoices(account='default', marketplace: Marketplaces = Marketplaces.EU, credentials=None, proxies=None, verify=True, timeout=None, debug=False, access_token=None)
- list_invoices(**kwargs) ApiResponse
Get invoices for advertiser. Requires one of these permissions: [“nemo_transactions_view”,”nemo_transactions_edit”]
query invoiceStatuses:string | Optional. Available values : ISSUED, PAID_IN_PART, PAID_IN_FULL, WRITTEN_OFF. (Not documented: ACCUMULATING)
query count:string | Optional. Number of records to include in the paged response. Defaults to 100. Cannot be combined with the cursor parameter.
query cursor:string | Optional. A cursor representing how far into a result set this query should begin. In the absence of a cursor the request will default to start index of 0 and page size of 100.
Returns:
ApiResponse
### Example getting a list of invoices
import logging from ad_api.api import Invoices from ad_api.base import AdvertisingApiException def list_invoices(**kwargs): try: result = Invoices(account=store, debug=True).list_invoices( **kwargs ) res = result.payload payload = res.get("payload") invoice_summaries = payload.get("invoiceSummaries") for invoice in invoice_summaries: logging.info(invoice) except AdvertisingApiException as error: logging.info(error) # list_invoices() list_invoices(invoiceStatuses="PAID_IN_FULL", count=5)
Note
Here is an example how to get all the invoices full payed using a decorator in Utils @Utils.load_all_pages
import logging from ad_api.api import Invoices from ad_api.base import Utils @Utils.load_all_pages(throttle_by_seconds=1, next_token_param="cursor") def get_all_invoices(**kwargs): return Invoices(account=store, debug=True).list_invoices(**kwargs) bill_status = 'PAID_IN_FULL' for page in get_all_invoices(invoiceStatuses=bill_status): res = page.payload payload = res.get("payload") invoice_summaries = payload.get("invoiceSummaries") for invoice in invoice_summaries: logging.info(invoice)
### Will Output the invoices
{'id': 'DR0012TTY-75', 'status': 'PAID_IN_FULL', 'fromDate': '20210613', 'toDate': '20210625', 'invoiceDate': '20210624', 'amountDue': {'amount': 500.04, 'currencyCode': 'EUR'}, 'taxAmountDue': {'amount': 0.0, 'currencyCode': 'EUR'}, 'remainingAmountDue': {'amount': 0.0, 'currencyCode': 'EUR'}, 'remainingTaxAmountDue': {'amount': 0.0, 'currencyCode': 'EUR'}}
{'id': 'DR0012TTY-76', 'status': 'PAID_IN_FULL', 'fromDate': '20210624', 'toDate': '20210703', 'invoiceDate': '20210702', 'amountDue': {'amount': 332.2, 'currencyCode': 'EUR'}, 'taxAmountDue': {'amount': 0.0, 'currencyCode': 'EUR'}, 'remainingAmountDue': {'amount': 0.0, 'currencyCode': 'EUR'}, 'remainingTaxAmountDue': {'amount': 0.0, 'currencyCode': 'EUR'}}
- get_invoice(invoiceId: str) ApiResponse
Get invoice data by invoice ID. Requires one of these permissions: [“nemo_transactions_view”,”nemo_transactions_edit”]
path invoiceId:string | required. ID of invoice to fetch
Returns:
ApiResponse
Note
You could get a specific invoice by invoiceId which is the string provided
import logging from ad_api.api import Invoices from ad_api.base import AdvertisingApiException def get_invoice(invoice_id: str): try: result = Invoices(account=store, debug=True).get_invoice( invoiceId=invoice_id ) logging.info(result) except AdvertisingApiException as error: logging.info(error) amz_invoice_id = 'DR0012TTY-76' get_invoice(amz_invoice_id)
Warning
This API cannot be used in sandbox mode and will return AdvertisingApiException
{ 'status_code': 404, 'code': 'NOT_FOUND', 'details': 'Could not find resource for full path: https://advertising-api-test.amazon.com/invoices/DR0012TTY-76', 'requestId': '1A83K31WYACG6YFG0S17' }