Comments (5)
Addendum...
Further working through the examples revealed "settle" does work and is simply the means by which one "captures" a transaction for a saved credit card.
The example from:
http://authorize-sauce.readthedocs.org/en/latest/index.html
shows the proper usage of "settle".
Init the authorize client and a credit card
from authorize import AuthorizeClient, CreditCard
client = AuthorizeClient('285tUPuS', '58JKJ4T95uee75wd')
cc = CreditCard('4111111111111111', '2018', '01', '911', 'Joe', 'Blow')
card = client.card(cc)
Save the card on Authorize servers for later
saved_card = card.save()
saved_card.uid
'7713982|6743206'
Use a saved card to auth a transaction, and settle later
saved_card = client.saved_card('7713982|6743206')
transaction = saved_card.auth(200)
transaction.settle()
A minor update to the docs at
http://authorize-sauce.readthedocs.org/en/latest/intro.html"
would fully address this issue.
I considered removing this report, but I'll leave it up in hopes that it helps others adopt this excellent module.
from authorizesauce.
Gary -- Thanks for the kind words, it really means a lot!
As you've already discovered, Authorize.net uses some fairly confusing terminology for the different transaction types. (They seem to be mostly industry standard, at least -- doesn't make them intuitive, but at least they're consistent.) The important ones for our purposes are:
- auth: This merely authorizes the credit card for the given amount. That means it verifies the card exists and can be charged for that amount, then places the authorization (and the cardholder can see this). However, the card is not actually charged.
- settle: This references an existing auth transaction and actually charges the card. (Technically, it only submits it for settlement, which as you mentioned, is processed once every 24 hours by Authorize.net -- but you can think of it as fully completed.)
- capture: This is essentially just a shortcut for doing both auth and settle simultaneously. If you're ready and certain you want to charge the card, this is the way to go.
The separate auth and settle transactions are particularly useful when you're unsure of the final amount of the charge (or even whether you're going to charge), but you need upfront guarantee of payment. You can easily void an auth or settle an auth for a lower amount than the original authorization, without any extra hassle or fees. (If, on the other hand, you used capture and then needed to do a full or partial refund, you would be hit with fees for the transactions.)
It sounds like you already more or less figured that all out, but I wanted to make sure to clarify. And if you really want to dig into the details, the AIM docs pdf is a little lengthy but helpful.
I'd love your input on how the docs could be improved to make them more clear, particularly for people who are new to Authorize.net and/or payment APIs. I've been working with this stuff pretty intensely for a while now, so I expect I'm blind to a lot of the pitfalls for new users. What parts of the docs were confusing? Where did you get tripped up? What extra background info would be helpful? (Such as, perhaps, a list of transaction types and what they do?)
Thanks again for your feedback!
from authorizesauce.
Jeff,
This information has been very helpful!
I reviewed my code and input line 5 is where I made my mistake. I specified "capture" instead of "auth". This was the source of my problem. Your documentation at http://authorize-sauce.readthedocs.org/en/latest/intro.html is 100% correct.
The only input I would offer at this point is to re-post the clear definitions for auth, settle, and capture that you provided in your comment on your intro page under the "Introduction" paragraph (perhaps in a section called "Key terms" or something similar). Specifically:
Key terms for transaction types
Authorize.net uses some fairly confusing terminology for the different transaction types. They are mostly industry standard, but that doesn't make them intuitive -- at least they're consistent. The important ones for our purposes are:
- auth: This merely authorizes the credit card for the given amount. That means it verifies the card exists and can be charged for that amount, then places the authorization (and the cardholder can see this). However, the card is not actually charged.
- settle: This references an existing auth transaction and actually charges the card. (Technically, it only submits it for settlement, which as you mentioned, is processed once every 24 hours by Authorize.net -- but you can think of it as fully completed.)
- capture: This is essentially just a shortcut for doing both auth and settle simultaneously. If you're ready and certain you want to charge the card, this is the way to go.
The separate auth and settle transactions are particularly useful when you're unsure of the final amount of the charge (or even whether you're going to charge), but you need upfront guarantee of payment. You can easily void an auth or settle an auth for a lower amount than the original authorization, without any extra hassle or fees. (If, on the other hand, you used capture and then needed to do a full or partial refund, you would be hit with fees for the transactions.)
Thanks for your fast reply! The module you've created, the documentation you've written, and the support you've given are a model for what open source is all about.
Take care!
from authorizesauce.
Thanks, that seems like a suggestion worthy for inclusion. I've added a list of credit card transaction definitions to the introduction section of the docs, which should be visible here on Github and on ReadTheDocs. Cheers!
from authorizesauce.
Awesome!
That really makes things clear.
Thanks,
Gary
On Sep 7, 2012, at 3:39 PM, Jeff Schenck [email protected] wrote:
Thanks, that seems like a suggestion worthy for inclusion. I've added a
list of credit card transaction definitions to the introduction section of
the docs, which should be visible here on Github and on ReadTheDocs. Cheers!
—
Reply to this email directly or view it on
GitHubhttps://github.com//issues/2#issuecomment-8381165.
from authorizesauce.
Related Issues (20)
- Handle unicode characters in user details HOT 1
- Is the transaction status API supported ? HOT 1
- list index out of range in authorize->apis->transaction.py, line 26 (Parsing response) HOT 3
- from authorize import AuthorizeClient, CreditCard, Address ImportError: cannot import name AuthorizeClient HOT 2
- How to submit phone number and description when capturing card? HOT 3
- 'AuthorizeSavedCard' object has no attribute 'recurring' HOT 1
- Provide email address along with address data HOT 1
- Will these Authorize.NET changes affect this package? HOT 1
- Submitting Invoice Number with Transaction HOT 2
- Authorize.net Technical Updates
- Recurring payments on savedcard HOT 1
- User Authentication Failed HOT 1
- Re: Version of LT that also applies a modifier key #121 HOT 2
- <urlopen error [Errno -2] Name or service not known> HOT 2
- POST requests for transaction calls HOT 8
- Order Information
- AuthorizeConnectionError HOT 10
- Authorize.net error code 66 HOT 8
- Exception: (550, 'Unknown') HOT 10
- Authorize.Net error. E00027: A duplicate transaction has been submitted.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from authorizesauce.