Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.trymaven.com/llms.txt

Use this file to discover all available pages before exploring further.

Connecting Authorize.net

Maven connects to Authorize.net using your API Login ID and Transaction Key. These credentials allow Maven to create charges and customer profiles on your behalf.

Prerequisites

  • An Authorize.net merchant account
  • API Login ID and Transaction Key from your Authorize.net account
  • A Maven app

Getting Your Credentials

1

Log in to Authorize.net

2

Navigate to API Credentials

Go to Account > Settings > API Credentials & Keys.
3

Copy API Login ID

Your API Login ID is displayed at the top of the page. Copy it.
4

Generate Transaction Key

Under Create New Key(s), select New Transaction Key and click Submit. Copy the generated key — it won’t be shown again.

Connecting in Maven

1

Go to Payments

In the Maven Dashboard, navigate to your app and click the Payments tab.
2

Click Connect Authorize.net

Click the Authorize.net card and enter your credentials.
3

Enter Credentials

  • API Login ID: Your Authorize.net API Login ID
  • Transaction Key: Your Authorize.net Transaction Key
4

Save

Click Connect. Maven will validate the credentials and save them.

Sandbox Testing

For testing, use Authorize.net Sandbox credentials. Create a sandbox account at developer.authorize.net. Use sandbox credentials with mvn_test_ API keys to test without real charges. Sandbox responses include real transaction_id, auth_code, AVS, CVV, CAVV, and network transaction ID values, so the payload your code receives in test mode matches what you’ll see in production.

Capture Mode

Maven supports two capture modes for Authorize.net charges. The setting is per-app and can be changed any time from the Payments tab on the Authorize.net card.
ModeBehavior
Auto Capture (default)Maven sends authCaptureTransaction. Funds are authorized and captured immediately. This is the standard flow.
Authorize OnlyMaven sends authOnlyTransaction. Funds are placed on hold but not captured. You settle the charge later from your Authorize.net dashboard or via your own priorAuthCaptureTransaction API call, using the transaction_id Maven returns in the webhook.
When to use Authorize Only:
  • Hotels, car rentals, and other businesses that authorize on booking and capture on checkout
  • Service businesses where the final amount may change before fulfillment
  • Any flow where you want to verify the card and reserve funds without immediately moving money
Important notes:
  • Authorizations typically expire 30 days after creation if not captured. Holds beyond that are released.
  • Once captured, the captured amount is locked and cannot be increased.
  • You can capture for less than the original auth amount (partial capture).
  • Maven does not currently send a follow-up webhook when you capture in Authorize.net — you track captures on your side.
When Authorize Only is enabled, the session reaches the new terminal status payment-authorized instead of payment-success, and the webhook payload includes processor.auth_only: true.

Processor Response Fields

Charge Mode

FieldDescription
transaction_idAuthorize.net transaction ID. In Authorize Only mode, use this as the refTransId to capture later.
auth_codeAuthorization code from the issuing bank
response_codeAuthorize.net response code (1=Approved, 2=Declined, 3=Error, 4=Held for review)
avs_result_codeAVS (Address Verification System) match result
cvv_result_codeCVV match result
cavv_result_codeCAVV (3D Secure) result
network_trans_idCard network transaction ID (Visa/Mastercard) — used for card-on-file flows and certain refunds
auth_onlytrue when the charge was made in Authorize Only mode (auth without capture)
card_brandCard brand
card_last4Last 4 digits

Result Code Cheat Sheet

response_code — overall transaction outcome:
CodeMeaning
1Approved
2Declined
3Error
4Held for review (FDS filter)
avs_result_code — billing address verification:
CodeMeaning
YAddress and zip both matched (best)
AAddress matched, zip didn’t
ZZip matched, address didn’t
NNeither matched
UAVS unavailable
PNot applicable for this card type
cvv_result_code — CVV match:
CodeMeaning
MMatch
NNo match
PNot processed
SShould be on the card but wasn’t submitted
UIssuer doesn’t support CVV verification
cavv_result_code — 3D Secure / cardholder authentication:
CodeMeaning
(blank)CAVV not validated
0Not validated, possibly not supplied
1Failed validation
2Passed validation
3/4Could not be performed

Tokenize Mode (CIM)

FieldDescription
authnet_customer_profile_idCIM Customer Profile ID
authnet_payment_profile_idCIM Payment Profile ID
card_brandCard brand
card_last4Last 4 digits

Using Tokenized Cards

After tokenizing, use the CIM profile IDs to create transactions via the Authorize.net API:
# Create a charge using CIM profile
from authorizenet import apicontractsv1 as api

transaction = api.createTransactionRequest()
transaction.transactionRequest.transactionType = "authCaptureTransaction"
transaction.transactionRequest.amount = "49.99"
transaction.transactionRequest.profile = api.customerProfilePaymentType()
transaction.transactionRequest.profile.customerProfileId = "123456789"  # from authnet_customer_profile_id
transaction.transactionRequest.profile.paymentProfile = api.paymentProfile()
transaction.transactionRequest.profile.paymentProfile.paymentProfileId = "987654321"  # from authnet_payment_profile_id