NewNo plan feeNo plan fee. Just 2.9% + $0.30 per card sale, and signing up is free.Try now →

Authorize.Net · Decline codes

What does Authorize.Net E00039 “A duplicate record already exists” mean?

Checked

Authorize.Net E00039, "A duplicate record already exists", is returned when you try to create a customer profile or payment profile that matches one already stored. Authorize.Net checks for duplicates by its customer profile rules. Look up and reuse the existing profile rather than creating another; the error message typically includes the ID of the record that already exists.

Type
Error (customer profiles)
Who declined
Authorize.Net's duplicate profile check
Retry
Use the existing profile instead.
Shopper action
Nothing; the store handles saved cards.
Merchant action
Look up the existing profile and reuse it.

What PlatformDTC does

PlatformDTC creates the Authorize.Net customer profile from the subscriber's approved first charge and stores the returned profile IDs from Authorize.Net's server response, so renewals reuse that profile rather than creating new ones.

Why it happens

Customer profiles are checked for duplicates when created, for example on the same customer ID or email.

What the store can do

Search Customer Information Manager for the customer, then charge or update the existing profile.

For developers

messages.message[0].code "E00039". See Authorize.Net's Customer Profiles documentation on duplicate profile verification.

Frequently asked questions

How do I avoid Authorize.Net E00039?
Look up an existing profile before creating one, and reuse it.
Does E00039 stop the payment?
It stops the profile creation; the charge itself depends on how your request was built.

Sources

Related

Payments library