Trimitere factura pe email¶
Descriere - Trimitere factura pe email¶
Aceasta sectiune este dedicata trimiterii unei facturi pe email
Operatiunea de trimitere nu modifica in nici-un fel factura
Model de utilizare API - Trimitere factura pe email¶
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: POST
Endpoint: /invoices/delivery
Request body: {data_body}
Returns: Success
Atenționare
A se observa parametru {data_body} si tipul acestuia (request body)
Model de request body - Trimitere factura pe email¶
Request body -ul se creaza in prealabil, inaintea apelului catre API
Acesta va contine doar identificatorul Keez al facturii care se va sterge: 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 contine:
1. identificatorul Keez al facturii invoiceExternalId 1. emailul TO to 1. emailul CC cc 1. emailul BCC bcc
Validari - Trimitere factura pe email¶
La momentul executarii acestul apel NU se vor verifica/valida informatii
Mod de folosire - Wrapper - Trimitere factura pe email¶
- Daca se foloseste wrapper -ul scris in Python se utilizeaza astfel:
Se preia token-ul pe baza parametrilor specifici
Se apeleaza metoda specifica 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, 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 - Fara Wrapper - Trimitere factura 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 gaseste la sectiunea Autorizarea: Vezi Autorizarea