Buscar información de envío
Cuando el envío de notificaciones se realiza con ReturnMode en RESUME, la respuesta será un RequestID que se puede utilizar para obtener los datos de las notificaciones.
Este servicio devolverá información sobre la cantidad de notificaciones enviadas, procesadas y las que aún se encuentran en proceso.
JSON Body
{ "hash": "COMPANY_HASH", "sentId": 00}
- hash: Hash de la empresa donde está registrado el template.
- sentId: El ID que se devuelve al enviar las notificaciones con ReturnMode = RESUME.
Respuesta
- La respuesta es una cadena encriptada de la siguiente manera:
- DatosEncriptados + IV + NuevoIvEncriptado
- La estructura desencriptada será la siguiente:
{"RequestId": 1,"RequestDate": "2023-06-05T16:00:00","RequestStatus": "PROCESSED","TotalNumberReceived": 4,"TotalNumberValid": 4,"TotalNumberSuccess": 4,"TotalNumberError": 0,"TotalNumberWaiting": 0,"TotalNumberCanceled": 0,"RequestResult": [{"RequestSeq": 1,"RequestPhoneNumber": "111111111","RequestStatus": "sent","RequestMessage": "OK","RequestSentDatetime": "2024-08-05T16:00:00","RequestDeliveryDatetime": "2024-08-05T16:00:00","RequestReadDatetime": "2024-08-05T16:00:00","RequestHasButton": true,"RequestUserAnswered": true,"RequestUserAnswer": "Sim","SentKeys": [{"Description": "NOME","Value": "Giuliano"}],"SentParms": [{"Cod": "CPF","Value": "11111111111"},{"Cod": "RG","Value": "11111111-1"}]},{"RequestSeq": 1,"RequestPhoneNumber": "222222222","RequestStatus": "sent","RequestMessage": "OK","RequestSentDatetime": "2024-08-05T16:00:00","RequestDeliveryDatetime": "2024-08-05T16:00:00","RequestReadDatetime": "2024-08-05T16:00:00","RequestHasButton": true,"RequestUserAnswered": true,"RequestUserAnswer": "Sim","SentKeys": [{"Description": "NOME","Value": "Giuliano"}],"SentParms": [{"Cod": "CPF","Value": "11111111111"},{"Cod": "RG","Value": "11111111-1"}]},{"RequestSeq": 2,"RequestPhoneNumber": "333333333","RequestStatus": "sent","RequestMessage": "OK","RequestSentDatetime": "2024-08-05T16:00:00","RequestDeliveryDatetime": "2024-08-05T16:00:00","RequestReadDatetime": "2024-08-05T16:00:00","RequestHasButton": true,"RequestUserAnswered": true,"RequestUserAnswer": "Sim","SentKeys": [{"Description": "NOME","Value": "Giuliano"}],"SentParms": [{"Cod": "CPF","Value": "11111111111"},{"Cod": "RG","Value": "11111111-1"}]},{"RequestSeq": 2,"RequestPhoneNumber": "444444444","RequestStatus": "sent","RequestMessage": "OK","RequestSentDatetime": "2024-08-05T16:00:00","RequestDeliveryDatetime": "2024-08-05T16:00:00","RequestReadDatetime": "2024-08-05T16:00:00","RequestHasButton": true,"RequestUserAnswered": true,"RequestUserAnswer": "Sim","SentKeys": [{"Description": "NOME","Value": "Giuliano"}],"SentParms": [{"Cod": "CPF","Value": "11111111111"},{"Cod": "RG","Value": "11111111-1"}]}]}
- Valores para el status de RequestStatus base:
- CANCELED
- QUEUED
- PROCESSED
- PROCESSING
- Valores para el status de RequestResult:
- canceled
- waiting
- sent
- delivered
- failed
Ejemplos
var httpClient = new HttpClient { BaseAddress = new Uri("YOUR_ANNA_URL") };
var result = await httpClient.PostAsJsonAsync("REST/Credentials/GetToken", new { hash = "COMPANY_HASH", user = "USER", pass = "PASSWORD" });
var tokenResponse = await result.Content.ReadFromJsonAsync<GetTokenResponse>();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", tokenResponse?.Data.Token);
var getDataResult = await httpClient.PostAsJsonAsync("REST/Notifications/GetData", new { hash = "COMPANY_HASH", sentId = 00 });
var getDataContent = await getDataResult.Content.ReadAsStringAsync();
return getDataContent;
public class GetTokenResponse { [JsonPropertyName("success")] public bool Success { get; set; }
[JsonPropertyName("message")] public string Message { get; set; } = string.Empty;
[JsonPropertyName("data")] public TokenData Data { get; set; } = new(); }
public class TokenData { [JsonPropertyName("Token")] public string Token { get; set; } = string.Empty;
[JsonPropertyName("ExpiresIn")] public string ExpiresIn { get; set; } = string.Empty; }
public class Main { public static void main(String[] args) throws IOException, InterruptedException { var httpClient = HttpClient.newHttpClient(); Gson gson = new Gson();
String environmentUri = "YOUR_ANNA_URL";
var credentials = new HashMap<String,String>(); credentials.put("hash", "COMPANY_HASH"); credentials.put("user", "USER"); credentials.put("pass", "PASSWORD");
var credentialsJson = gson.toJson(credentials);
var httpRequest = HttpRequest.newBuilder() .uri(URI.create(environmentUri + "REST/Credentials/GetToken")) .header("Content-Type", "application/json") .POST(HttpRequest.BodyPublishers.ofString(credentialsJson)) .build();
var credentialsResponse = httpClient.send(httpRequest, HttpResponse.BodyHandlers.ofString());
var tokenObj = gson.fromJson(credentialsResponse.body(), GetTokenResponse.class);
var getDataRequestBody = new HashMap<String, Object>(); getDataRequestBody.put("hash", "COMPANYHASH"); getDataRequestBody.put("sentId", 00);
var getDataRequestBodyJson = gson.toJson(getDataRequestBody);
var getDataRequest = HttpRequest.newBuilder() .uri(URI.create(environmentUri + "REST/Notifications/GetData")) .setHeader("Content-Type", "application/json") .setHeader("Authorization", "Bearer "+tokenObj.data.get("Token")) .POST(HttpRequest.BodyPublishers.ofString(getDataRequestBodyJson)) .build();
var getDataResponse = httpClient.send(getDataRequest, HttpResponse.BodyHandlers.ofString());
System.out.println(getDataResponse.body()); } }
class GetTokenResponse { public String success; public String message; public HashMap<String,Object> data; }