cancel
Showing results forย 
Search instead forย 
Did you mean:ย 

Authorize.net Error when adding new Customer with payment Profile E00116, OTS Token Access Violation

We're trying to add a new customer with a default payment profile or adding a new customer payment profile for an existing customer profile.

we don't pass CC details to our servers also we don't want to use any Authoirzed.net hosted form or Accept.js UI. That's why we Integrating this Accept.js into our own Payment Form [as per this Authoirzed.net documenation](https://developer.authorize.net/api/reference/features/acceptjs.html#Integrating_Accept.js_into_Your...)


we pass opaqueData from frontend Acept.js like this Inside the Payment Object which get in the response.

```
"payment": {
"opaqueData": {
"dataDescriptor": "COMMON.ACCEPT.INAPP.PAYMENT",
"dataValue": "1234567890ABCDEF1111AAAA2222BBBB3333CCCC4444DDDD5555EEEE6666FFFF7777888899990000"
}
```

As per our Workflow on Initial, we create the customer profile (with a single payment profile) or sometimes only Crate Customer and later on Add the Payment Profile in his Customer Profile So we use the Following methods for that.

[Customer Profile with Payment](https://developer.authorize.net/api/reference/index.html#customer-profiles-create-customer-profile)

[Adding Customer Payment Profile in or an existing customer profile](https://developer.authorize.net/api/reference/index.html#customer-profiles-create-customer-payment-p...)


The documentation of these API clearly mentions that these Apis support the opaque data in the payment object and even if we pass the InValid Token we get the Proper Error Response `E00114, Invalid OTS Token`. But if we pass the Valid Token we get the following response.


```
{"messages": {"resultCode": "Error","message": [{ "code": "E00116","text": "OTS Token access violation"}]}}
```


But we are able to do the Payment Transactions function like Authorized, Charge a Credit Card with the passing of opaque data in Payment Object without any issue.

[Create an Accept Payment Transaction](https://developer.authorize.net/api/reference/index.html#accept-suite-create-an-accept-payment-trans...)

[Authorize a Credit Card](https://developer.authorize.net/api/reference/index.html#payment-transactions-authorize-a-credit-car...)

If we Pass the `createProfile as true` while Calling the Authorize.net a Credit Card Using the nonce for a one-time payment. When transaction is successful, the gateway is returning us a new customer with payment profile that can be used for other transactions. But in this case, we can't manage to create a more Customer Payment profile against one Customer Profile.also if the user wants to change the customer payment profile we have to recreate the whole customer profile.

we search a lot on the authorized.net developer community but not able to find an answer for it. We found one Post pointing out the same issue

[OTS Token Access Violation](https://community.developer.authorize.net/t5/Integration-and-Testing/OTS-Token-Access-Violation/m-p/...)

in that, he mentions that The documentation seems to be saying that you can use a nonce to create a payment profile to an existing customer profile, but in actuality, it will give you an OTS Token Access Violation.so he decides to use Accept, js UI instead of Accept.js and let it take care of all these details for him.

Although we don't want to use any of the Authorized.net UI we give it a try `Accept.js UI` But got the Same Error `" code ": "E00116", "text": "OTS Token access violation"` with the Accept.js UI as well.

We are Realy stuck in the Flow.

We also have seen the explanation that this can be because the keys were generated for Production but used in the Sandbox, but I've reset the keys while in sandbox.authorize.net twice with no resolution.

we are stuck as this breaks our whole flow by not able to link the payment profile to the customer profile.we will really appreciate it if we get any directions to move ahead.

 

HafizABR
Member
0 REPLIES 0