Afisare facturi

Descriere - Afisare facturi

  • Aceasta sectiune este dedicata afisarii unei facturi

  • Factura returnata din acest apel se pot valida, anula, trimite pe email sau descarca

  • Factura contine o proprietate de identificare a acesteia externalId

Model de utilizare API - Afisare facturi

  • Asa cum este explicat in zona de Informatii generale utilizare API orice apel catre API se face catre un URL de baza la care apoi se adauga endpoint-ul respectivei operatii

Notă

  • Verb: GET

  • Endpoint: /{clientEid}/invoices

  • Request parameter: {clientEid}

  • Optional parameters: offset, count, order, filter

  • Returns: Vezi Model Factura

  • Type of return: Lista de Vezi Model Factura

Atenționare

  • A se observa parametru {clientEid} si tipul acestuia (path variable)

Notă

Lista de facturi suporta filtrare, ordonare si paginare prin furnizarea de parametri standard:
  • offset: pozitia de la care se aduc inregistrarile, incepand cu 0 (implicit).

  • count: numarul dorit de inregistrari de returnat. Implicit de aduc toate inregistrarile.

  • order: {property} [ASC|DESC], unde
    • {property} este o proprietate a reprezentarii pe baza careie se doreste sortarea. Sortarea implicita este cea crescatoare ASC.

    isActive ASC
    isActive DESC AND lastPrice ASC
    
  • filter: {property}[{operator}]:{value}, unde
    • {property} este o proprietate a reprezentarii pe baza careie se doreste filtrarea

    • {operator} este operatia respectivei filtrari (tabelul de mai jos) si trebuie specificati imediat dupa {property} intre paranteze patrate []. Daca nu se pune operator, atunci acesta este implicit [eq] (egalitate)

    • {value} este valoare cu care se filtreaza

    isActive:true
    isActive[eq]:true
    lastPrice[gt]:100
    isActive[eq]:true AND lastPrice[gt]:100
    

Filtrarea si ordinarea se poate realiza cu 1 sau mai multe proprietati, unite prin cuvantul cheie AND

[eq] = Egal (implicit)
[neq] = Nu este egal
[lt] = Mai mic
[gt] = Mai mare
[gte] = Mai mare sau egal
[lte] = Mai mic sau egal
[like] = Contine
[sw] = Incepe cu

Validari - Afisare facturi

La momentul executarii acestul apel NU se vor verifica/valida informatii

Mod de folosire - Wrapper - Afisare facturi

  • Daca se foloseste wrapper -ul scris in Python se utilizeaza astfel:
    1. Se preia token-ul pe baza parametrilor specifici

    2. Se apeleaza metoda specifica acestui request GET

    token_url = 'https://staging.keez.ro/idp/connect/token'
    api_url = f'https://{ENVIRONMENT}.keez.ro/api/v1.0/public-api'
    
    client_eid = '{RECEIVED_CLIENT_EID}'
    application_id = '{RECEIVED_APPLICATION_ID}'
    secret = '{RECEIVED_SECRET}'
    
    api = KeezPublicApi(app=application, secret=secret, token_url=token_url, api_url=api_url)
    
    filter = {'series': 'SERIE', 'number': 29, 'documentDate': 20240125, 'status': 'Draft', 'isStorno': False, 'clientName[like]': 'DIGITAL', 'currencyCode': 'RON',
              'partnerName[like]': 'Ion'}
    order = {'series': 'ASC', 'number': 'DESC', 'documentDate': None, 'status': None}
    count = 20
    offset = 0
    
    result = api.invoices(client_eid, filter, order, count, offset)
    

Mod de folosire - Fara Wrapper - Afisare facturi

class InvoiceService:
    def __init__(self):
        token = TokenService()
        self.auth_token = token.generate_token()
        self.token = f'{self.auth_token.get("token_type")} {self.auth_token.get("access_token")}'

        self.client_eid = token.client_eid
        self.api_endpoint = token.api_endpoint

    def getInvoices(self):
        invoice_url = f'{self.api_endpoint}/{self.client_eid}/invoices'

        _req = requests.get(url=invoice_url, headers={'Content-Type': 'application/json', 'Authorization': self.token})
        return _req.json()


if __name__ == '__main__':
    service = InvoiceService()
    invoices = service.getInvoices()
    print(invoices)

Notă

Clasa TokenService() se gaseste la sectiunea Autorizarea: Vezi Autorizarea