Configuring Affirm

Learn how to integrate Affirm into your Shopify eCommerce platform.


This guide walks you through configuring Affirm at checkout in Shopify.


Affirm promotional messaging

Make sure you've set up Affirm promotional messaging before moving forward.

1. Install Affirm in Shopify

1. Sign in to your Shopify account and go to Settings > Payments.

2. In the Alternative Payments section, click the Choose alternative payment button.

3. On the Alternative payment providers page, select Affirm.

4. Check the Use test mode checkbox for testing in our sandbox.
5. Enter the public_api_key and private_api_key you retrieved from your Affirm merchant dashboard
6. Click Activate. Affirm is now a payment option in Shopify.

2. Review your order management functions

Processing orders (authorize, void, refund, and partial refund) in Shopify updates the order status in the Affirm dashboard. While you can process orders in the dashboard, we strongly recommend using Shopify to keep order status synced with Affirm. For more information on processing orders in Shopify, refer to their documentation.

3. Add the Confirmation Page function

When a customer completes their purchase, you can send their order and product information to Affirm for A/B testing, which will help you optimize your site. Send this information by adding the Confirmation Page function to your payment confirmation page. We only require orderId, total, productId, and quantity for A/B testing.

Click here for all the Confirmation Page function parameters.

To add the confirmation page function, go to Settings > Checkout > Order Processing > Additional scripts  and add the code below.  Replace public_api_key with your public API key found in the merchant dashboard.

_affirm_config = {
   public_api_key:  "YOUR_PUBLIC_KEY",
   script:          ""
(function(l,g,m,e,a,f,b){var d,c=l[m]||{},h=document.createElement(f),n=document.getElementsByTagName(f)[0],k=function(a,b,c){return function(){a[b]._.push([c,arguments])}};c[e]=k(c,e,"set");d=c[e];c[a]={};c[a]._=[];d._=[];c[a][b]=k(c,a,b);a=0;for(b="set add save post open empty reset on off trigger ready setProduct".split(" ");a<b.length;a++)d[b[a]]=k(c,e,b[a]);a=0;for(b=["get","token","url","items"];a<b.length;a++)d[b[a]]=function(){};h.async=!0;h.src=g[f];n.parentNode.insertBefore(h,n);delete g[f];d(g);l[m]=c})(window,_affirm_config,"affirm","checkout","ui","script","ready");
    "orderId": "{{ }}",
    "total": "{{ order.total_price }}"
}, [{
   {% for item in order.line_items %}
   "productId": "{{ item.sku }}",
   "quantity": "{{ item.quantity }}",
   {% endfor %}

Required function parameters

Order object

paymentMethod string
The payment method chosen by the customer (e.g., Visa). Maximum 150 characters.
orderId string
Your internal unique identifier representing the order. Maximum 500 characters.
total string
The total amount of the transaction, including tax and shipping, stated in USD cents (e.g., $100 = 10000).

Product object

productId string
Your internal unique identifier representing the product, such as the SKU or an internal database identifier. Maximum 500 characters.
quantity string
The quantity of the purchased product.

Updated 7 months ago

Related topics

Nice work! Now you can start testing your integration with your Technical Account Manager. You may also want to learn more about processing transactions in Shopify, and some additional features for Shopify Plus users.

Testing & deploying in Shopify
Processing transactions in Shopify
Hide Affirm for certain SKUs (Shopify Plus only)
Set a price floor for checkout (Shopify Plus only)

Configuring Affirm

Learn how to integrate Affirm into your Shopify eCommerce platform.

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.