getNextRequest(context)
To access the LATAM E-Document Certification SuiteApp documentation in Brazilian Portuguese (Português do Brasil), see LATAM E-Document Certification.
Function Declaration |
|
Type |
Interface function |
Description |
Defines whether to send another e-document certification request for the same e-document or not. You need to send more than one e-document certification request for the same e-document if the tax authority’s web service is asynchronous. The first request sends the e-document for certification, and the following requests inquire about the status of the certification. |
Returns |
|
Input Parameters |
Example
function getNextRequest(context) {
var hasNextRequest = false;
var requestParameters = null;
if (context.operationTypeExternalId === "Send E-Document") {
var requestType = context.requestParameters.requestType;
var transaction = context.requestParameters.transaction;
var resultDocumentSubsidiaryCnpj = context.responseResult.details.subsidiaryCnpj;
var resultDocumentSubsidiaryInscricaoMunicipal = context.responseResult.details.subsidiaryInscricaoMunicipal;
var resultDocumentMessageCode = context.responseResult.details.messageCode;
var resultDocumentProtocol = context.responseResult.details.certificationProtocol;
if (!requestType) {
requestType = "RecepcionarLoteRpsRequest";
}
switch(requestType) {
case "RecepcionarLoteRpsRequest": {
hasNextRequest = true;
requestParameters = {
requestType: "ConsultarLoteRpsRequest",
subsidiaryCnpj: resultDocumentSubsidiaryCnpj,
subsidiaryInscricaoMunicipal: resultDocumentSubsidiaryInscricaoMunicipal,
certificationProtocol: resultDocumentProtocol,
transaction: transaction,
nextOperation: getWebServiceOperationByOperationType({
taxAuthority: context.taxAuthority,
subsidiary: context.subsidiary,
category: getCategoryIdByExternalId("Service"),
operationType: getOperationTypeIdByExternalId("Check Status"),
environment: context.environment
})
}
break;
}
case "ConsultarLoteRpsRequest": {
hasNextRequest = checkHasNextRequest(resultDocumentMessageCode);
if (hasNextRequest) {
requestParameters = {
requestType: "ConsultarLoteRpsRequest",
subsidiaryCnpj: resultDocumentSubsidiaryCnpj,
subsidiaryInscricaoMunicipal: resultDocumentSubsidiaryInscricaoMunicipal,
certificationProtocol: resultDocumentProtocol,
transaction: transaction,
nextOperation: context.requestParameters.nextOperation
}
} else {
requestParameters = {
requestType: "ConsultarLoteRpsRequest",
transaction: transaction
}
}
break;
}
}
}
return {
hasNextRequest: hasNextRequest,
requestParameters: requestParameters
};
};