QwicPay Instant Checkout Ecosystem (1.1.0)

Download OpenAPI specification:Download

Who We Are:

Our mission is to pioneer Secure, elegant, and user-centric payment software. Our vision is clear: to lead the charge in redefining how payments are made and experienced. In every line of code we write; every feature we design; and every partnership we forge, we are driven by a single purpose – to create a Payment Ecosystem that inspires Trust and fosters Innovation. Our commitment to Excellence is interlinked in our crafting of interfaces and our development of Impenetrable security.

These documents are exclusively available to merchants and developers registered with QwicPay who are interested in a custom integration of our Instant Checkout Ecosystem (ICE). For new merchants: Please register at https://qwicpay.com/contact

Whilst we have taken extensive steps to ensure the safety and security of our API and endpoints, it is your responsibility to implement our platform correctly and securely. Please note that the use of the provided APIs is subject to our Terms of Service, Branding Guidelines, and your QwicPay Merchant Agreement.

Notes: - Anywhere you see an > next to a title you can click to expand it.

Custom Integration

Integrate QwicPay Instant Checkout Ecosystem directly into your custom built online store.

When making calls to these endpoints, please use your API key for authorization. Furthermore, please ensure that calls made by your backend are only made via HTTPS.

As per your merchant agreement you are required to adhere to our branding guidelines found at:

https://qwicpay.com/brandingguidelines

Please ensure your front-end follows these guidlines. Here are the links to the button SVGs that we have pre-developed and are pre-approved for integration to be included on your storefront:

Button Options:

Once the button is clicked, it should trigger a backend function to call our API. Subsequently, the user should be redirected to the returned URL.

Our POST request body sent to you upon a successful payment (See notify and response content) will have the following format:

  {
    "transactionid": "int64",
    "note": "string",
    "stage": "string",
    "orderNumber": "String",
    "user": {
      "firstName": "string",
      "lastName": "string",
      "email": "string"
    },
    "items": [
      {
        "name": "string",
        "id": "string (uuid)",
        "metadata": "object"
      }
    ],
    "shipping": {
      "methodTitle": "string",
      "methodPrice": "float",
      "address": {
        "name": "string",
        "cell": "string",
        "line1": "string",
        "line2": "string",
        "city": "string",
        "postal": "string",
        "province": "string",
        "country": "string"
      }
    },
    "payment": {
      "gateway": "string",
      "date": "date"
      "transactionStatus": "integer",
      "paymentRef": "string",
      "totalPaid": "float"
    },
    "promo": {
      "code": "string",
      "price": "number"
    },
    "metadata": "object",
  }

Field Descriptions:

  • transactionid:

    • Description: A unique QwicPay transaction reference.
  • note:

    • Description: Additional context or information related to the order.
  • stage:

    • Description: The stage of the transaction. Can only be "PROD" or "TEST".
  • orderNumber:

    • Description: Optional Order Number to be associated with order. This is separate to the QwicPay TransactionID
  • user:

    • Type: object

    • Description: Contains user-specific information.

    • Nested Fields:

      • firstName:
        • Description: The first name of the user.
      • lastName:
        • Description: The last name of the user.
      • email:
        • Description: The email address of the user.
  • items:

    • Type: array

    • Description: An array of items related to the transaction. Minimum length is 1.

    • Items:

      • Type: object

      • Description: Each item in the array.

      • Nested Fields:

        • name:
          • Description: The name of the item.
        • id:
          • Description: The unique identifier of the product variant.
  • shipping:

    • Type: object

    • Description: Shipping details for the transaction.

    • Nested Fields:

      • methodTitle:
        • Description: The title of the selected shipping method.
      • methodPrice:
        • Description: The price of the selected shipping method.
      • address:
        • Type: object

        • Description: The shipping address details.

        • Nested Fields:

          • name:
            • Description: Name of the recipient.
          • cell:
            • Description: Contact cell number.
          • line1:
            • Description: Address line 1.
          • line2:
            • Description: Address line 2 (optional).
          • city:
            • Description: City of the address.
          • postal:
            • Description: Postal code of the address.
          • country:
            • Description: Country of the address.
  • payment:

    • Type: object

    • Description: Payment details of the transaction.

    • Nested Fields:

      • transactionStatus:
        • Description: Status of the transaction. Possible values are:
          • 0: Not Done
          • 1: Approved
          • 2: Declined
          • 3: Cancelled
          • 4: User Cancelled
      • paymentRef:
        • Description: Reference number for the payment.
      • totalPaid:
        • Description: The total amount paid.
      • platform:
        • Description: Platform used for payment
  • promo:

    • Type: object

    • Description: Promotional details applied to the transaction.

    • Nested Fields:

      • code:
        • Description: The promotional code used for the discount.
      • price:
        • Description: The value of the promotion or discount applied.

Your backend should return the following body:

{
  "redirect": "url"
}

Field Descriptions:

  • redirect:
    • Description: A complete HTTPS URL for redirecting the user to track, view, or confirm their order.

You can POST to https://ice.qwicpay.co.za/test/addorder to see what your response should look like. This can also be used as a TEST for the response url in the Custom API call This post request will always return the correct format:

{
  "redirect": "https://ice.qwicpay.co.za/test/confirm"
}

Notes:

  • Whilst we have taken extensive steps to ensure the safety and security of our API and endpoints, it is your responsibility to implement our platform correctly and securely.
  • DO NOT expose the API key to front end scripting.

Create a new Checkout

This operation creates a QwicPay ICE checkout and returns the created URL, status and transaction ID. This request should only be made from the backend in a secure environment.

Authorizations:
MERCHANT_KEY
header Parameters
MERCHANT_ID
required
string

This is the Merchant ID provided to you, by QwicPay, after successful registration.

MERCHANT_KEY
required
apikey

This is the Merchant KEY provided to you, by QwicPay, after successful registration.

Request Body schema: application/json
required

JSON payload containing platform, currency, items, promo, shipping, return, and notify details.

platform
required
string
Value: "API"
stage
required
string
Enum: "PROD" "TEST"
OrderNumber
string <= 255 characters

Optional Order Number to be associated with order. This is separate to the QwicPay TransactionID

currency
required
string
Value: "ZAR"

Only ZAR is currently supported

required
Array of objects (Order Line Items) non-empty
object (promo)

A discount applied to the cart

required
Array of objects (Shipping Methods) non-empty
required
object (return)

The callback on completion of payment. This method will retry up to 3 times in the event of failure. The response body to this POST request made from QwicPay to the specified URL MUST include a JSON body containing a "redirect" key with a full URL value for redirecting the user to track/view/confirm their order. Example: "https://qwicpay.com/order?id=123" This method will retry up to 3 times if a response code of 200 is not recieved.

object (notify)

The notification received upon completion of payment. POST This method will retry up to 3 times in the event of failure.

object (metadata) <= 10 properties

A JSON object allowing any key-value pairs with a maximum of 10 properties and 256 characters per string value.

note
string

Customer note to be included in the order

Responses

Request samples

Content type
application/json
{
  • "platform": "API",
  • "stage": "TEST",
  • "OrderNumber": "QP123",
  • "currency": "ZAR",
  • "items": [],
  • "promo": {
    },
  • "shipping": [
    ],
  • "response": {},
  • "notify": {},
  • "metadata": {
    },
  • "note": "Please leave it at the front door."
}

Response samples

Content type
application/json
{}

Shopify

Integrate QwicPay Instant Checkout Ecosystem into your Shopify Store.

We have developed a Shopify app for merchants to integrate Qwicpay into their store directly.

Please use https://shopify.qwicpay.co.za/link to download and install the QwicPay App. The app enables you to add the QwicPay button to your store using the Theme Editor and also provides options for custom integration. To add the button, include 'QwicPay' as a block on your cart page. QwicPay can be found under:

Add Block > Apps > QwicPay

Once added, you can position it within the stack, as you would any other block. Moreover, you can configure the button by clicking on the QwicPay block and updating its settings on the right-hand side of your page. Please remember to switch the block to 'Live' before publishing the store. This can be found in the block settings in your Shopify Theme Editor.

Notes:

  • You MUST have the QwicPay App currently installed on your store in order to use a custom Shopify API call. The API call makes use of the App in order to create the checkout. None of the code shown below is required to use QwicPay on a shopify store. All base functionality is included in the base App. The Get method shown is only for the integration of QwicPay ICE on a non-standard Shopify cart or other Shopify based POS. You may also use the API call to add the button on another one of your Shopify sections.

Create a new Shopify Checkout

This operation creates a QwicPay ICE checkout and then redirects the user to the created URL. As this request is intended to be called from the front-end, no body is returned. The user should simply be redirected here.

Authorizations:
https
query Parameters
required
object (shopifyData)

A stringified JSON object of requested checkout data.

Responses