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}' } _req = requests.post(url=invoice_url, headers={'Content-Type': 'application/json', 'Authorization': self.token}, json=data_body) return _req.json() if __name__ == '__main__': service = InvoiceService() invoice = service.submitInvoiceToEFactura() print(invoice)Notă
Clasa TokenService() se găsește la secțiunea Autorizarea: Vezi Autorizarea