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.
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:
Blue Background with White Text (Squared)
Blue Background with White Text
White Background with Blue Text (Squared)
White Background with Blue Text
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
:
note
:
stage
:
"PROD"
or "TEST"
.orderNumber
:
user
:
Type: object
Description: Contains user-specific information.
Nested Fields:
firstName
:lastName
:email
: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
:id
:shipping
:
Type: object
Description: Shipping details for the transaction.
Nested Fields:
methodTitle
:methodPrice
:address
:Type: object
Description: The shipping address details.
Nested Fields:
name
:cell
:line1
:line2
:city
:postal
:country
:payment
:
Type: object
Description: Payment details of the transaction.
Nested Fields:
transactionStatus
:0
: Not Done1
: Approved2
: Declined3
: Cancelled4
: User CancelledpaymentRef
:totalPaid
:platform
:promo
:
Type: object
Description: Promotional details applied to the transaction.
Nested Fields:
code
:price
: Your backend should return the following body:
{
"redirect": "url"
}
Field Descriptions:
redirect
: 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:
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.
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. |
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 |
object (notify) The notification received upon completion of payment. | |
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 |
{- "platform": "API",
- "stage": "TEST",
- "OrderNumber": "QP123",
- "currency": "ZAR",
- "items": [
- {
- "title": "Product 1",
- "id": "21445",
- "price": 100,
- "metadata": {
- "engraving": "Simple. Secure",
- "color": "QwicPay Blue"
}
}, - {
- "title": "Product 2",
- "description": "This is a product",
- "id": "1234",
- "price": 200,
}
], - "promo": {
- "code": "TEST",
- "price": 100
}, - "shipping": [
- {
- "title": "Free Shipping",
- "description": "Always free",
- "price": 0,
- "restrictedToCountries": [
- "US",
- "ZA"
]
}
], - "response": {
- "headers": {
- "Authorization": "Bearer token_xyz",
- "Content-Type": "application/json",
- "Custom-Header": "CustomValue"
}
}, - "metadata": {
- "property1": "string",
- "property2": "string"
}, - "note": "Please leave it at the front door."
}
{- "status": "CREATED",
- "transactionid": 400
}
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:
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.
required | object (shopifyData) A stringified JSON object of requested checkout data. |