Trimitere factură pe email¶
Descriere - Trimitere factură pe email¶
Această secțiune este dedicată trimiterii unei facturi pe email
Operațiunea de trimitere nu modifică în niciun fel factura
Model de utilizare API - Trimitere factură pe email¶
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: /invoices/delivery
Request body: {data_body}
Returns: Success Response
Atenționare
A se observa parametrul {data_body} și tipul acestuia (request body)
Model de request body - Trimitere factură pe email¶
Request body-ul se creează în prealabil, înaintea apelului către API
Acesta va conține doar identificatorul Keez al facturii care se va șterge: externalId
data_body = {
'invoiceExternalId': '{ID_EXTERN_FACTURA}',
'info': [
{
'deliveryMethod': 'Email',
'representationType': 'Attachment',
'recipients': {
'to': '{TO_EMAIL}',
'cc': '{CC_EMAIL}',
'bcc': '{BCC_EMAIL}'
}
}
]
}
Se poate observa cum JSON-ului de mai sus conține:
identificatorul Keez al facturii invoiceExternalId
emailul TO to
emailul CC cc
emailul BCC bcc
Validări - Trimitere factură pe email¶
La momentul executării acestui apel NU se vor verifica și valida informații
Mod de folosire - Wrapper - Trimitere factură pe email¶
- 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}' to = '{TO_EMAIL}' cc = '{CC_EMAIL}' bcc = '{BCC_EMAIL}' result = api.deliver_invoice_by_email(invoiceExternalId, to=to, cc=cc, bcc=bcc)
Mod de folosire - Fără Wrapper - Trimitere factură pe email¶
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 sendInvoiceByEmail(self): invoice_url = f'/invoices/delivery' data_body = { 'invoiceExternalId': '{ID_EXTERN_FACTURA}', 'info': [ { 'deliveryMethod': 'Email', 'representationType': 'Attachment', 'recipients': { 'to': '{TO_EMAIL}', 'cc': '{CC_EMAIL}', 'bcc': '{BCC_EMAIL}' } } ] } _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.sendInvoiceByEmail() print(invoice)Notă
Clasa TokenService() se găsește la secțiunea Autorizarea: Vezi Autorizarea