Compare commits

..

No commits in common. "a390afebde8b8ee71edc5e05ab63598e6551a0bb" and "80f997b092c329528c475778296df756b9418eaa" have entirely different histories.

18 changed files with 103 additions and 399 deletions

View File

@ -22,8 +22,9 @@ public class RequestValidatorHelper {
public void validateRequired( public void validateRequired(
ServiceOrderPaymentSearchRequest request ServiceOrderPaymentSearchRequest request
) { ) {
required(request.getPartyId(), "partyReferenceId"); required(request.getId(), "partyReferenceId");
required(request.getChannelCode(), "channelCode"); required(request.getChannelCode(), "channelCode");
required(request.getSignatureIdentifier(), "signatureIdentifier");
required(request.getCustomerReferenceFintechId(), "customerReferenceFintechId"); required(request.getCustomerReferenceFintechId(), "customerReferenceFintechId");
required(request.getAppId(), "appId"); required(request.getAppId(), "appId");
} }
@ -31,7 +32,7 @@ public class RequestValidatorHelper {
public void validateFieldValues( public void validateFieldValues(
ServiceOrderPaymentSearchRequest request ServiceOrderPaymentSearchRequest request
) { ) {
validate(request.getPartyId(), config.recipientIdNumber(), "partyReferenceId"); validate(request.getId(), config.recipientIdNumber(), "partyReferenceId");
validate(request.getChannelCode(), config.channelCode(), "channelCode"); validate(request.getChannelCode(), config.channelCode(), "channelCode");
} }

View File

@ -2,14 +2,11 @@ package com.banesco.module.instruction.domain.model;
import com.banesco.common.domain.exception.HttpStatusCodeException; import com.banesco.common.domain.exception.HttpStatusCodeException;
import com.banesco.common.domain.model.Identifier; 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 com.fasterxml.jackson.annotation.JsonInclude;
import io.quarkus.runtime.annotations.RegisterForReflection; import io.quarkus.runtime.annotations.RegisterForReflection;
import lombok.*; import lombok.*;
import java.util.Arrays; import java.util.Arrays;
import java.util.List;
import java.util.Objects; import java.util.Objects;
@Getter @Getter
@ -20,16 +17,14 @@ import java.util.Objects;
@RegisterForReflection @RegisterForReflection
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
public class Instruction { public class Instruction {
private InstructionInvolvement instructionInvolvement; // Request JSON: "recipientId" private InstructionIdentification instructionIdentifier; // Request JSON: "recipientId"
private List<InstructionDateTime> instructionDate; // Request JSON: "dateCreate" private String instructionDescription; // Request JSON: "signature"
private InstructionIdentification instructionIdentifier; // Request JSON: "id"
private InstructionPurposeType instructionPurposeType; // Request JSON: "channelOrigin" (BOLE) private InstructionPurposeType instructionPurposeType; // Request JSON: "channelOrigin" (BOLE)
public static Instruction fromResource( public static Instruction fromResource(
String partyReferenceId, String partyReferenceId,
String initiatedDate, String channelCode,
String instructionRequestId, String signatureIdentifier
String channelCode
) { ) {
boolean isChannelCodeValid = (Arrays.stream( boolean isChannelCodeValid = (Arrays.stream(
InstructionPurposeType.values() InstructionPurposeType.values()
@ -40,39 +35,18 @@ public class Instruction {
} }
return Instruction.builder() 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( .instructionIdentifier(
InstructionIdentification.builder() InstructionIdentification.builder()
.identification( .identification(
Identifier.builder() Identifier.builder()
.identifierValue(Objects.toString(instructionRequestId, "")) .identifierValue(partyReferenceId)
.build() .build()
) )
.identificationType(InstructionIdentificationType.INSTRUCTION_NUMBER) .identificationType(InstructionIdentificationType.INSTRUCTION_NUMBER)
.build() .build()
) )
.instructionDate(List.of(
InstructionDateTime.builder()
.date(Objects.toString(initiatedDate, ""))
.build()
))
.instructionPurposeType(InstructionPurposeType.valueOf(channelCode)) .instructionPurposeType(InstructionPurposeType.valueOf(channelCode))
.instructionDescription(signatureIdentifier)
.build(); .build();
} }
} }

View File

@ -1,14 +0,0 @@
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;
}

View File

@ -1,15 +0,0 @@
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;
}

View File

@ -37,7 +37,7 @@ public class ServiceOrderPaymentSearchService implements ServiceOrderPaymentSear
public ApiResponse<ServiceOrderPaymentSearchResponse> execute( public ApiResponse<ServiceOrderPaymentSearchResponse> execute(
ServiceOrderPaymentSearchRequest request ServiceOrderPaymentSearchRequest request
) { ) {
log.info("Iniciando ejecucion para el transaccion: {}", request.getPartyId()); log.info("Iniciando ejecucion para el transaccion: {}", request.getId());
validate(request); validate(request);

View File

@ -1,7 +1,6 @@
package com.banesco.module.service_order_payment_search.domain.dto.request; 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.Instruction;
import com.banesco.module.instruction.domain.model.InstructionPurposeType;
import io.quarkus.runtime.annotations.RegisterForReflection; import io.quarkus.runtime.annotations.RegisterForReflection;
import lombok.*; import lombok.*;
@ -24,51 +23,22 @@ public class ServiceOrderPaymentSearchRequest {
@NonNull @NonNull
private Instruction procedureRequest; private Instruction procedureRequest;
public String getPartyId() { public String getId() {
return getProcedureRequest() return getProcedureRequest().getInstructionIdentifier().getIdentification().getIdentifierValue();
.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() { public String getChannelCode() {
return getProcedureRequest().getInstructionPurposeType().name(); return getProcedureRequest().getInstructionPurposeType().name();
} }
public boolean isBole() { public String getSignatureIdentifier() {
return getProcedureRequest().getInstructionPurposeType() == InstructionPurposeType.BOLE; return getProcedureRequest().getInstructionDescription();
}
public Map<String, String> toParams() {
return Map.ofEntries(
entry("partyReferenceId", Objects.toString(getPartyId(), "")),
entry("channelCode", Objects.toString(getChannelCode(), ""))
);
} }
public Map<String, String> toQueryString() { public Map<String, String> toQueryString() {
return Map.ofEntries( return Map.ofEntries(
entry("appId", Objects.toString(getAppId(), "")), 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(), ""))
); );
} }
} }

View File

@ -2,7 +2,6 @@ package com.banesco.module.service_order_payment_search.domain.model;
import com.banesco.module.document.domain.model.Document; import com.banesco.module.document.domain.model.Document;
import com.banesco.module.transaction.domain.model.Transaction; import com.banesco.module.transaction.domain.model.Transaction;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.quarkus.runtime.annotations.RegisterForReflection; import io.quarkus.runtime.annotations.RegisterForReflection;
import lombok.*; import lombok.*;
@ -12,10 +11,7 @@ import lombok.*;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@RegisterForReflection @RegisterForReflection
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ServicingOrderProcedure { public class ServicingOrderProcedure {
private Document document; // BOLE: fileName private Document document; // fileName
// BOLE: nroRequest, status, accepted, rejected, expired, dispatchDate, quantity private Transaction transaction; // status, accepted, rejected, expired
// BOL: id, requestType, emitterReceptor, status, amount, currency, concept, dateCreate
private Transaction transaction;
} }

View File

@ -13,6 +13,8 @@ import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject; import jakarta.inject.Inject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.util.Map;
@Slf4j @Slf4j
@ApplicationScoped @ApplicationScoped
public class BusServiceOrderPaymentSearchClient implements BusinessUseCase { public class BusServiceOrderPaymentSearchClient implements BusinessUseCase {
@ -34,13 +36,19 @@ public class BusServiceOrderPaymentSearchClient implements BusinessUseCase {
ServiceOrderPaymentSearchRequest params, ServiceOrderPaymentSearchRequest params,
Class<T> responseType Class<T> responseType
) { ) {
String partyReferenceId = params.getPartyId(); String partyReferenceId = params.getId();
String channelCode = params.getChannelCode();
String signatureIdentifier = params.getSignatureIdentifier();
HttpRequest request = HttpRequest.forApiResponse( HttpRequest request = HttpRequest.forApiResponse(
businessConfig.getUrl(), businessConfig.getUrl(),
HttpRequest.HttpMethod.GET, HttpRequest.HttpMethod.GET,
responseType responseType
) )
.withPathParams(params.toParams()) .withPathParams(Map.of(
"partyReferenceId", partyReferenceId,
"channelCode", channelCode,
"signatureIdentifier", signatureIdentifier
))
.withQueryParams(params.toQueryString()) .withQueryParams(params.toQueryString())
.withTimeout( .withTimeout(
businessConfig.getTimeout().getConnect(), businessConfig.getTimeout().getConnect(),

View File

@ -43,7 +43,7 @@ public class ServiceOrderPaymentSearchResource {
} }
@GET @GET
@Path("/retrieve/{partyReferenceId}/{channelCode}") @Path("/retrieve/{partyReferenceId}/{channelCode}/{signatureIdentifier}")
@Operation( @Operation(
summary = "Recuperar informacion de la transaccion", summary = "Recuperar informacion de la transaccion",
description = "Consulta de una trasanccion de pago por id de archivo" description = "Consulta de una trasanccion de pago por id de archivo"
@ -67,9 +67,8 @@ public class ServiceOrderPaymentSearchResource {
) )
} }
), ),
examples = { examples = @ExampleObject(
@ExampleObject( name = "Ejemplo exitoso",
name = "Ejemplo exitoso (BOLE)",
value = """ value = """
{ {
"data": { "data": {
@ -134,167 +133,7 @@ public class ServiceOrderPaymentSearchResource {
} }
} }
""" """
),
@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": "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"
}
}
"""
) )
}
) )
), ),
@APIResponse( @APIResponse(
@ -441,13 +280,9 @@ public class ServiceOrderPaymentSearchResource {
@Parameter(description = "Codigo del canal (BOL, BOLE)", required = true, example = "BOLE") @Parameter(description = "Codigo del canal (BOL, BOLE)", required = true, example = "BOLE")
String channelCode, String channelCode,
@QueryParam("initiatedDate") @PathParam("signatureIdentifier")
@Parameter(description = "Fecha de creación", example = "2024-06-15T10:30:00Z") @Parameter(description = "Firma del archivo", required = true, example = "f8c226f844339c55bf898162c5d7de5d8116cee6028e1b357414dcc686b3ea85")
String initiatedDate, String signatureIdentifier
@QueryParam("instructionRequestId")
@Parameter(description = "ID de la peticion de pago", example = "1")
String instructionRequestId
) { ) {
log.info("Iniciando consulta para instruccion de archivo id: {}", partyReferenceId); log.info("Iniciando consulta para instruccion de archivo id: {}", partyReferenceId);
@ -457,10 +292,7 @@ public class ServiceOrderPaymentSearchResource {
.customerReferenceFintechId(Objects.toString(customerReferenceFintechId, "")) .customerReferenceFintechId(Objects.toString(customerReferenceFintechId, ""))
.appId(Objects.toString(appId, "")) .appId(Objects.toString(appId, ""))
.procedureRequest(Instruction.fromResource( .procedureRequest(Instruction.fromResource(
partyReferenceId, partyReferenceId, channelCode, signatureIdentifier
initiatedDate,
instructionRequestId,
channelCode
)) ))
.build() .build()
)).build(); )).build();

View File

@ -1,19 +0,0 @@
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
}

View File

@ -1,7 +1,6 @@
package com.banesco.module.transaction.domain.model; package com.banesco.module.transaction.domain.model;
import com.banesco.common.domain.model.Identifier; import com.banesco.common.domain.model.Identifier;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.quarkus.runtime.annotations.RegisterForReflection; import io.quarkus.runtime.annotations.RegisterForReflection;
import lombok.*; import lombok.*;
@ -13,14 +12,9 @@ import java.util.List;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@RegisterForReflection @RegisterForReflection
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Transaction { public class Transaction {
private Identifier transactionIdentification; // BOLE: nroRequest | BOL: id private Identifier transactionIdentification; // nroRequest
private TransactionStatus transactionStatus; // BOLE: status, accepted, rejected, expired | BOL: status private TransactionStatus transactionStatus; // status, accepted, rejected, expired
private List<TransactionDateTime> transactionDate; // BOLE: dispatchDate | BOL: dateCreate private List<TransactionDateTime> transactionDate; // dispatchDate
private TransactionDetails transactionDetails; // BOLE: quantity private TransactionDetails transactionDetails; // quantity
private List<TransactionInvolvement> transactionInvolvement; // BOL: emitterReceptor
private FinancialTransaction financialTransaction; // BOL: amount, currency
private String name; // BOL: requestType
private String description; // BOL: concept
} }

View File

@ -11,5 +11,5 @@ import lombok.*;
@RegisterForReflection @RegisterForReflection
public class TransactionDateTime { public class TransactionDateTime {
private TransactionDateTimeType dateType; private TransactionDateTimeType dateType;
private String date; // BOLE: dispatchDate | BOL: dateCreate private String date;
} }

View File

@ -1,6 +1,5 @@
package com.banesco.module.transaction.domain.model; package com.banesco.module.transaction.domain.model;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.quarkus.runtime.annotations.RegisterForReflection; import io.quarkus.runtime.annotations.RegisterForReflection;
import lombok.*; import lombok.*;
@ -12,7 +11,6 @@ import java.math.BigDecimal;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@RegisterForReflection @RegisterForReflection
@JsonInclude(JsonInclude.Include.NON_NULL)
public class TransactionDetails { public class TransactionDetails {
private BigDecimal transactionQuantity; // BOLE: quantity private BigDecimal transactionQuantity; // quantity
} }

View File

@ -1,17 +0,0 @@
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
}

View File

@ -1,6 +1,5 @@
package com.banesco.module.transaction.domain.model; package com.banesco.module.transaction.domain.model;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.quarkus.runtime.annotations.RegisterForReflection; import io.quarkus.runtime.annotations.RegisterForReflection;
import lombok.*; import lombok.*;
@ -10,11 +9,10 @@ import lombok.*;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@RegisterForReflection @RegisterForReflection
@JsonInclude(JsonInclude.Include.NON_NULL)
public class TransactionStatus { public class TransactionStatus {
private TransactionStatusType statusType; // BOLE: status | BOL: status private TransactionStatusType statusType; // status
private String statusName; // BOLE: status | BOL: status private String statusName; // status
private Long statusAccepted; // BOLE: accepted private Long statusAccepted; // accepted
private Long statusRejected; // BOLE: rejected private Long statusRejected; // rejected
private Long statusExpired; // BOLE: expired private Long statusExpired; // expired
} }

View File

@ -7,7 +7,6 @@ public enum TransactionStatusType {
EXECUTED, EXECUTED,
CANCELLED, CANCELLED,
CONFIRMED, CONFIRMED,
APPROVED,
SUSPENDED, SUSPENDED,
PENDING, PENDING,
COMPLETED, COMPLETED,
@ -16,5 +15,4 @@ public enum TransactionStatusType {
REJECTED, REJECTED,
EXPIRED, EXPIRED,
SENT, SENT,
RECEIVED,
} }

View File

@ -19,4 +19,4 @@ api:
key: 'rec-service-order-payment-search' key: 'rec-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"},{"backendCode":"VRN04","httpCode":"503","statusCode":"VRN04","description":"Servicio en horario de mantenimiento","status":"error"},{"backendCode":"204","httpCode":"200","statusCode":"200","description":"Cliente sin productos","status":"ok"}]' 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"},{"backendCode":"VRN04","httpCode":"503","statusCode":"VRN04","description":"Servicio en horario de mantenimiento","status":"error"},{"backendCode":"204","httpCode":"200","statusCode":"200","description":"Cliente sin productos","status":"ok"}]'
rest-client: rest-client:
bus-service-order-payment-search: '{"url":"http://localhost:8082/service-order-payment-search/retrieve/{partyReferenceId}/{channelCode}","timeout":{"connect":15000,"response":15000},"config":{}}' bus-service-order-payment-search: '{"url":"http://localhost:8082/service-order-payment-search/retrieve/{partyReferenceId}/{channelCode}/{signatureIdentifier}","timeout":{"connect":15000,"response":15000},"config":{}}'