Setup
To sign up for an account visit the sign-up page and fill in the details.Credentials
When setting up Affirm in the dashboard, configure the following credentials. Contact your Affirm representative to obtain these values.- Public key - Your Affirm public key for client-side authentication.
- Private key - Your Affirm private key for server-side authentication.
- Merchant name - Your merchant name as registered with Affirm.
Features
Affirm supports the following features:- Delayed capture - Authorize a payment and capture it at a later time
- Partial capture - Capture a portion of the authorized amount
- Partial refunds - Refund a portion of the captured amount
- Refunds - Refund transactions in full
- Void - Cancel an authorized transaction before capture
- Transaction sync - Automatic synchronization of transaction status updates
Supported countries
Affirm supports transactions from buyers inUS.
Supported currencies
Affirm supports processing payments inUSD.
Limitations
The following features are not supported by this connector:- Payment method tokenization - Storing payment methods for future use is not supported
- Zero auth - Zero-dollar verification transactions are not supported
- Over capture - Capturing more than the authorized amount is not supported
- Partial authorization - Accepting a partial amount when the full amount cannot be authorized is not supported
- Network tokens - Network tokenization is not supported
- 3-D Secure - 3DS authentication is not applicable
Required fields
Affirm requires cart items to be included with every transaction. Up to 249 cart items can be provided. Based on the account setup, Affirm might also require buyer billing and shipping details. When not provided, the Affirm transaction might fail with aninvalid_request_parameters error code, more specifically with a raw missing_fields error from Affirm.
Integration
The default integration for Affirm uses a redirect to a hosted payments page. Start by creating a new transaction with the following required fields.payment_method.approval_url and the status is set to buyer_approval_pending. The approval URL expires after 30 minutes.
approval_url (open in a browser or Webview), where they can complete the payment. Once the buyer approves, the transaction progresses to an authorization_succeeded or capture_succeeded state.