diff --git a/pom.xml b/pom.xml
index bc30ef1..a866cfe 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,6 +77,10 @@
io.quarkus
quarkus-smallrye-health
+
+ commons-codec
+ commons-codec
+
org.projectlombok
lombok
diff --git a/src/main/java/com/banesco/common/application/helper/SerializationHelper.java b/src/main/java/com/banesco/common/application/helper/SerializationHelper.java
index 326c341..cf1036b 100644
--- a/src/main/java/com/banesco/common/application/helper/SerializationHelper.java
+++ b/src/main/java/com/banesco/common/application/helper/SerializationHelper.java
@@ -1,12 +1,15 @@
package com.banesco.common.application.helper;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.quarkus.runtime.annotations.RegisterForReflection;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.codec.digest.DigestUtils;
-import java.util.Base64;
+import java.util.*;
@Slf4j
@ApplicationScoped
@@ -44,4 +47,50 @@ public class SerializationHelper {
return null;
}
}
+
+ public String encodeSha256(String json) {
+ return DigestUtils.sha256Hex(json);
+ }
+
+ public String toJsonString(T element) {
+ if (element == null) {
+ return "";
+ }
+
+ try {
+ return objectMapper.writeValueAsString(element);
+ } catch (JsonProcessingException e) {
+ log.error("Error al convertir objeto a Json String: {}", e.getMessage());
+ return "";
+ }
+ }
+
+ public Map toMap(T element) {
+ return toMap(element, null);
+ }
+
+ public Map toMap(
+ T element,
+ List excludedFields
+ ) {
+ if (element == null) {
+ return new HashMap<>();
+ }
+
+ try {
+ Map map = objectMapper.convertValue(
+ element, new TypeReference<>() {}
+ );
+
+ if (excludedFields != null && !excludedFields.isEmpty()) {
+ Set excludedSet = new HashSet<>(excludedFields);
+ excludedSet.forEach(map::remove);
+ }
+
+ return map;
+ } catch (Exception e) {
+ log.error("Error al convertir objeto a Map: {}", e.getMessage());
+ return new HashMap<>();
+ }
+ }
}
diff --git a/src/main/java/com/banesco/common/infrastructure/config/RestClientConfig.java b/src/main/java/com/banesco/common/infrastructure/config/RestClientConfig.java
index f0d94ba..06d07c3 100644
--- a/src/main/java/com/banesco/common/infrastructure/config/RestClientConfig.java
+++ b/src/main/java/com/banesco/common/infrastructure/config/RestClientConfig.java
@@ -21,7 +21,7 @@ public class RestClientConfig {
private final ObjectMapper objectMapper;
private static final String API_BASE = "api.rest-client.";
- private static final String API_PAYMENT_STATUS_BY_ID_NAME = "payment-status-by-id";
+ private static final String API_PAYMENT_ORDER_BY_PARAMETERS_NAME = "payment-order-by-parameters";
@Inject
public RestClientConfig(
@@ -33,7 +33,7 @@ public class RestClientConfig {
}
public PaymentOrderConfig getPaymentOrderConfig() {
- return getConfig(API_PAYMENT_STATUS_BY_ID_NAME, PaymentOrderConfig.class);
+ return getConfig(API_PAYMENT_ORDER_BY_PARAMETERS_NAME, PaymentOrderConfig.class);
}
private T getConfig(
diff --git a/src/main/java/com/banesco/module/document/domain/model/Document.java b/src/main/java/com/banesco/module/document/domain/model/Document.java
index 559cdd2..d7710f6 100644
--- a/src/main/java/com/banesco/module/document/domain/model/Document.java
+++ b/src/main/java/com/banesco/module/document/domain/model/Document.java
@@ -1,5 +1,6 @@
package com.banesco.module.document.domain.model;
+import com.fasterxml.jackson.annotation.JsonInclude;
import io.quarkus.runtime.annotations.RegisterForReflection;
import lombok.*;
@@ -9,6 +10,7 @@ import lombok.*;
@NoArgsConstructor
@AllArgsConstructor
@RegisterForReflection
+@JsonInclude(JsonInclude.Include.NON_NULL)
public class Document {
private String documentName; // fileName
}
diff --git a/src/main/java/com/banesco/module/instruction/domain/model/Instruction.java b/src/main/java/com/banesco/module/instruction/domain/model/Instruction.java
index 0e741e0..8c1f700 100644
--- a/src/main/java/com/banesco/module/instruction/domain/model/Instruction.java
+++ b/src/main/java/com/banesco/module/instruction/domain/model/Instruction.java
@@ -2,11 +2,14 @@ package com.banesco.module.instruction.domain.model;
import com.banesco.common.domain.exception.HttpStatusCodeException;
import com.banesco.common.domain.model.Identifier;
+import com.banesco.module.party.domain.model.Party;
+import com.banesco.module.party.domain.model.PartyIdentification;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.quarkus.runtime.annotations.RegisterForReflection;
import lombok.*;
import java.util.Arrays;
+import java.util.List;
import java.util.Objects;
@Getter
@@ -17,14 +20,16 @@ import java.util.Objects;
@RegisterForReflection
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Instruction {
- private InstructionIdentification instructionIdentifier; // Request JSON: "recipientId"
- private String instructionDescription; // Request JSON: "signature"
+ private InstructionInvolvement instructionInvolvement; // Request JSON: "recipientId"
+ private List instructionDate; // Request JSON: "dateCreate"
+ private InstructionIdentification instructionIdentifier; // Request JSON: "id"
private InstructionPurposeType instructionPurposeType; // Request JSON: "channelOrigin" (BOLE)
public static Instruction fromResource(
String partyReferenceId,
- String channelCode,
- String signatureIdentifier
+ String initiatedDate,
+ String instructionRequestId,
+ String channelCode
) {
boolean isChannelCodeValid = (Arrays.stream(
InstructionPurposeType.values()
@@ -35,18 +40,39 @@ public class Instruction {
}
return Instruction.builder()
+ .instructionInvolvement(
+ InstructionInvolvement.builder()
+ .partyReference(
+ Party.builder()
+ .partyIdentification(List.of(
+ PartyIdentification.builder()
+ .partyIdentification(
+ Identifier.builder()
+ .identifierValue(Objects.toString(partyReferenceId, ""))
+ .build()
+ )
+ .build()
+ ))
+ .build()
+ )
+ .build()
+ )
.instructionIdentifier(
InstructionIdentification.builder()
.identification(
Identifier.builder()
- .identifierValue(partyReferenceId)
+ .identifierValue(Objects.toString(instructionRequestId, ""))
.build()
)
.identificationType(InstructionIdentificationType.INSTRUCTION_NUMBER)
.build()
)
+ .instructionDate(List.of(
+ InstructionDateTime.builder()
+ .date(Objects.toString(initiatedDate, ""))
+ .build()
+ ))
.instructionPurposeType(InstructionPurposeType.valueOf(channelCode))
- .instructionDescription(signatureIdentifier)
.build();
}
}
diff --git a/src/main/java/com/banesco/module/instruction/domain/model/InstructionDateTime.java b/src/main/java/com/banesco/module/instruction/domain/model/InstructionDateTime.java
new file mode 100644
index 0000000..b9ac89f
--- /dev/null
+++ b/src/main/java/com/banesco/module/instruction/domain/model/InstructionDateTime.java
@@ -0,0 +1,14 @@
+package com.banesco.module.instruction.domain.model;
+
+import io.quarkus.runtime.annotations.RegisterForReflection;
+import lombok.*;
+
+@Getter
+@ToString
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@RegisterForReflection
+public class InstructionDateTime {
+ private String date;
+}
diff --git a/src/main/java/com/banesco/module/instruction/domain/model/InstructionInvolvement.java b/src/main/java/com/banesco/module/instruction/domain/model/InstructionInvolvement.java
new file mode 100644
index 0000000..618f96e
--- /dev/null
+++ b/src/main/java/com/banesco/module/instruction/domain/model/InstructionInvolvement.java
@@ -0,0 +1,15 @@
+package com.banesco.module.instruction.domain.model;
+
+import com.banesco.module.party.domain.model.Party;
+import io.quarkus.runtime.annotations.RegisterForReflection;
+import lombok.*;
+
+@Getter
+@ToString
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@RegisterForReflection
+public class InstructionInvolvement {
+ private Party partyReference;
+}
diff --git a/src/main/java/com/banesco/module/payment_order/domain/dto/request/PaymentOrderRequest.java b/src/main/java/com/banesco/module/payment_order/domain/dto/request/PaymentOrderRequest.java
index b9fe252..9767efb 100644
--- a/src/main/java/com/banesco/module/payment_order/domain/dto/request/PaymentOrderRequest.java
+++ b/src/main/java/com/banesco/module/payment_order/domain/dto/request/PaymentOrderRequest.java
@@ -14,6 +14,5 @@ public class PaymentOrderRequest {
private Operation operation;
private String channelId;
private String signature;
-
private String fintechId;
}
\ No newline at end of file
diff --git a/src/main/java/com/banesco/module/payment_order/domain/model/Operation.java b/src/main/java/com/banesco/module/payment_order/domain/model/Operation.java
index 342da67..ba0df0a 100644
--- a/src/main/java/com/banesco/module/payment_order/domain/model/Operation.java
+++ b/src/main/java/com/banesco/module/payment_order/domain/model/Operation.java
@@ -11,4 +11,6 @@ import lombok.*;
@RegisterForReflection
public class Operation {
private String recipientId;
+ private String dateCreate;
+ private Long id;
}
diff --git a/src/main/java/com/banesco/module/payment_order/domain/model/PaymentOrderBol.java b/src/main/java/com/banesco/module/payment_order/domain/model/PaymentOrderBol.java
new file mode 100644
index 0000000..e64f085
--- /dev/null
+++ b/src/main/java/com/banesco/module/payment_order/domain/model/PaymentOrderBol.java
@@ -0,0 +1,23 @@
+package com.banesco.module.payment_order.domain.model;
+
+import io.quarkus.runtime.annotations.RegisterForReflection;
+import lombok.*;
+
+import java.math.BigDecimal;
+
+@Getter
+@ToString
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@RegisterForReflection
+public class PaymentOrderBol {
+ private Long id;
+ private String requestType;
+ private String emitterReceptor;
+ private String status;
+ private BigDecimal amount;
+ private String currency;
+ private String concept;
+ private String dateCreate;
+}
\ No newline at end of file
diff --git a/src/main/java/com/banesco/module/payment_order/domain/model/PaymentOrder.java b/src/main/java/com/banesco/module/payment_order/domain/model/PaymentOrderBole.java
similarity index 93%
rename from src/main/java/com/banesco/module/payment_order/domain/model/PaymentOrder.java
rename to src/main/java/com/banesco/module/payment_order/domain/model/PaymentOrderBole.java
index e6c2f9b..58d2477 100644
--- a/src/main/java/com/banesco/module/payment_order/domain/model/PaymentOrder.java
+++ b/src/main/java/com/banesco/module/payment_order/domain/model/PaymentOrderBole.java
@@ -11,7 +11,7 @@ import java.math.BigDecimal;
@NoArgsConstructor
@AllArgsConstructor
@RegisterForReflection
-public class PaymentOrder {
+public class PaymentOrderBole {
private Long nroRequest;
private String dispatchDate;
private String fileName;
diff --git a/src/main/java/com/banesco/module/payment_order/infrastructure/client/PaymentOrderClient.java b/src/main/java/com/banesco/module/payment_order/infrastructure/client/PaymentOrderClient.java
index 47f6897..8e256b2 100644
--- a/src/main/java/com/banesco/module/payment_order/infrastructure/client/PaymentOrderClient.java
+++ b/src/main/java/com/banesco/module/payment_order/infrastructure/client/PaymentOrderClient.java
@@ -38,7 +38,8 @@ public class PaymentOrderClient implements PaymentOrderUseCase {
PaymentOrderRequest params,
Class responseType
) {
- String signatureIdentifier = serializationHelper.encodeBase64(params);
+ String fintechId = params.getFintechId();
+ String signatureIdentifier = getSignatureIdentifier(params);
HttpRequest request = HttpRequest.forApiPrivateResponseList(
paymentOrderConfig.getUrl(),
paymentOrderConfig.getStatusSuccess(),
@@ -46,7 +47,7 @@ public class PaymentOrderClient implements PaymentOrderUseCase {
responseType
)
.withPathParams(Map.of("signatureIdentifier", signatureIdentifier))
- .withHeaders(Map.of("fintechId", params.getFintechId()))
+ .withHeaders(Map.of("fintechId", fintechId))
.withTimeout(
paymentOrderConfig.getTimeout().getConnect(),
paymentOrderConfig.getTimeout().getResponse()
@@ -106,4 +107,24 @@ public class PaymentOrderClient implements PaymentOrderUseCase {
throw HttpStatusCodeException.serviceUnavailable("503");
}
}
+
+ private String getSignatureIdentifier(PaymentOrderRequest params) {
+ Map paymentOrderRequest = serializationHelper.toMap(params);
+ String signature = serializationHelper.encodeSha256(
+ serializationHelper.toJsonString(paymentOrderRequest.get("operation")) +
+ serializationHelper.encodeBase64(params.getChannelId())
+ );
+
+ paymentOrderRequest.put("signature", signature);
+
+ paymentOrderRequest.remove("fintechId");
+
+ String signatureIdentifier = serializationHelper.encodeBase64(paymentOrderRequest);
+
+ log.info("1. Firma generada: {}", signature);
+ log.info("2. Parametros de la solicitud: {}", paymentOrderRequest);
+ log.info("3. Solicitud codificada: {}", signatureIdentifier);
+
+ return signatureIdentifier;
+ }
}
\ No newline at end of file
diff --git a/src/main/java/com/banesco/module/service_order_payment_search/application/service/ServiceOrderPaymentSearchService.java b/src/main/java/com/banesco/module/service_order_payment_search/application/service/ServiceOrderPaymentSearchService.java
index 234687e..01fcc35 100644
--- a/src/main/java/com/banesco/module/service_order_payment_search/application/service/ServiceOrderPaymentSearchService.java
+++ b/src/main/java/com/banesco/module/service_order_payment_search/application/service/ServiceOrderPaymentSearchService.java
@@ -31,7 +31,7 @@ public class ServiceOrderPaymentSearchService implements ServiceOrderPaymentSear
public ApiResponse execute(
ServiceOrderPaymentSearchRequest request
) {
- log.info("Iniciando ejecucion para el id: {}", request.getId());
+ log.info("Iniciando ejecucion para el id: {}", request.getPartyId());
try {
return apiPrivate(request);
@@ -54,7 +54,7 @@ public class ServiceOrderPaymentSearchService implements ServiceOrderPaymentSear
private ApiResponse apiPrivate(
ServiceOrderPaymentSearchRequest request
) {
- log.info("Ejecutando llamada al api privada: {}", request.getId());
+ log.info("Ejecutando llamada al api privada: {}", request.getPartyId());
return new ApiResponse<>(
ServiceOrderPaymentSearchResponse.builder()
diff --git a/src/main/java/com/banesco/module/service_order_payment_search/domain/dto/request/ServiceOrderPaymentSearchRequest.java b/src/main/java/com/banesco/module/service_order_payment_search/domain/dto/request/ServiceOrderPaymentSearchRequest.java
index 51f3b8b..97881c1 100644
--- a/src/main/java/com/banesco/module/service_order_payment_search/domain/dto/request/ServiceOrderPaymentSearchRequest.java
+++ b/src/main/java/com/banesco/module/service_order_payment_search/domain/dto/request/ServiceOrderPaymentSearchRequest.java
@@ -1,6 +1,7 @@
package com.banesco.module.service_order_payment_search.domain.dto.request;
import com.banesco.module.instruction.domain.model.Instruction;
+import com.banesco.module.instruction.domain.model.InstructionPurposeType;
import io.quarkus.runtime.annotations.RegisterForReflection;
import lombok.*;
@@ -23,22 +24,51 @@ public class ServiceOrderPaymentSearchRequest {
@NonNull
private Instruction procedureRequest;
- public String getId() {
- return getProcedureRequest().getInstructionIdentifier().getIdentification().getIdentifierValue();
+ public String getPartyId() {
+ return getProcedureRequest()
+ .getInstructionInvolvement()
+ .getPartyReference()
+ .getPartyIdentification()
+ .get(0)
+ .getPartyIdentification()
+ .getIdentifierValue();
+ }
+
+ public String getInitiatedDate() {
+ return getProcedureRequest()
+ .getInstructionDate()
+ .get(0)
+ .getDate();
+ }
+
+ public String getPaymentRequestId() {
+ return getProcedureRequest()
+ .getInstructionIdentifier()
+ .getIdentification()
+ .getIdentifierValue();
}
public String getChannelCode() {
return getProcedureRequest().getInstructionPurposeType().name();
}
- public String getSignatureIdentifier() {
- return getProcedureRequest().getInstructionDescription();
+ public boolean isBole() {
+ return getProcedureRequest().getInstructionPurposeType() == InstructionPurposeType.BOLE;
+ }
+
+ public Map toParams() {
+ return Map.ofEntries(
+ entry("partyReferenceId", Objects.toString(getPartyId(), "")),
+ entry("channelCode", Objects.toString(getChannelCode(), ""))
+ );
}
public Map toQueryString() {
return Map.ofEntries(
entry("appId", Objects.toString(getAppId(), "")),
- entry("customerReferenceFintechId", Objects.toString(getCustomerReferenceFintechId(), ""))
+ entry("customerReferenceFintechId", Objects.toString(getCustomerReferenceFintechId(), "")),
+ entry("initiatedDate", Objects.toString(getInitiatedDate(), "")),
+ entry("paymentRequestId", Objects.toString(getPaymentRequestId(), ""))
);
}
}
\ No newline at end of file
diff --git a/src/main/java/com/banesco/module/service_order_payment_search/domain/model/ServicingOrderProcedure.java b/src/main/java/com/banesco/module/service_order_payment_search/domain/model/ServicingOrderProcedure.java
index 65a58e4..40710f0 100644
--- a/src/main/java/com/banesco/module/service_order_payment_search/domain/model/ServicingOrderProcedure.java
+++ b/src/main/java/com/banesco/module/service_order_payment_search/domain/model/ServicingOrderProcedure.java
@@ -2,6 +2,7 @@ package com.banesco.module.service_order_payment_search.domain.model;
import com.banesco.module.document.domain.model.Document;
import com.banesco.module.transaction.domain.model.Transaction;
+import com.fasterxml.jackson.annotation.JsonInclude;
import io.quarkus.runtime.annotations.RegisterForReflection;
import lombok.*;
@@ -11,7 +12,10 @@ import lombok.*;
@NoArgsConstructor
@AllArgsConstructor
@RegisterForReflection
+@JsonInclude(JsonInclude.Include.NON_NULL)
public class ServicingOrderProcedure {
- private Document document; // fileName
- private Transaction transaction; // status, accepted, rejected, expired
+ private Document document; // BOLE: fileName
+ // BOLE: nroRequest, status, accepted, rejected, expired, dispatchDate, quantity
+ // BOL: id, requestType, emitterReceptor, status, amount, currency, concept, dateCreate
+ private Transaction transaction;
}
diff --git a/src/main/java/com/banesco/module/service_order_payment_search/infrastructure/adapter/ApiPrivateAdapter.java b/src/main/java/com/banesco/module/service_order_payment_search/infrastructure/adapter/ApiPrivateAdapter.java
index 40a7478..fb871b8 100644
--- a/src/main/java/com/banesco/module/service_order_payment_search/infrastructure/adapter/ApiPrivateAdapter.java
+++ b/src/main/java/com/banesco/module/service_order_payment_search/infrastructure/adapter/ApiPrivateAdapter.java
@@ -2,7 +2,8 @@ package com.banesco.module.service_order_payment_search.infrastructure.adapter;
import com.banesco.common.domain.exception.HttpStatusCodeException;
import com.banesco.module.payment_order.application.usecase.PaymentOrderUseCase;
-import com.banesco.module.payment_order.domain.model.PaymentOrder;
+import com.banesco.module.payment_order.domain.model.PaymentOrderBol;
+import com.banesco.module.payment_order.domain.model.PaymentOrderBole;
import com.banesco.module.service_order_payment_search.application.repository.ApiPrivateRepository;
import com.banesco.module.service_order_payment_search.domain.dto.request.ServiceOrderPaymentSearchRequest;
import com.banesco.module.service_order_payment_search.domain.model.ServicingOrderProcedure;
@@ -29,16 +30,42 @@ public class ApiPrivateAdapter implements ApiPrivateRepository {
public List execute(
ServiceOrderPaymentSearchRequest request
) {
- List response = paymentOrderUseCase.execute(
- ServicingOrderMapper.toPaymentRequest(request), PaymentOrder.class
+ return request.isBole() ? executeBole(request) : executeBol(request);
+ }
+
+ private List executeBole(
+ ServiceOrderPaymentSearchRequest request
+ ) {
+ List response = paymentOrderUseCase.execute(
+ ServicingOrderMapper.toPaymentRequest(request),
+ PaymentOrderBole.class
);
- log.info("Resultado de las transacciones obtenidas: {}", response.size());
+ log.info("Resultado de las transacciones obtenidas (BOLE): {}", response.size());
- if(response.isEmpty()) {
+ validateResponseNotEmpty(response);
+
+ return ServicingOrderMapper.toBoleModel(response);
+ }
+
+ private List executeBol(
+ ServiceOrderPaymentSearchRequest request
+ ) {
+ List response = paymentOrderUseCase.execute(
+ ServicingOrderMapper.toPaymentRequest(request),
+ PaymentOrderBol.class
+ );
+
+ log.info("Resultado de las transacciones obtenidas (BOL): {}", response.size());
+
+ validateResponseNotEmpty(response);
+
+ return ServicingOrderMapper.toBolModel(response);
+ }
+
+ private void validateResponseNotEmpty(List response) {
+ if (response.isEmpty()) {
throw HttpStatusCodeException.badRequest("400");
}
-
- return ServicingOrderMapper.toModel(response);
}
}
diff --git a/src/main/java/com/banesco/module/service_order_payment_search/infrastructure/mapper/ServicingOrderMapper.java b/src/main/java/com/banesco/module/service_order_payment_search/infrastructure/mapper/ServicingOrderMapper.java
index 96c7494..bee24ec 100644
--- a/src/main/java/com/banesco/module/service_order_payment_search/infrastructure/mapper/ServicingOrderMapper.java
+++ b/src/main/java/com/banesco/module/service_order_payment_search/infrastructure/mapper/ServicingOrderMapper.java
@@ -1,13 +1,17 @@
package com.banesco.module.service_order_payment_search.infrastructure.mapper;
import com.banesco.module.document.domain.model.Document;
+import com.banesco.module.party.domain.model.Party;
+import com.banesco.module.party.domain.model.PartyIdentification;
import com.banesco.module.payment_order.domain.dto.request.PaymentOrderRequest;
import com.banesco.module.payment_order.domain.model.Operation;
-import com.banesco.module.payment_order.domain.model.PaymentOrder;
+import com.banesco.module.payment_order.domain.model.PaymentOrderBol;
+import com.banesco.module.payment_order.domain.model.PaymentOrderBole;
import com.banesco.module.service_order_payment_search.domain.dto.request.ServiceOrderPaymentSearchRequest;
import com.banesco.module.service_order_payment_search.domain.model.ServicingOrderProcedure;
import com.banesco.common.domain.model.Identifier;
import com.banesco.module.transaction.domain.model.*;
+import io.netty.util.internal.StringUtil;
import java.util.List;
@@ -20,61 +24,135 @@ public class ServicingOrderMapper {
) {
return PaymentOrderRequest.builder()
.fintechId(request.getCustomerReferenceFintechId())
- .operation(Operation.builder()
- .recipientId(request.getId())
- .build())
- .channelId(request.getProcedureRequest().getInstructionPurposeType().name())
- .signature(request.getProcedureRequest().getInstructionDescription())
+ .operation(
+ Operation.builder()
+ .recipientId(request.getPartyId())
+ .dateCreate((!StringUtil.isNullOrEmpty(request.getInitiatedDate()))
+ ? request.getInitiatedDate()
+ : null
+ )
+ .id((!StringUtil.isNullOrEmpty(request.getPaymentRequestId()))
+ ? Long.valueOf(request.getPaymentRequestId())
+ : null
+ )
+ .build()
+ )
+ .channelId(request.getChannelCode())
.build();
}
- public static List toModel(List response) {
- return response.stream().map(paymentOrder ->
+ public static List toBoleModel(List response) {
+ return response.stream().map(paymentOrderBole ->
ServicingOrderProcedure.builder()
- .document(buildDocumentProduct(paymentOrder))
- .transaction(buildTransaction(paymentOrder))
+ .document(buildDocumentProduct(paymentOrderBole))
+ .transaction(buildBoleTransaction(paymentOrderBole))
.build()
).toList();
}
- private static Document buildDocumentProduct(PaymentOrder paymentOrder) {
+ public static List toBolModel(List response) {
+ return response.stream().map(paymentOrderBole ->
+ ServicingOrderProcedure.builder()
+ .transaction(buildBolTransaction(paymentOrderBole))
+ .build()
+ ).toList();
+ }
+
+ private static Document buildDocumentProduct(PaymentOrderBole paymentOrderBole) {
return Document.builder()
- .documentName(paymentOrder.getFileName())
+ .documentName(paymentOrderBole.getFileName())
.build();
}
- private static Transaction buildTransaction(PaymentOrder paymentOrder) {
+ private static Transaction buildBoleTransaction(PaymentOrderBole paymentOrderBole) {
return Transaction.builder()
.transactionIdentification(Identifier.builder()
- .identifierValue(String.valueOf(paymentOrder.getNroRequest()))
+ .identifierValue(String.valueOf(paymentOrderBole.getNroRequest()))
.build())
- .transactionStatus(buildTransactionStatus(paymentOrder))
- .transactionDate(buildTransactionDateTimeList(paymentOrder))
+ .transactionStatus(buildBoleTransactionStatus(paymentOrderBole))
+ .transactionDate(buildBoleTransactionDateTimeList(paymentOrderBole))
.transactionDetails(TransactionDetails.builder()
- .transactionQuantity(paymentOrder.getQuantity())
+ .transactionQuantity(paymentOrderBole.getQuantity())
.build())
.build();
}
- private static TransactionStatus buildTransactionStatus(PaymentOrder paymentOrder) {
- return TransactionStatus.builder()
- .statusType(mapTransactionStatusType(paymentOrder.getStatus()))
- .statusName(paymentOrder.getStatus())
- .statusAccepted(paymentOrder.getAccepted())
- .statusRejected(paymentOrder.getRejected())
- .statusExpired(paymentOrder.getExpired())
+ private static Transaction buildBolTransaction(PaymentOrderBol paymentOrderBol) {
+ return Transaction.builder()
+ .transactionIdentification(Identifier.builder()
+ .identifierValue(String.valueOf(paymentOrderBol.getId()))
+ .build())
+ .transactionStatus(buildBolTransactionStatus(paymentOrderBol))
+ .transactionDate(buildBolTransactionDateTimeList(paymentOrderBol))
+ .transactionInvolvement(buildBolTransactionInvolvement(paymentOrderBol))
+ .financialTransaction(buildBolFinancialTransaction(paymentOrderBol))
+ .name(paymentOrderBol.getRequestType())
+ .description(paymentOrderBol.getConcept())
.build();
}
- private static List buildTransactionDateTimeList(PaymentOrder paymentOrder) {
+ private static TransactionStatus buildBoleTransactionStatus(PaymentOrderBole paymentOrderBole) {
+ return TransactionStatus.builder()
+ .statusType(mapTransactionStatusType(paymentOrderBole.getStatus()))
+ .statusName(paymentOrderBole.getStatus())
+ .statusAccepted(paymentOrderBole.getAccepted())
+ .statusRejected(paymentOrderBole.getRejected())
+ .statusExpired(paymentOrderBole.getExpired())
+ .build();
+ }
+
+ private static TransactionStatus buildBolTransactionStatus(PaymentOrderBol paymentOrderBol) {
+ return TransactionStatus.builder()
+ .statusType(mapTransactionStatusType(paymentOrderBol.getStatus()))
+ .statusName(paymentOrderBol.getStatus())
+ .build();
+ }
+
+ private static List buildBoleTransactionDateTimeList(PaymentOrderBole paymentOrderBole) {
return List.of(
TransactionDateTime.builder()
.dateType(TransactionDateTimeType.EXECUTED_DATE)
- .date(paymentOrder.getDispatchDate())
+ .date(paymentOrderBole.getDispatchDate())
.build()
);
}
+ private static List buildBolTransactionDateTimeList(PaymentOrderBol paymentOrderBol) {
+ return List.of(
+ TransactionDateTime.builder()
+ .dateType(TransactionDateTimeType.INITIATED_DATE)
+ .date(paymentOrderBol.getDateCreate())
+ .build()
+ );
+ }
+
+ private static List buildBolTransactionInvolvement(PaymentOrderBol paymentOrderBol) {
+ return List.of(
+ TransactionInvolvement.builder()
+ .partyReference(
+ Party.builder()
+ .partyIdentification(List.of(
+ PartyIdentification.builder()
+ .partyIdentification(
+ Identifier.builder()
+ .identifierValue(paymentOrderBol.getEmitterReceptor())
+ .build()
+ )
+ .build()
+ ))
+ .build()
+ )
+ .build()
+ );
+ }
+
+ private static FinancialTransaction buildBolFinancialTransaction(PaymentOrderBol paymentOrderBol) {
+ return FinancialTransaction.builder()
+ .amount(paymentOrderBol.getAmount())
+ .currencyCode(paymentOrderBol.getCurrency())
+ .build();
+ }
+
private static TransactionStatusType mapTransactionStatusType(String codeStatusRequest) {
if (codeStatusRequest == null) {
return TransactionStatusType.PENDING;
@@ -83,7 +161,8 @@ public class ServicingOrderMapper {
return switch (codeStatusRequest.toUpperCase()) {
case "PENDIENTE" -> TransactionStatusType.PENDING;
case "EXITO", "EXITOSA", "COMPLETADO", "FINALIZADO" -> TransactionStatusType.COMPLETED;
- case "APROBADO", "CONFIRMADO" -> TransactionStatusType.CONFIRMED;
+ case "APROBADO", "APROBADA" -> TransactionStatusType.APPROVED;
+ case "CONFIRMADO", "CONFIRMADA" -> TransactionStatusType.CONFIRMED;
case "INICIADO" -> TransactionStatusType.INITIATED;
case "EN_PROCESO", "PROCESANDO", "EN CURSO" -> TransactionStatusType.IN_PROGRESS;
case "RECHAZADO", "FALLIDO" -> TransactionStatusType.REJECTED;
@@ -93,7 +172,8 @@ public class ServicingOrderMapper {
case "CONTABILIZADO" -> TransactionStatusType.BOOKED;
case "EJECUTADO" -> TransactionStatusType.EXECUTED;
case "EXP" -> TransactionStatusType.EXPIRED;
- case "ENVIADO" -> TransactionStatusType.SENT;
+ case "ENVIADO", "ENVIADA" -> TransactionStatusType.SENT;
+ case "RECIBIDO", "RECIBIDA" -> TransactionStatusType.RECEIVED;
default -> TransactionStatusType.DEFAULT;
};
}
diff --git a/src/main/java/com/banesco/module/service_order_payment_search/infrastructure/resource/ServiceOrderPaymentSearchResource.java b/src/main/java/com/banesco/module/service_order_payment_search/infrastructure/resource/ServiceOrderPaymentSearchResource.java
index e294384..9b3cb1f 100644
--- a/src/main/java/com/banesco/module/service_order_payment_search/infrastructure/resource/ServiceOrderPaymentSearchResource.java
+++ b/src/main/java/com/banesco/module/service_order_payment_search/infrastructure/resource/ServiceOrderPaymentSearchResource.java
@@ -43,7 +43,7 @@ public class ServiceOrderPaymentSearchResource {
}
@GET
- @Path("/retrieve/{partyReferenceId}/{channelCode}/{signatureIdentifier}")
+ @Path("/retrieve/{partyReferenceId}/{channelCode}")
@Operation(
summary = "Recuperar informacion de la transaccion",
description = "Consulta de una trasanccion de pago por id de archivo"
@@ -67,73 +67,234 @@ public class ServiceOrderPaymentSearchResource {
)
}
),
- examples = @ExampleObject(
- name = "Ejemplo exitoso",
- value = """
- {
- "data": {
- "servicingOrderProcedure": [
- {
- "document": {
- "documentName": "TESTING.CSV"
- },
- "transaction": {
- "transactionIdentification": {
- "identifierValue": "2"
+ examples = {
+ @ExampleObject(
+ name = "Ejemplo exitoso (BOLE)",
+ value = """
+ {
+ "data": {
+ "servicingOrderProcedure": [
+ {
+ "document": {
+ "documentName": "TESTING.CSV"
},
- "transactionStatus": {
- "statusType": "PENDING",
- "statusName": "PENDIENTE",
- "statusAccepted": 0,
- "statusRejected": 0,
- "statusExpired": 2
- },
- "transactionDate": [
- {
- "dateType": "EXECUTED_DATE",
- "date": "2026-01-05 14:35:45.0372395"
+ "transaction": {
+ "transactionIdentification": {
+ "identifierValue": "2"
+ },
+ "transactionStatus": {
+ "statusType": "PENDING",
+ "statusName": "PENDIENTE",
+ "statusAccepted": 0,
+ "statusRejected": 0,
+ "statusExpired": 2
+ },
+ "transactionDate": [
+ {
+ "dateType": "EXECUTED_DATE",
+ "date": "2026-01-05 14:35:45.0372395"
+ }
+ ],
+ "transactionDetails": {
+ "transactionQuantity": 1000
+ }
+ }
+ },
+ {
+ "document": {
+ "documentName": "TESTING.CSV"
+ },
+ "transaction": {
+ "transactionIdentification": {
+ "identifierValue": "3"
+ },
+ "transactionStatus": {
+ "statusType": "IN_PROGRESS",
+ "statusName": "EN CURSO",
+ "statusAccepted": 0,
+ "statusRejected": 0,
+ "statusExpired": 5
+ },
+ "transactionDate": [
+ {
+ "dateType": "EXECUTED_DATE",
+ "date": "2026-01-05 14:39:52.3840159"
+ }
+ ],
+ "transactionDetails": {
+ "transactionQuantity": 1000
}
- ],
- "transactionDetails": {
- "transactionQuantity": 1000
}
}
- },
- {
- "document": {
- "documentName": "TESTING.CSV"
+ ]
+ },
+ "statusResponse": {
+ "statusCode": "200",
+ "message": "Operacion exitosa"
+ }
+ }
+ """
+ ),
+ @ExampleObject(
+ name = "Ejemplo exitoso (BOL)",
+ value = """
+ {
+ "data": {
+ "servicingOrderProcedure": [
+ {
+ "transaction": {
+ "transactionIdentification": {
+ "identifierValue": "1"
+ },
+ "transactionStatus": {
+ "statusType": "APPROVED",
+ "statusName": "Aprobada"
+ },
+ "transactionDate": [
+ {
+ "dateType": "INITIATED_DATE",
+ "date": "2024-06-15T10:30:00Z"
+ }
+ ],
+ "transactionInvolvement": [
+ {
+ "partyReference": {
+ "partyIdentification": [
+ {
+ "partyIdentification": {
+ "identifierValue": "V20132859"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "financialTransaction": {
+ "amount": 150.75,
+ "currencyCode": "VES"
+ },
+ "name": "Enviada",
+ "description": "cobro a pepito"
+ }
},
- "transaction": {
- "transactionIdentification": {
- "identifierValue": "3"
- },
- "transactionStatus": {
- "statusType": "IN_PROGRESS",
- "statusName": "EN CURSO",
- "statusAccepted": 0,
- "statusRejected": 0,
- "statusExpired": 5
- },
- "transactionDate": [
- {
- "dateType": "EXECUTED_DATE",
- "date": "2026-01-05 14:39:52.3840159"
- }
- ],
- "transactionDetails": {
- "transactionQuantity": 1000
+ {
+ "transaction": {
+ "transactionIdentification": {
+ "identifierValue": "2"
+ },
+ "transactionStatus": {
+ "statusType": "PENDING",
+ "statusName": "Pendiente"
+ },
+ "transactionDate": [
+ {
+ "dateType": "INITIATED_DATE",
+ "date": "2024-06-16T14:49:00Z"
+ }
+ ],
+ "transactionInvolvement": [
+ {
+ "partyReference": {
+ "partyIdentification": [
+ {
+ "partyIdentification": {
+ "identifierValue": "V20132859"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "financialTransaction": {
+ "amount": 350.0,
+ "currencyCode": "VES"
+ },
+ "name": "Recibida",
+ "description": "pago a proveedor"
+ }
+ },
+ {
+ "transaction": {
+ "transactionIdentification": {
+ "identifierValue": "3"
+ },
+ "transactionStatus": {
+ "statusType": "REJECTED",
+ "statusName": "Rechazado"
+ },
+ "transactionDate": [
+ {
+ "dateType": "INITIATED_DATE",
+ "date": "2024-06-17T09:15:00Z"
+ }
+ ],
+ "transactionInvolvement": [
+ {
+ "partyReference": {
+ "partyIdentification": [
+ {
+ "partyIdentification": {
+ "identifierValue": "V20132859"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "financialTransaction": {
+ "amount": 200.0,
+ "currencyCode": "VES"
+ },
+ "name": "Enviada",
+ "description": "cobro a cliente"
+ }
+ },
+ {
+ "transaction": {
+ "transactionIdentification": {
+ "identifierValue": "4"
+ },
+ "transactionStatus": {
+ "statusType": "APPROVED",
+ "statusName": "Aprobada"
+ },
+ "transactionDate": [
+ {
+ "dateType": "INITIATED_DATE",
+ "date": "2024-06-18T11:20:00Z"
+ }
+ ],
+ "transactionInvolvement": [
+ {
+ "partyReference": {
+ "partyIdentification": [
+ {
+ "partyIdentification": {
+ "identifierValue": "V20132859"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "financialTransaction": {
+ "amount": 750.0,
+ "currencyCode": "VES"
+ },
+ "name": "Recibida",
+ "description": "pago a proveedor"
}
}
- }
- ]
- },
- "statusResponse": {
- "statusCode": "200",
- "message": "Operacion exitosa"
- }
- }
- """
- )
+ ]
+ },
+ "statusResponse": {
+ "statusCode": "200",
+ "message": "Operacion exitosa"
+ }
+ }
+ """
+ )
+ }
)
),
@APIResponse(
@@ -272,17 +433,21 @@ public class ServiceOrderPaymentSearchResource {
@Parameter(description = "Codigo del canal (BOL, BOLE)", required = true, example = "BOLE")
String channelCode,
- @PathParam("signatureIdentifier")
- @Parameter(description = "Firma del archivo", required = true, example = "f8c226f844339c55bf898162c5d7de5d8116cee6028e1b357414dcc686b3ea85")
- String signatureIdentifier,
-
@QueryParam("customerReferenceFintechId")
@Parameter(description = "ID de la fintech", example = "pranical-test")
String customerReferenceFintechId,
@QueryParam("appId")
@Parameter(description = "ID de la aplicacion", example = "DANIAPP")
- String appId
+ String appId,
+
+ @QueryParam("initiatedDate")
+ @Parameter(description = "Fecha de creación", example = "2024-06-15T10:30:00Z")
+ String initiatedDate,
+
+ @QueryParam("instructionRequestId")
+ @Parameter(description = "ID de la peticion de pago", example = "1")
+ String instructionRequestId
) {
log.info("Iniciando consulta para instruccion de archivo id: {}", partyReferenceId);
@@ -292,7 +457,10 @@ public class ServiceOrderPaymentSearchResource {
.customerReferenceFintechId(Objects.toString(customerReferenceFintechId, ""))
.appId(Objects.toString(appId, ""))
.procedureRequest(Instruction.fromResource(
- partyReferenceId, channelCode, signatureIdentifier
+ partyReferenceId,
+ initiatedDate,
+ instructionRequestId,
+ channelCode
))
.build()
)).build();
diff --git a/src/main/java/com/banesco/module/transaction/domain/model/FinancialTransaction.java b/src/main/java/com/banesco/module/transaction/domain/model/FinancialTransaction.java
new file mode 100644
index 0000000..3b2c285
--- /dev/null
+++ b/src/main/java/com/banesco/module/transaction/domain/model/FinancialTransaction.java
@@ -0,0 +1,19 @@
+package com.banesco.module.transaction.domain.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.quarkus.runtime.annotations.RegisterForReflection;
+import lombok.*;
+
+import java.math.BigDecimal;
+
+@Getter
+@ToString
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@RegisterForReflection
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class FinancialTransaction {
+ private BigDecimal amount; // BOL: amount
+ private String currencyCode; // BOL: currency
+}
diff --git a/src/main/java/com/banesco/module/transaction/domain/model/Transaction.java b/src/main/java/com/banesco/module/transaction/domain/model/Transaction.java
index cf0b0b4..b43875b 100644
--- a/src/main/java/com/banesco/module/transaction/domain/model/Transaction.java
+++ b/src/main/java/com/banesco/module/transaction/domain/model/Transaction.java
@@ -1,6 +1,7 @@
package com.banesco.module.transaction.domain.model;
import com.banesco.common.domain.model.Identifier;
+import com.fasterxml.jackson.annotation.JsonInclude;
import io.quarkus.runtime.annotations.RegisterForReflection;
import lombok.*;
@@ -12,9 +13,14 @@ import java.util.List;
@NoArgsConstructor
@AllArgsConstructor
@RegisterForReflection
+@JsonInclude(JsonInclude.Include.NON_NULL)
public class Transaction {
- private Identifier transactionIdentification; // nroRequest
- private TransactionStatus transactionStatus; // status, accepted, rejected, expired
- private List transactionDate; // dispatchDate
- private TransactionDetails transactionDetails; // quantity
+ private Identifier transactionIdentification; // BOLE: nroRequest | BOL: id
+ private TransactionStatus transactionStatus; // BOLE: status, accepted, rejected, expired | BOL: status
+ private List transactionDate; // BOLE: dispatchDate | BOL: dateCreate
+ private TransactionDetails transactionDetails; // BOLE: quantity
+ private List transactionInvolvement; // BOL: emitterReceptor
+ private FinancialTransaction financialTransaction; // BOL: amount, currency
+ private String name; // BOL: requestType
+ private String description; // BOL: concept
}
diff --git a/src/main/java/com/banesco/module/transaction/domain/model/TransactionDateTime.java b/src/main/java/com/banesco/module/transaction/domain/model/TransactionDateTime.java
index 3381fef..6ff6115 100644
--- a/src/main/java/com/banesco/module/transaction/domain/model/TransactionDateTime.java
+++ b/src/main/java/com/banesco/module/transaction/domain/model/TransactionDateTime.java
@@ -11,5 +11,5 @@ import lombok.*;
@RegisterForReflection
public class TransactionDateTime {
private TransactionDateTimeType dateType;
- private String date;
+ private String date; // BOLE: dispatchDate | BOL: dateCreate
}
diff --git a/src/main/java/com/banesco/module/transaction/domain/model/TransactionDetails.java b/src/main/java/com/banesco/module/transaction/domain/model/TransactionDetails.java
index 1db29f0..4c0633e 100644
--- a/src/main/java/com/banesco/module/transaction/domain/model/TransactionDetails.java
+++ b/src/main/java/com/banesco/module/transaction/domain/model/TransactionDetails.java
@@ -1,5 +1,6 @@
package com.banesco.module.transaction.domain.model;
+import com.fasterxml.jackson.annotation.JsonInclude;
import io.quarkus.runtime.annotations.RegisterForReflection;
import lombok.*;
@@ -11,6 +12,7 @@ import java.math.BigDecimal;
@NoArgsConstructor
@AllArgsConstructor
@RegisterForReflection
+@JsonInclude(JsonInclude.Include.NON_NULL)
public class TransactionDetails {
- private BigDecimal transactionQuantity; // quantity
+ private BigDecimal transactionQuantity; // BOLE: quantity
}
diff --git a/src/main/java/com/banesco/module/transaction/domain/model/TransactionInvolvement.java b/src/main/java/com/banesco/module/transaction/domain/model/TransactionInvolvement.java
new file mode 100644
index 0000000..b7a859b
--- /dev/null
+++ b/src/main/java/com/banesco/module/transaction/domain/model/TransactionInvolvement.java
@@ -0,0 +1,17 @@
+package com.banesco.module.transaction.domain.model;
+
+import com.banesco.module.party.domain.model.Party;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.quarkus.runtime.annotations.RegisterForReflection;
+import lombok.*;
+
+@Getter
+@ToString
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@RegisterForReflection
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class TransactionInvolvement {
+ private Party partyReference; // BOL: emitterReceptor
+}
diff --git a/src/main/java/com/banesco/module/transaction/domain/model/TransactionStatus.java b/src/main/java/com/banesco/module/transaction/domain/model/TransactionStatus.java
index 7cbd2d3..2f007d9 100644
--- a/src/main/java/com/banesco/module/transaction/domain/model/TransactionStatus.java
+++ b/src/main/java/com/banesco/module/transaction/domain/model/TransactionStatus.java
@@ -1,5 +1,6 @@
package com.banesco.module.transaction.domain.model;
+import com.fasterxml.jackson.annotation.JsonInclude;
import io.quarkus.runtime.annotations.RegisterForReflection;
import lombok.*;
@@ -9,10 +10,11 @@ import lombok.*;
@NoArgsConstructor
@AllArgsConstructor
@RegisterForReflection
+@JsonInclude(JsonInclude.Include.NON_NULL)
public class TransactionStatus {
- private TransactionStatusType statusType; // status
- private String statusName; // status
- private Long statusAccepted; // accepted
- private Long statusRejected; // rejected
- private Long statusExpired; // expired
+ private TransactionStatusType statusType; // BOLE: status | BOL: status
+ private String statusName; // BOLE: status | BOL: status
+ private Long statusAccepted; // BOLE: accepted
+ private Long statusRejected; // BOLE: rejected
+ private Long statusExpired; // BOLE: expired
}
diff --git a/src/main/java/com/banesco/module/transaction/domain/model/TransactionStatusType.java b/src/main/java/com/banesco/module/transaction/domain/model/TransactionStatusType.java
index 6680ba4..1ed587d 100644
--- a/src/main/java/com/banesco/module/transaction/domain/model/TransactionStatusType.java
+++ b/src/main/java/com/banesco/module/transaction/domain/model/TransactionStatusType.java
@@ -7,6 +7,7 @@ public enum TransactionStatusType {
EXECUTED,
CANCELLED,
CONFIRMED,
+ APPROVED,
SUSPENDED,
PENDING,
COMPLETED,
@@ -15,4 +16,5 @@ public enum TransactionStatusType {
REJECTED,
EXPIRED,
SENT,
+ RECEIVED,
}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 7096d88..9835db0 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -15,4 +15,4 @@ api:
key: 'dom-service-order-payment-search'
content: '[{"backendCode":"200","httpCode":200,"statusCode":"200","description":"Operacion exitosa"},{"backendCode":"R404","httpCode":404,"statusCode":"404","description":"Datos de validacion no encontrado."},{"backendCode":"503","httpCode":503,"statusCode":"503","description":"Uso interno"},{"backendCode":"422","httpCode":422,"statusCode":"422","description":"Uso interno"},{"backendCode":"500","httpCode":500,"statusCode":"500","description":"Uso interno"},{"backendCode":"100","httpCode":503,"statusCode":"503","description":"VDR13 - OSB Disponible"},{"backendCode":"OSB-382505","httpCode":503,"statusCode":"503","description":"VDR13 - OSB Disponible"},{"backendCode":"OSB-380002","httpCode":503,"statusCode":"503","description":"VDR13 - OSB Disponible"},{"backendCode":"ERROR","httpCode":400,"statusCode":"400","description":"Uso interno"},{"backendCode":"400","httpCode":400,"statusCode":"400","description":"Uso interno"},{"backendCode":"401","httpCode":401,"statusCode":"401","description":"Uso interno"},{"backendCode":"403","httpCode":403,"statusCode":"403","description":"Uso interno"},{"backendCode":"404","httpCode":404,"statusCode":"404","description":"Uso interno"},{"backendCode":"default","httpCode":409,"statusCode":"409","description":"Conflicto"},{"backendCode":"424","httpCode":424,"statusCode":"424","description":"Error de dependencia"},{"backendCode":"VDE01","httpCode":400,"statusCode":"VDE01","description":"VDE01 - Error en dato de entrada obligatorio: %s"},{"backendCode":"VDE02","httpCode":400,"statusCode":"VDE02","description":"VDE02 - Error en valor permitido para campo: %s"},{"backend_code":"204","http_code":"200","status_code":"200","description":"Cliente sin productos","status":"ok"}]'
rest-client:
- payment-status-by-id: '{"url":"http://10.135.193.156:8080/RequestPayment/notificationRequestPayment/v1/querys/getGeneralRequestPayByParams/{signatureIdentifier}","timeout":{"connect":10000,"response":10000},"statusSuccess":"00"}'
\ No newline at end of file
+ payment-order-by-parameters: '{"url":"http://10.135.193.156:8080/RequestPayment/notificationRequestPayment/v1/querys/getGeneralRequestPayByParams/{signatureIdentifier}","timeout":{"connect":10000,"response":10000},"statusSuccess":"00"}'
\ No newline at end of file