Skip to content

Tokenized auto-pay: Authorize.Net #37

Description

@Panelica

Part of the tokenized auto-pay epic #34. help-wanted — independent contributor task.

Implement the Tokenizable capability for Authorize.Net so a customer's stored card is auto-charged when a renewal invoice is generated:

  • Save card: Customer Information Manager (CIM) payment profiles, and persist the reusable token in payment_methods.remote_token (+ brand/last4/expiry for display).
  • Off-session charge: charge the stored token for a renewal Invoice with no customer interaction, then let the core mark the invoice paid + activate the service.
  • Follow the capability contract and the Stripe reference implementation (Tokenized auto-pay: Stripe (SetupIntent + off_session) — reference implementation #35) exactly. Keep PNLCS invoicing as the single source of truth — do not wire Authorize.Net's native subscription product.
  • On decline / 3-D Secure required, return a failure the core can hand to dunning (notify the customer to pay manually).

Module: modules/Gateways/AuthorizeNet/AuthorizeNetModule.php. isTokenised() already returns true.
Docs: Authorize.Net CIM (createCustomerProfile / createCustomerPaymentProfile) + charge via profile.

⚠️ Blocked on #35 — the gateway capability contract lands there with the Stripe reference. Please wait for it (or coordinate on the epic #34) before starting, so you build against the final contract. Comment on #34 to claim this gateway.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:gatewayPayment gateways (Stripe, PayPal, Bank Transfer, Authorize.Net)enhancementNew feature or requesthelp-wantedExtra attention or community input welcome

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions