Anulare factură¶
Descriere - Anulare factură¶
Această secțiune este dedicată anulării unei facturi
Operațiunea de anulare a unei facturi NU este echivalentă cu ștergerea
Operațiunea de anulare va schimba doar statusul facturii în Cancelled Vezi informații status factură
Doar facturile validate se pot anula
- Operații care se pot realiza după ce o factură a fost anulată:
Model de utilizare API - Anulare factură¶
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/canceled
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 - Anulare factură¶
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}'
}
Se poate observa cum JSON-ului de mai sus conține doar o singură proprietate și anume externalId
Validări - Anulare factură¶
La momentul executării acestui apel se vor verifica și valida următoarele:
Dacă există factura
Dacă factura nu se afla deja în statusul anulat (Cancelled)
Verificările și validările vor arunca (throw) mesaje de eroare sub formă de excepție (Vezi Model Excepție) atașate de un cod HTTP error 500. Vezi Coduri eroare posibile
Mod de folosire - Wrapper - Anulare factură¶
- Dacă se folosește wrapper-ul scris în Python se utilizează astfel:
Se preia token-ul Vezi Autorizarea
Se apelează metodă 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.cancel_invoice(client_eid, invoiceExternalId)
Mod de folosire - Fără Wrapper - Anulare factură¶
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 cancelInvoice(self): invoice_url = f'{self.api_endpoint}/{self.client_eid}/canceled' data_body = { 'externalId': '{ID_EXTERN_FACTURA}' } _req = requests.get(url=invoice_url, headers={'Content-Type': 'application/json', 'Authorization': self.token}, json=data_body) return _req.json() if __name__ == '__main__': service = InvoiceService() invoice = service.cancelInvoice() print(invoice)Notă
Clasa TokenService() se găsește la secțiunea Autorizarea: Vezi Autorizarea