Sir, I integrated the CIM feature into my website. Please go through the workflow.
1. Create CIM profile, Payment Profile, Shipping profile on user registration.
2. Authorize credit card. Using authOnlyTransaction.
3. Capture authorize transaction using priorAuthCaptureTransaction
After 1 month, I couldn't capture the transaction. The priorAuthCaptureTransaction api returns "Transaction was unsuccessful error". And when I log into my sandbox account, the transaction status shows expired.
Why did the transaction expire?
Because I wanted to capture the amount after 30 days. That's why I used CIM.
Can I capture the amount after 30 days??
NB: I'm using a sandbox account.
Authorize and Capture codes.
JSON code https://docs.google.com/document/d/1__lrLRKM6QaJpEGpqFz79JuDC8RDMC6UHZK942EpcF8/edit?usp=sharing
Solved! Go to Solution.
06-08-2020 12:23 AM - edited 06-08-2020 12:24 AM
You can use Customer Profiles with createTransactionRequest calls by using the profile field and its children as payment information.
{ "createTransactionRequest": { "merchantAuthentication": { "name": "LOGIN_ID", "transactionKey": "TRANSACTION_KEY" }, "refId": "123456", "transactionRequest": { "transactionType": "authCaptureTransaction", "amount": "43", "profile": { "customerProfileId": "27388924", "paymentProfile": { "paymentProfileId": "25000332" } }, "lineItems": { "lineItem": { "itemId": "1", "name": "Item1", "description": "Item1 Description", "quantity": "1", "unitPrice": "43.00" } } } } }
VOID requests are used to void an existing transaction with a status of Authorized/Pending Capture or Captured/Pending Settlement.
VOID requests effectively cancel the Capture request that would start the funds transfer process, so no money changes hands on a transaction that has been voided. VOID request can be submitted via the API by including the following fields with your void request:
transactionType(voidTransaction)
refTransId(The transaction ID we assigned to the original transaction you are voiding)
{ "createTransactionRequest": { "merchantAuthentication": { "name": "LOGIN_ID", "transactionKey": "TRANSACTION_KEY" }, "refId": "123456", "transactionRequest": { "transactionType": "voidTransaction", "refTransId": "1234567890" } } }
06-09-2020 03:57 AM - edited 06-09-2020 04:03 AM
Hello,
An Authorization only transaction does expire after 30 day. Transactions that are not captured within 30 days of authorization are expired and are no longer available for settlement. Merchants with an expired transaction should authorize and capture a new transaction to receive funds.
06-08-2020 12:59 PM
06-08-2020 07:27 PM
Hello,
With CIM you are able to store a customer's payment profile information. If you need to authorize it 30 days or more in advance you could let that authorization get cleared. Then when ready you can authorize and capture the payment from the customer's payment profile.
06-08-2020 07:35 PM
Thank you very much for your help. One last thing. Is there any api to clear the expired transaction?
So that i can reauthorize and capture the payment after expiration.
Is "createTransactionRequest" the correct menthod to reauthorize and capture after 30 days?
https://developer.authorize.net/api/reference/index.html#customer-profiles
How should i clear the void transaction using apis?
06-08-2020 09:53 PM
Is there a way to clear expired transaction list using api?
06-09-2020 02:21 AM
You can use Customer Profiles with createTransactionRequest calls by using the profile field and its children as payment information.
{ "createTransactionRequest": { "merchantAuthentication": { "name": "LOGIN_ID", "transactionKey": "TRANSACTION_KEY" }, "refId": "123456", "transactionRequest": { "transactionType": "authCaptureTransaction", "amount": "43", "profile": { "customerProfileId": "27388924", "paymentProfile": { "paymentProfileId": "25000332" } }, "lineItems": { "lineItem": { "itemId": "1", "name": "Item1", "description": "Item1 Description", "quantity": "1", "unitPrice": "43.00" } } } } }
VOID requests are used to void an existing transaction with a status of Authorized/Pending Capture or Captured/Pending Settlement.
VOID requests effectively cancel the Capture request that would start the funds transfer process, so no money changes hands on a transaction that has been voided. VOID request can be submitted via the API by including the following fields with your void request:
transactionType(voidTransaction)
refTransId(The transaction ID we assigned to the original transaction you are voiding)
{ "createTransactionRequest": { "merchantAuthentication": { "name": "LOGIN_ID", "transactionKey": "TRANSACTION_KEY" }, "refId": "123456", "transactionRequest": { "transactionType": "voidTransaction", "refTransId": "1234567890" } } }
06-09-2020 03:57 AM - edited 06-09-2020 04:03 AM
Thank you.
I can use the authcapturetransaction to reauthorize and I can also void the transaction with refTransID.
The expired transaction will list in my account. Is there a way to delete those unsettled expired transactions with API?
Do i need to manually delete those records by log into authorize account?
Does auth.NET provides any apis to delete/remove those expired transaction so that our client wont get confused with the expired transaction.
06-09-2020 04:07 AM
Transactions, including voided ones stay in the system. There are a number of filters within the admin interface to limit the type of transactions to display.
The Transaction Detail Reports lists only settled or declined transactions for the settlement date you select, which should omit any voided or unsettled transactions.
06-09-2020 04:55 AM
Authorize.Net automatically sends a full reversal whenever a transaction is voided, you can tell if a reversal has been sent by looking to see if the Authorization Code is visible in the transaction Details in the online interface. Once Authorize.Net has sent a reversal, the Authorization Code is removed from view because it is no longer valid.
06-10-2020 02:07 AM