In method below when I go from credit card to opaque data it ERRORS with E000001
function createPaymentProfile(customerProfileId, opaqueData, billingInfo,Email) {
return new Promise((resolve, reject) => {
const opaque = new ApiContracts.OpaqueDataType();
//opaque.setDataDescriptor(opaqueData.dataDescriptor);
opaque.setDataDescriptor("COMMON.ACCEPT.INAPP.PAYMENT");
//opaque.setDataValue(opaqueData.dataValue);
opaque.setDataValue("947147125C0159A2E053C01010AC2F5C");
console.log("opaqe",opaque);
const payment = new ApiContracts.PaymentType();
payment.setOpaqueData(opaque);
// // const payment = {
// // opaqueData: {
// // dataDescriptor: opaqueData.dataDescriptor,
// // dataValue: opaqueData.dataValue
// // }
// // };
// console.log("payment",payment);
// const billTo = new ApiContracts.CustomerAddressType();
// billTo.setFirstName(billingInfo.firstName);
// billTo.setLastName(billingInfo.lastName);
// billTo.setAddress(billingInfo.address);
// billTo.setCity(billingInfo.city);
// billTo.setState(billingInfo.state);
// billTo.setZip(billingInfo.zip);
// billTo.setCountry(billingInfo.country);
// billTo.setPhoneNumber(billingInfo.phone);
// billTo.setEmail(Email);
// // billTo.faxNumber = undefined;
// // billTo.company = undefined;
// console.log("bill to",billTo);
// var creditCard = new ApiContracts.CreditCardType();
// creditCard.setCardNumber('4111111111111111');
// creditCard.setExpirationDate('0842');
// var payment = new ApiContracts.PaymentType();
// payment.setCreditCard(creditCard);
var customerAddress = new ApiContracts.CustomerAddressType();
customerAddress.setFirstName('test');
customerAddress.setLastName('scenario');
customerAddress.setAddress(randomStreetNumber + ' Main Street');
customerAddress.setCity('Bellevue');
customerAddress.setState('WA');
customerAddress.setZip('98004');
customerAddress.setCountry('USA');
customerAddress.setPhoneNumber('000-000-0000');
var profile = new ApiContracts.CustomerPaymentProfileType();
profile.setBillTo(customerAddress);
profile.setPayment(payment);
// profile.setDefaultPaymentProfile(true);
// const paymentProfile = new ApiContracts.CustomerPaymentProfileType();
// paymentProfile.setCustomerType(APIContracts.CustomerTypeEnum.INDIVIDUAL);
// paymentProfile.setPayment(payment);
// paymentProfile.setBillTo(billTo);
// paymentProfile.setDefaultPaymentProfile(true);
// console.log("paymentpro",paymentProfile);
const request = new ApiContracts.CreateCustomerPaymentProfileRequest();
request.setMerchantAuthentication(merchantAuthentication);
request.setCustomerProfileId(customerProfileId);
// request.setPaymentProfile(paymentProfile);
request.setPaymentProfile(profile);
//request.setValidationMode(APIContracts.ValidationModeEnum.LIVEMODE);
request.setValidationMode(ApiContracts.ValidationModeEnum.TESTMODE);
console.log("request",request);
console.log(JSON.stringify(request.getJSON(), null, 2));
const rawRequest = request.getJSON(); // or any object you're building
// console.log("raw request",request.getJSON());
//const cleanedRequest = removeNulls(rawRequest);
const cleanedRequest = rawRequest;
console.log("cleaned request",JSON.stringify(cleanedRequest));
const controller = new ApiControllers.CreateCustomerPaymentProfileController(cleanedRequest);
console.log("controller",JSON.stringify(controller));
controller.execute(() => {
try {
const apiResponse = controller.getResponse();
console.log("Raw API Response:", apiResponse);
console.log("API Response:", JSON.stringify(apiResponse));
const response = new ApiContracts.CreateCustomerPaymentProfileResponse(apiResponse);
if (
response &&
response.getMessages().getResultCode() === ApiContracts.MessageTypeEnum.OK
) {
console.log("Payment Profile ID:", response.getCustomerPaymentProfileId());
resolve(response.getCustomerPaymentProfileId());
} else {
const errorMessages = response.getMessages().getMessage();
errorMessages.forEach((msg, index) => {
console.error(`Error ${index + 1}: Code=${msg.getCode()}, Text=${msg.getText()}`);
});
reject(new Error(errorMessages[0].getText()));
}
} catch (err) {
console.error("Execution Error:", err);
reject(err);
}
});
});
}