Trimitere în sistemul eFactura
Descriere - Trimitere în sistemul eFactura
Realizează trimiterea facturilor în sistemul eFactura
Factura trimisă trebuie să fie deja validată
Model de utilizare API
Așa cum este explicat în zona de Informații generale utilizare API orice apel către API se face prin URL-ul de bază + endpoint-ul respectivei operații
Notă
Verb: POST
Endpoint: /{clientEid}/invoices/efactura/submitted
Request parameter: {clientEid}
Request body: {data_body}
Returns: Success Response
Atenționare
A se observa parametrul {clientEid} și tipul acestuia (path variable)
Model de request body
Request body-ul se creează în prealabil, înaintea apelului către API
Acesta va conține doar identificatorul Keez al facturii care se va anula: externalId
data_body = {
'externalId': '{ID_EXTERN_FACTURA}'
}
Mod de folosire - Wrapper - Trimitere eFactura
- Dacă se folosește wrapper-ul scris în Python se utilizează astfel:
Se preia token-ul Vezi Autorizarea
Se apelează metoda specifică acestui request POST
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_id, secret=secret, token_url=token_url, api_url=api_url) invoiceExternalId = '{ID_EXTERN_FACTURA}' result = api.submit_e_factura(client_eid, invoiceExternalId)
Mod de folosire - Fără Wrapper - Trimitere eFactura
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 submitInvoiceToEFactura(self): invoice_url = f'{self.api_endpoint}/{self.client_eid}/invoices/efactura/submitted' data_body = { 'externalId': '{ID_EXTERN_FACTURA}' } try: _req = requests.post(url=invoice_url, headers={'Content-Type': 'application/json', 'Authorization': self.token}, json=data_body) _req.raise_for_status() return _req.json() except requests.HTTPError as ex: print_api_error(ex.response) return None except Exception as ex: print(f'Alta eroare: {ex}') return None if __name__ == '__main__': service = InvoiceService() invoice = service.submitInvoiceToEFactura() if invoice is not None: print(invoice)Notă
Clasa TokenService() se găsește la secțiunea Autorizarea: Vezi Autorizarea
Notă
Funcția print_api_error() se găsește la secțiunea: Vezi Funcție utilitară print_api_error