Clients API
Overview
The Clients API allows you to create or replace a client in your Account Hierarchy. It's recommended to review the Account Types and Client Management guide to understand what clientTypes
you can create
This API is only available to some Azupay customers. Please contact us for more information.
Replacing a Client
We highly recommend only using this functionality for updating your client's information if they have not been approved and are not transacting.
If you use the Clients API again with the same clientTransactionID for a client that is enabled and transacting, it will have the following impact:
- Disable your client's account, meaning they will not be able to transact until Azupay has approved the changes.
- New API Keys are generated. The previously issued API Keys are discarded without an option to recover them.
In the future, we plan to introduce better ways to update client information. In the meantime, if information needs to be updated, please submit a help desk request here. If you have any questions, please reach out to us!
Creating a Client
To create a Client, issue the following API call:
POST https://api.azupay.com.au/v1/client/{clientId}/apiKey
Authorization: SECR_MYBUSINESSID_nR2duCGXlqWSuYJF
Content-Type: application/json
{
"client": {
"clientTransactionId": "30597959-a853-44d4-bdab-54332bf7a98e",
"legalName": "Example Pty Ltd",
"tradingName": "Example",
"defaultPaymentExpiryDuration": 3600,
"payIDDomains": [
{
"domain": "example.com",
"merchantName": "Example Name"
},
{
"domain": "example2.com",
"merchantName": "Example Name2"
}
],
"abn": "12345678901",
"settlementAccountBSB": "123456",
"settlementAccountNumber": "123555555",
"settlementPayID": "[email protected]",
"settlementAccountFullLegalName": "Example Pty Ltd",
"sweepNotification": {
"url": "string",
"authorizationHeader": "string"
},
"clientManagementNotification": {
"url": "string",
"authorizationHeader": "string"
},
"dashboardUserEmail": "[email protected]",
"dashboardUserRole": "ADMIN",
"transactionPayoutLimit": "500.00",
"dailyTransactionPayoutLimit": "10000.00",
"kyc": {
"businessRegistrationDate": "2020-12-28",
"businessContactName": "Example",
"businessEmailAddress": "[email protected]",
"businessPhoneNumber": "95879852",
"businessRegisteredAddress": "1 Example Street, Example, 3095",
"completion": true,
"websiteURL": "www.example.com.au",
"instagramURL": "www.instagram.com/example",
"facebookURL": "www.facebook.com/example",
"linkedInProfileURL": "www.linkedin.com/exampl",
"acn": "123456789",
"companyIncorporationDate": "2021-12-28",
"afslNumber": "132456",
"merchantCategoryCode": 7623
}
}
}
Now let's break down what you have submitted!
Client Information
This is mandatory information we require to identify the client and their business information
clientTransactionId
: This is your unique identifier for the client. We recommend using a Universally Unique Identifier (UUID). If you send another request with the sameclientTransactionId
, it will replace the client and trigger a onboarding review by AzupaylegalName:
: This is legally registered name for the client's businesstradingName
: This is the name by which customers know the businessabn
: The Australian Business Number for the client
KYC Object
This is the Know Your Customer (KYC) information we require for our onboarding processes.
Currently, this is not a mandatory
In the future, we will make this a mandatory requirement. It is recommended that you start collecting this information and providing it via the API request to speed up the onboarding review process. If this information is missing, we will reach out to collect it. The client will not be approved and unable to transact until the mandatory fields in the KYC Object are provided. For more information, please contact us.
businessRegistrationDate
: The date the business was registered, as per the Australian Business RegisterbusinessContactName
: The name of the main contact for the clientbusinessEmailAddress
: The email address of the main conact for the clientbusinessPhoneNumber
: The business number for the clientbusinessRegisteredAddress
: The registered address for the business, as per the Australian Business Registercompletion
: This acts as a self-check to confirm that you’ve completed your own due diligence and Know Your Customer (KYC) checks on your clientwebsiteURL
: This is for the client's website
Currently this is not a mandatory field
In the future, we will make this a mandatory requirement. It is recommended that you start collecting this information and providing it via the API request to speed up the onboarding review process. The client will not be approved and unable to transact until the website URL is provided.
instagramURL
: This is for the client's instagramfacebookURL
: This is for the client's facebooklinkedInProfileURL
: This is for the client's linkedinacn
: This is an opitional field. However, if the client is a registered company through ASIC, it is required to be sent in the requestcompanyIncorporationDate
: This is an optional field. However, If the ACN is provided, the date that the company was incorporated is a required fieldafslNumber
: This is an optional field. However, If the client has an AFSL (Australian Financial Services License) Number is provided, the date that the company was incorporated is a required field.merchantCategoryCode
: This four-digit number is assigned to clients to classify the types of goods or services their business provides. While providing the Merchant Category Code (MCC) is optional, it is** highly recommended** to provide in the request, as it can expedite the client's approval process. Pease refer to this document for a full list of MCCs
PayID configuarations
In the Clients API Request, you can configure some of the PayID configurations.
defaultPaymentExpiryDuration
: You can apply a default time based limit on your PaymentRequests by specifying a point in time in the future. In this example, it is set to 3600 minutes. This will be the default for Payment Requests, if you provide thepaymentExpiryDatetime
in the Payment Request API, it will override thedefaultPaymentExpiryDuration
set in the Clients API.payIDDomains
: You can assign a custom Organisation or Merchant name specific domains that would reflect in the payment descriptiondomain
: The domain portion of the PayID, appears after the payID prefix and it must be a domain that you own. We will verify ownership of this domain during onboarding.merchantName
: This name will appear at the start of the payment description in your customer's banking app. If you have a domain configured without merchantName the payID description for that domain will default to thelegalName
used in this request
Settlement Details
In the Clients API Request, you can provide all of the settlement information. These are the details of your client's bank account in which they will receive the funds processed from payment requests.
settlementAccountBSB
: The BSB of the client's bank account where funds will be settled intosettlementAccountNumber
: The Account Number of the client's bank account where funds will be settled intosettlementPayID
: The client's PayID linked to their bank account. Some business banking accounts may offer a PayID. This is the preferred settlement method, as the funds will be available in your client's bank account in real time.settlementAccountFullLegalName
: The full legal account name that is attached to the client's bank account.sweepNotification
: Azupay can send you a notification webhook to let you know a settlement has occurred. Populate the below fields to enable thisurl
: This is the https endpoint that is accessible over the internetauthorizationHeader
: The value you want populated in the Authorization request header when Azupay calls the endpoint specified in the URL field.
Dashboard Setup
One user can be invited to the dashboard. We recommend inviting a user who will be an Admin, the Admin will be responsible for adding other users. This guide may be helpful in understanding who can invite another users
dashboardUserEmail
: If provided, this email will receive a message with a temporary
password to sign-in to the dashboard. If the user is already exists and has not accepted changed the password, it will resend the invite. If the user has an account and is attached to a different clientID, the request will fail.dashboardUserRole
: This sets the role for the user provided indashboardUserEmail
. You can choose betweenAdmin
andFinance Admin
(what about tech Admin?). If the role is not supplied, it will be defaulted toAdmin
.
Payout Limits
Certain partner types can set limits on Outbound Payments. Please contact us if you want more information on this feature.
transactionPayoutLimit
: This specifies the maximum amount (in AUD) for a single outbound payment that the client is allowed to process. In this example, the Client'stransactionPayoutLimit
is set to $500. Therefore, the client will not be able to process an Outbound Payment greater than $500.dailyTransactionPayoutLimit
: This specifies the maximum amount (in AUD) of outbound payments a client can process in a single day (12:00am to 11:59pm AEST). In this example, the Client'stransactionPayoutLimit
is set to $10,000. Therefore, if the Client has processed $9600 in Outbound payments and attempt to process another Outbound Payment of $401, the Outbound Payment will fail.
Other Information
clientManagementNotification
: Azupay can send a notification webhook when the client is enabled. Populate the below fields to enable thisurl
: This is the https endpoint that is accessible over the internetauthorizationHeader
: The value you want populated in the Authorization request header when Azupay calls the endpoint specified in the URL field.
You will get a response like the following:
{
"client": {
"clientTransactionId": "30597959-a853-44d4-bdab-54332bf7a98e",
"legalName": "Example Pty Ltd",
"tradingName": "Example",
"defaultPaymentExpiryDuration": 3600,
"payIDDomains": [
{
"domain": "example.com",
"merchantName": "Example Name"
},
{
"domain": "example2.com",
"merchantName": "Example Name2"
}
],
"abn": "12345678901",
"settlementAccountBSB": "123456",
"settlementAccountNumber": "123555555",
"settlementPayID": "[email protected]",
"settlementAccountFullLegalName": "Example Pty Ltd",
"sweepNotification": {
"url": "string",
"authorizationHeader": "string"
},
"clientManagementNotification": {
"url": "string",
"authorizationHeader": "string"
},
"dashboardUserEmail": "[email protected]",
"dashboardUserRole": "ADMIN",
"transactionPayoutLimit": "500.00",
"dailyTransactionPayoutLimit": "10000.00",
"kyc": {
"businessRegistrationDate": "2020-12-28",
"businessContactName": "Example",
"businessEmailAddress": "[email protected]",
"businessPhoneNumber": "95879852",
"businessRegisteredAddress": "1 Example Street, Example, 3095",
"completion": true,
"websiteURL": "www.example.com.au",
"instagramURL": "www.instagram.com/example",
"facebookURL": "www.facebook.com/example",
"linkedInProfileURL": "www.linkedin.com/exampl",
"acn": "123456789",
"companyIncorporationDate": "2021-12-28",
"afslNumber": "132456",
"merchantCategoryCode": 7623
}
"keys": [
\{
"keyId": "SECR",
"bcryptKeyHash": "$2a$10$hi0NLji0sqAobZd0Lp7JKOBF0nc9U045jqf1co1fJSXb2C1KAVkkO",
"key": "SECR_731c04075258428730c3152a7904dda4_rY6JxWLPQCSRGhPA"
}
]
}
The response contains a few additional useful fields:
id
: this is the new id for the sub-client, to be used as clientId in the /paymentRequest endpoint for this client.keys[keyID=SECR].key
: this is the newly generated API key to use for this sub-client to create transactions.
Note, Azupay does not store this value and cannot be fetched again. If you call this endpoint again with the sameclientTransactionId
, a new set of keys will be generated and returned.
Once you receive an email confirming the client has been approved, your client is all set and can create or receive payments.
Updated 1 day ago