cancel
Showing results for 
Search instead for 
Did you mean: 

CIM Refund Transaction has a bug

Hi,

 

We are using CIM/AIM API on our system. We saved our customer payment profile via CIM interface. It works fine.

 

Now, I am trying to integrate CIM Refund and Void transaction to our admin web portal. And, I did everything with SOAP guide. But, It did not work. I debugged line to line( VS 2012 with C#), and it return error message.

 

Here is my code: this one return E00013 Credit card number is invalid.

 

            ProfileTransRefundType RefundCIM = new ProfileTransRefundType();
            RefundCIM.transId = TransID;
            RefundCIM.customerProfileId=ProfileID;
            RefundCIM.customerPaymentProfileId =PaymentProfileID;
            RefundCIM.amount = Amount;
           RefundCIM.creditCardNumberMasked = LastFour;
           ProfileTransactionType RefundType = new ProfileTransactionType();
            RefundType.Item =RefundCIM;
            CreateCustomerProfileTransactionResponseType RefundCIMTrans = AuthorizeNETService.CreateCustomerProfileTransaction(Authorization, RefundType, null);

 

This one return E00014 Payment profile id ,profile id or xxxx is required.

 

ProfileTransRefundType RefundCIM = new ProfileTransRefundType();
            RefundCIM.transId = TransID;
            RefundCIM.customerProfileId=ProfileID;
            RefundCIM.customerPaymentProfileId =PaymentProfileID;
            RefundCIM.amount = Amount;
            ProfileTransactionType RefundType = new ProfileTransactionType();
            RefundType.Item =RefundCIM;
            CreateCustomerProfileTransactionResponseType RefundCIMTrans = AuthorizeNETService.CreateCustomerProfileTransaction(Authorization, RefundType, null);

 

Between those two transactions only different is first one I sent last four digit credit card number, second one is I did not send that last four digit credit card number.

 

The customer credit card details already saved on Authorize.NET . I only provided profile id, payment profile id. So, on my side I did everything correctly.

 

I believe this is a bug on CIM.

 

need help.

 

Thanks,

 

Reference : On the guide

 

For Refund Transactions
If you are submitting a refund against a previous CIM transaction, the following guidelines
apply:
 include customerProfileId, customerPaymentProfileId, and transId.
 customerShippingAddressId is optional.
 creditCardNumberMasked, bankRoutingNumberMasked, and
bankAccountNumberMasked do not need to be included, but they will be validated if
they are included.
If you are submitting a refund for a non-CIM transaction, the following guidelines apply:
 you must include transId, creditCardNumberMasked (or
bankRoutingNumberMasked and bankAccountNumberMasked).
 do not include customerProfileId, customerPaymentProfileId, or
customerShippingAddressId.

tarim
Member
1 ACCEPTED SOLUTION

Accepted Solutions

1)Reason is 2) as it didn't see the ref profileID so it looking for a full cc#.

Did you add 'XXXX' for the masked cc#, e.g. XXXX6164

 

2)For nullable fields, there is a xxxSpecified need to set to true if you are pass it in.

e.g.

RefundCIM.customerProfileIdSpecified= true;

RefundCIM.customerPaymentProfileIdSpecified = true;

View solution in original post

RaynorC1emen7
Expert
2 REPLIES 2

1)Reason is 2) as it didn't see the ref profileID so it looking for a full cc#.

Did you add 'XXXX' for the masked cc#, e.g. XXXX6164

 

2)For nullable fields, there is a xxxSpecified need to set to true if you are pass it in.

e.g.

RefundCIM.customerProfileIdSpecified= true;

RefundCIM.customerPaymentProfileIdSpecified = true;

RaynorC1emen7
Expert

Thank you very much for your help. I hope Authorize.NET need to update their SOAP Guide docmuents.

 

Thanks a lot.