Skip to content

Latest commit

 

History

History
113 lines (73 loc) · 3.8 KB

invoices.rst

File metadata and controls

113 lines (73 loc) · 3.8 KB

Invoices

https://dtrnk0o2zy01c.cloudfront.net/openapi/en-us/dest/Billing_prod_3p.json

Get invoice data by invoice ID

ad_api.api.Invoices

ad_api.api.Invoices.list_invoices

### 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'}}

ad_api.api.Invoices.get_invoice

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'
}