Shopify is one of the most popular ecommerce solutions in the world. uAfrica paved the way for South African sellers to integrate with Shopify and use PayFast for secure payments for South Africans.

Key Features

  • Local app integration
  • Themes or custom design
  • Hosting & domain management
  • CMS Product Management
  • Order Management
  • Level 1 PCI compliant


See PayFast setup steps

PayFast Setup

  1. Log into your Shopify Store
  2. Navigate to settings>payment
  3. Under ‘Accept Credit Cards’ select ‘PayFast’ and insert your PayFast merchant ID and Key
  4. To run PayFast in test/sandbox mode select ‘Use Test Mode’ and click save
  5. Once you are ready to go live un-check ‘Use Test Mode’ and click save. Ensure that the merchant ID and key fields are populated correctly after doing so, as they may have been pre-populated with an email address by the browser when un-checking ‘Use Test Mode’

Note: The base currency of your Shopify store must be ZAR

See PayFast integration steps for recurring billing

PayFast Setup

    1. Setup recurring billing on your PayFast account
      • Login into your PayFast account and click on ‘Settings’>’Integration’
      • Click on ‘Enable’ next to ‘Recurring Billing’, then check ‘Enable’ and click ‘Update’ (do not set a notify URL)
    2. On the ‘Settings’>’Integration’ page click on ‘Enable’ next to ‘Recurring Billing – Shopify’
    3. Check ‘Enable Shopif Recurring Billing’
    4. Enter your full shop URL in the ‘Shopify Store URL’ field

    1. You will be redirected to Shopify to allow the Payfast Recurring Application to interact with your store
    2. Enter your log in details to log into your store

    1. Grant Permission to the Subscription Application by clicking the ‘Install app’ button

    1. You will be directed back to Payfast and should be presented with notification that your changes where saved successfully. You should also see a Shopify Store Token that has been assigned to your account.

Shopify Product Setup – via Variations

    1. Create a new Shopify product

    1. Add a product variant and its period (you may name this field whatever you would like, you can also have a single option)

    1. Add a second option for the amount of times to repeat the period that has just been added

    1. Fill in the recurring amount per option. You can disable certain items if you do not want them

    1. You are then able to view the product on your website.

Shopify Product Setup – via Bar code/SKU fields

  1. Products can also be created without variants by defining the SKU or Barcode as follows:
    • Enter a barcode or SKU in the following manner
      • PF-MYREFERENCE-3-12-15000
    • This is defined as follows:
      • PF = Indicate this is a recurring item
      • MYREFERENCE = User defined reference
      • The period
        • 3 – Monthly
        • 4 – Quarterly
        • 5 – Bi-Annually
        • 6 – Annually
      • 12 = the amount of cycles required (input 0 for infinite cycles)
      • 15000 = The recurring amount (in cents) to be charged (optional, will default to item price if not set)
    • When configured as above any price set on the item will be the initial amount charged


  • When setting up a subscription there is a limit of 1 item per checkout (you can make use of OrderLogic if you would like to)
  • Once created the subscription is managed via your PayFast account, not Shopify


I receive a 500 error when redirected to Payfast

This would be caused by an incorrect merchant ID and/or Key set on the PayFast configuration page on your Shopify site. You will need to ensure that the merchant ID and Key set on your Shopify store are identical to the merchant ID and key on your PayFast account and that no spaces have been adjoined to these values when copying them across.

When un-checking ‘Use Test Mode’ after testing the module, ensure that the merchant ID and key fields are populated correctly after doing so, as they may have been pre-populated with an email address by the browser. This is because Shopify treats the merchant ID and key fields as username and password fields, which are then auto-populated by some browsers.