GithubHelp home page GithubHelp logo

Comments (5)

gmrichmond avatar gmrichmond commented on July 20, 2024

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.

jeffsmohan avatar jeffsmohan commented on July 20, 2024

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.

gmrichmond avatar gmrichmond commented on July 20, 2024

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.

jeffsmohan avatar jeffsmohan commented on July 20, 2024

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.

gmrichmond avatar gmrichmond commented on July 20, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.