procedure SendInvoiceToAPI(EncodedXML: Text; ClientId: Text; SecretKey: Text): Text
var
HttpClient: HttpClient;
HttpRequestMessage: HttpRequestMessage;
HttpResponseMessage: HttpResponseMessage;
RequestContent: HttpContent;
ResponseText: Text;
JsonBody: Text;
ContentHeaders: HttpHeaders;
RequestHeaders: HttpHeaders;
begin
// JSON body
JsonBody := '{"invoice": "' + EncodedXML + '"}';
RequestContent.WriteFrom(JsonBody);
RequestContent.GetHeaders(ContentHeaders);
ContentHeaders.Remove('Content-Type');
ContentHeaders.Add('Content-Type', 'application/json');
HttpRequestMessage.Method := 'POST';
HttpRequestMessage.SetRequestUri('https://backend.jofotara.gov.jo/core/invoices/');
HttpRequestMessage.Content := RequestContent;
HttpRequestMessage.GetHeaders(RequestHeaders);
RequestHeaders.Add('Client-Id', ClientId);
RequestHeaders.Add('Secret-Key', SecretKey);
if not HttpClient.Send(HttpRequestMessage, HttpResponseMessage) then begin
SaveBarcodeValue(Rec."No.", 'Error');
Error('Failed to call the API. Error: %1', GetLastErrorText());
end;
if not HttpResponseMessage.Content.ReadAs(ResponseText) then begin
SaveBarcodeValue(Rec."No.", 'Error');
Error('Failed to read API response.');
end;
if not HttpResponseMessage.IsSuccessStatusCode then begin
SaveBarcodeValue(Rec."No.", 'Error');
Error('API request failed with status code: %1. Response: %2', HttpResponseMessage.HttpStatusCode, ResponseText);
end;
exit(ResponseText);
end;
===============================================================================================================================================
Al code is attached in a file named "Sale Invoice Ext." in the attachments.