FlipPay API (v1.0)

Download OpenAPI specification:Download

Introduction

This section provides technical information on the FlipPay API and includes details of available endpoints.

For an overview of the API, including information on how to get started, details on the core concepts, and supporting information, please visit https://flippay.com.au/api.

Payment Requests

All API endpoints relating to Payment Requests

customPR

Create a payment request using objects available on a nominated Merchant account.

Refer to the integration guide to confirm specific field format requirements (e.g. dates, currency, etc).

Authorizations:
JWT
path Parameters
merchantId
required
string

The merchant Id of the merchant account the payment request should be created on - eg: M-1234-5678

Request Body schema: application/json
One of
requestAmount
required
number

Amount to be paid by Customer to Merchant (exclude fees, this is calculated by the platform)

merchantReference
required
string

A reference for the transaction, will appear on remittance advice sent to the Merchant

sendComms
required
boolean

Direct FlipPay to send payment request to customer using provided email/mobile

smsMask
string

Mask the 'sender' on an SMS (maximum of 10 characters, alphanumerical only, no special characters) - if not provided, platform defaults will apply.

emailMask
string

Mask the 'sender' on an Email - if not provided, platform defaults will apply.

required
object

Customer details used to send/display payment requests - if 'sendComms' is TRUE, this element must be populated (note that only one of email or mobile is required).

object

Contact details displayed to Customers on the payment request - if not provided, platform defaults will apply.

required
object
Array of Text (object) or Number (object) or Currency (object) or Date (object) or Options list (object) or File upload (object)

Create custom fields on the payment request, unique to this payment request. Note that all fields (other than file upload) are of JSON string type, but formatted into the noted types below.

required
object

Configurable settings on the payment page displayed to Customers.

object

Responses

Request samples

Content type
application/json
Example
{
  • "requestAmount": 1000,
  • "merchantReference": "merchant-reference",
  • "sendComms": true,
  • "smsMask": "Merch123",
  • "emailMask": "Merchant name",
  • "customerDetails": {
    },
  • "contactDetails": {
    },
  • "paymentOptions": {
    },
  • "customFields": [
    ],
  • "paymentPage": {
    },
  • "notifications": {
    }
}

Response samples

Content type
application/json
Example
{
  • "message": "Payment request created.",
  • "paymentRequestId": "PR-1234-5678",
  • "prStatus": "pending",
  • "expiry": "22-12-212021-12-12-15+05:45",
  • "payLaterProductEnabled": {
    },
  • "warnings": {
    }
}

resendPR

All payment requests expire after 90 days.

If a customer follows a URL to an expired payment request, they will receive an error page directing them to speak to their merchant. Merchants can "resend" an expired payment request using this service, which re-activates the payment request as it was initially configured, and using the same URL.

Authorizations:
JWT
path Parameters
merchantId
required
string

The merchant Id from the merchant account the PR was created on - eg: M-1234-5678

paymentRequestId
required
string

The Payment Request Id that is expired and is to be resent - eg: PR-1234-5678

Request Body schema: application/json
sendComms
boolean

FlipPay to resend Payment Request notification to Customer via Email and/or Mobile provided

Responses

Request samples

Content type
application/json
{
  • "sendComms": true
}

Response samples

Content type
application/json
{
  • "message": "Payment request resent"
}

cancelPR

All payment requests are created and exist in a "pending" status until they expire, are cancelled, or are accepted/activated.

Merchants can cancel payment requests while they are in the "pending" status.

Cancelled payment requests cannot be resent using 'resendPR'. If a Customer follows a URL to a cancelled payment request, they will receive an error page directing them to speak to their Merchant.

Authorizations:
JWT
path Parameters
merchantId
required
string

The merchant Id of the merchant account the payment request was created on - eg: M-1234-5678

paymentRequestId
required
string

The Payment Request Id that is to be cancelled - eg: PR-1234-5678

Responses

Response samples

Content type
application/json
{
  • "message": "Payment request cancelled"
}

getPR

Retrieve all the available details contained within a payment request.

Authorizations:
JWT
path Parameters
merchantId
required
string

The merchant Id of the merchant account the payment request was created on - eg: M-1234-5678

paymentRequestId
required
string

The payment request Id - eg: PR-1234-5678

Responses

Response samples

Content type
application/json
Example
{
  • "message": "Payment request fetched successfully.",
  • "data": {
    }
}

updateProductFields

Some products allow updates to "product fields" while a payment plan is active. Refer to product integration guide within your Introducer/Merchant account for specific product requirements.

Authorizations:
JWT
path Parameters
merchantId
required
string

The merchant Id of the merchant account the payment request was created on - eg: M-1234-5678

paymentRequestId
required
string

The payment request Id - eg: PR-1234-5678

Request Body schema: application/json
One of
productId
required
string

The Id of the product being targetted

fieldId
required
string

The Id of the text field being targetted for an update

value
required
string

The new value of the field being updated

Responses

Request samples

Content type
application/json
Example
{
  • "productId": "PL-1234-5678",
  • "fieldId": "PF-1234-5678",
  • "value": "Abcdefgh"
}

Response samples

Content type
application/json
{
  • "message": "Product field updated"
}

Attached Files

All API endpoints relating to Attached Files

uploadFile

Files can be uploaded and attached to PR in three scenarios:

  1. A maximum of three PDF files can be simply attached to the payment request without context.
  2. Within a Merchant's custom field - a single PDF file can be uploaded into a "file-upload" type custom field (e.g. to pre-populate a specific field, rather than attaching without context).
  3. Within a product field - a single PDF file can be uploaded into a "file-upload" type product field. Use this service to update a product field of "file-upload" type, if the product field allows for updates while the payment request is active.
Note:
  • Only PDF file types accepted, with a maximum file size of 5MB.
  • Either productFieldId or customFieldId can be populated in a single request, but not both.
  • If no productFieldId or customFieldId is provided, the file will be attached to the PR without context.

Authorizations:
JWT
path Parameters
merchantId
required
string

The merchant Id of the merchant account the payment request was created on - eg: M-1234-5678

paymentRequestId
required
string

The payment request Id - eg: PR-1234-5678

Request Body schema: multipart/json+form-data
customFieldId
string

The custom field Id to contain the file - eg: CF-1234-5678

productFieldId
string

The product field to contain the file - eg: PF-1234-5678

file
required
string <binary>

The file to upload into the header of the request

Responses

Request samples

Content type
multipart/json+form-data
{
  • "customFieldId": "string",
  • "productFieldId": "string",
  • "file": "example.pdf"
}

Response samples

Content type
application/json
{}

getPRFiles

Retrieve the details of any files attached to a payment request.

Authorizations:
JWT
path Parameters
merchantId
required
string

The merchant Id of the merchant account the payment request was created on - eg: M-1234-5678

paymentRequestId
required
string

The payment request Id - eg: PR-1234-5678

Responses

Response samples

Content type
application/json
{}

deleteFile

Files can be deleted from a payment request only while the payment request is in "pending" status.

Authorizations:
JWT
path Parameters
merchantId
required
string

The merchant Id of the merchant account the payment request was created on - eg: M-1234-5678

paymentRequestId
required
string

The payment request Id - eg: PR-1234-5678

Request Body schema: application/json
fileId
string

The fileId of the file which is to be deleted from the payment request

Responses

Request samples

Content type
application/json
{
  • "fileId": "F-1234-5678"
}

Response samples

Content type
application/json
{
  • "message": "File deleted."
}

Logos

All API endpoints relating to Logos

getLogos

Retrieve the listings of images in the logo library of a merchant.

Authorizations:
JWT
path Parameters
merchantId
required
string

The merchantId of the merchant account containing the logo library - eg: M-1234-5678

Responses

Response samples

Content type
application/json
{}

Pay Later Quotes

All API endpoints relating to Pay Later Quotes

quoteByProduct

Generate a quote for a given amount and product (as available on the Merchant account).

Authorizations:
JWT
path Parameters
merchantId
required
string

The merchant ID of the merchant account the payment request would be created from - eg: M-1234-5678

productId
required
string

The pay-later product Id - eg: PL-1234-5678

Request Body schema: application/json
requestAmount
number

Amount to be paid by Customer to Merchant (exclude fees, this is calculated by the platform)

Responses

Request samples

Content type
application/json
{
  • "requestAmount": 1000
}

Response samples

Content type
application/json
{
  • "message": "Quote generated successfully",
  • "details": {
    }
}

Merchant Accounts

All API endpoints relating to Merchant Accounts

getAccounts

Retrieve a list of bank accounts configured on a merchant's account.

Authorizations:
JWT
path Parameters
merchantId
required
string

The merchant Id from the merchant account the bank accounts is contain in - eg: M-1234-5678

Responses

Response samples

Content type
application/json
{
  • "message": "Account list retrieved successfully",
  • "accounts": [
    ]
}

getProducts

Retrieve a list of products enabled on a Merchant account.

Authorizations:
JWT
path Parameters
merchantId
required
string

The merchant Id of the merchant account that the products are sitting on - eg: M-1234-5678

Responses

Response samples

Content type
application/json
{
  • "message": "Product list retrieved successfully",
  • "payNow": "true",
  • "products": {
    }
}

Introducers

All API endpoints relating to Introducers. Note that these endpoints are for Introducer account use ONLY

linkRequest

Send a request to link a Merchant account to an Introducer account (Merchant to respond via logged in user on the FlipPay web portal)

Note:
Notifications sent to the notificationUrl provided will have the following structure:

{
  "merchantId": "M-1234-5678",
  "linkedStatus": "linked|unlinked"
}
Authorizations:
JWT
path Parameters
merchantId
required
string

The merchant Id for the target merchant account - eg: M-1234-5678

Request Body schema: application/json
notificationUrl
string

Valid URL to send notifications to

notificationToken
string

Token to secure notificationUrl

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "message": "Link request sent successfully."
}

onboardingRequest

Create a unique/secure onboarding form for a new merchant to apply for a FlipPay merchant account

Note:
Notifications sent to the notificationUrl provided will have the following structure:

Approved

{
  "onboardingId": "OB-1234-5678",
  "merchantId": "M-1234-5678",
  "applicationStatus": "approved"
}

Cancelled

{
  "onboardingId": "OB-1234-5678",
  "applicationStatus": "cancelled"
}
Authorizations:
JWT
Request Body schema: application/json
contactName
required
string

Name of the person completing the application

contactEmail
required
string

Valid email address for the person completing the application

sendComms
required
string

Set to 'false' to prevent FlipPay from emailing the application link to the contactEmail (you will need to capture this in the response and provide to your user) - recommended to be set as 'true'

notificationUrl
string

Valid endpoint url to send webhook notifications to

notificationToken
string

The token to secure notificationUrl

Responses

Request samples

Content type
application/json
{
  • "contactName": "Firstname Lastname",
  • "contactEmail": "merchant@example.com",
  • "sendComms": "true",
  • "notificationToken": "eyJpZCI6IjYwZWU3MzY0ODYwNGY3MmQzOTBmMGNkZCIsIm5hbWUiOi"
}

Response samples

Content type
application/json
{}