cancel
Showing results for 
Search instead for 
Did you mean: 

ARB CIM: E00013 eCheck Record Type must be one of the following values: "PPD", "WEB", or "CCD"

Hi,

 

Using this sample code as a template, I am trying to create an ARB using a (CIM) payment profile ID, but I am getting the error message:

 

E00013 eCheck Record Type must be one of the following values: "PPD", "WEB", or "CCD"

 

The bank account was created via the hosted "add a payment" form embedded on my site via an iframe.

 

I can create a single transaction (authCaptureTransaction) using this bank account payment profile ID without issue.

 

Here is my C# code:

 

	public AuthNetResponse SubmitARBCIM(DonationFormModel dfm)
    {
        var trans = dfm.Transaction;

        ApiOperationBase<ANetApiRequest, ANetApiResponse>.RunEnvironment = _isTestTrans ? AuthorizeNet.Environment.SANDBOX : AuthorizeNet.Environment.PRODUCTION;

        // define the merchant information (authentication / transaction id)
        ApiOperationBase<ANetApiRequest, ANetApiResponse>.MerchantAuthentication = new merchantAuthenticationType()
        {
            name = _apiLoginId,
            ItemElementName = ItemChoiceType.transactionKey,
            Item = _tranKey
        };

        paymentScheduleTypeInterval interval = new paymentScheduleTypeInterval();
        interval.unit = AuthorizeNet.Api.Contracts.V1.ARBSubscriptionUnitEnum.months;

        if (dfm.Frequency == "monthly")
        {
            interval.length = 1;
        }
        else if (dfm.Frequency == "quarterly")
        {
            interval.length = 3;
        }
        else if (dfm.Frequency == "annually")
        {
            interval.length = 12;
        }

        paymentScheduleType schedule = new paymentScheduleType
        {
            interval = interval,
            startDate = trans.RecurringGiftStartDate.Value,
            totalOccurrences = _totalOccurrences,
            startDateSpecified = true,
            totalOccurrencesSpecified = true
        };

        paymentType paymentType = null;
        customerProfileIdType customerProfile = null;
        customerProfile = new customerProfileIdType()
        {
            customerProfileId = dfm.PaymentGatewayCustomerProfileId,
            customerPaymentProfileId = dfm.PaymentProfileId
        };

        var orderInfo = new orderType
        {
            invoiceNumber = trans.InvoiceNumber
        };

        AuthorizeNet.Api.Contracts.V1.ARBSubscriptionType subscriptionType = new AuthorizeNet.Api.Contracts.V1.ARBSubscriptionType()
        {
            amount = trans.TotalAmount,
            paymentSchedule = schedule,
            order = orderInfo,
            name = "ruf-site-sub",
            profile = customerProfile,
            amountSpecified = true,
            trialAmountSpecified = false
        };
        
        var request = new ARBCreateSubscriptionRequest { subscription = subscriptionType };

        var controller = new ARBCreateSubscriptionController(request);          // instantiate the contoller that will call the service
        controller.Execute();

        ARBCreateSubscriptionResponse response = controller.GetApiResponse();   // get the response from the service (errors contained if any)

        AuthNetResponse anr = new AuthNetResponse();

        if (response != null && response.messages.resultCode == messageTypeEnum.Ok)
        {
            anr.Approved = true;
            anr.Message = "Success";
            anr.SubscriptionId = response.subscriptionId;
            anr.CustomerProfileId = response.profile.customerProfileId;
            anr.PaymenProfileId = response.profile.customerPaymentProfileId;
        }
        else if (response != null)
        {
            anr.Approved = false;
            anr.Message = "Transaction Error: " + response.messages.message[0].code + " " + response.messages.message[0].text;
        }
        else
        {
            anr.Approved = false;
            anr.Message = "Error: Unable to complete your transaction. Please wait a few minutes, double-check your information and try again.";
        }

        return anr;
    }

 

I checked, and the paymentProfile's eCheckType is "PPD", so I am not sure why I am getting this error.

Jabberrwocky1
Member
4 REPLIES 4

Hello @Jabberrwocky1

I've reported your issue to the product team for analysis.

I'd recommend subscribing to this topic so that you'll be alerted via email if there are updates. To subscribe, click Topic Options at the top of this thread and then select Subscribe. You'll then receive an email once anyone replies to your post.

Thanks,

Richard

RichardH
Administrator Administrator
Administrator

Thanks, Richard.

Apparently this is a bug. Here is the response I received from Authorize.Net Merchant Support:

 

"Turns out this is actually a bug. When creating a CIM payment profile with eCheck, an eCheck.Net type is not saved since it's only storing the information. However, when submitting an eCheck transaction for processing, that is when an eCheck.Net type is required.

Because you are creating a subscription from a profile--that does not have an eCheck.Net type listed--that is when you receive the error, and this is the bug in question.

This has been reported, but the workaround for now is by using the "UpdateProfileRequest" and add an eCheck type. This will allow you to create the subscription with the eCheck payment profile ID. I know this isn't ideal, but we are now hopeful to have this remedied for other merchants."

 

I have not tried the workaround yet.

Jabberrwocky1
Member

FYI. Authorize.net has resolved this bug.

 

Be aware that we ran into a separate issue: Users with multiple existing ARBs would run into issues when we tried to set them up with a single CIM account. Therefore, we turned off CIM for exisisting ARBs. We only use CIM when users create new ARBs.

 

I hope this helps someone else.