Skip to main content

Business onboarding

With the SasaPay Wallet as a Service (WaaS) you can now onboard entities as beneficiaries allowing them to have a seamless, safe, and secure way of making payments and completing transactions. When onboarding entities, you need to make two post requests, whereby the first one allows sending of a Confirmation Code to the entity's mobile number in order to verify that the registering entity is the holder of the mobile number. The second post request for finalizing the registration of the entity includes additional parameters, the ConfirmationCode and requestId parameters.

Initial POST request

Alt test Endpoint: https://sandbox.sasapay.app/api/v2/waas/business-onboarding/

Request Parameters

FieldTypeDescriptionExample
merchantCodeStringA unique number assigned to an organization/merchant registered with ViewTech, through which payment is received (can be Paybill or Till number)4****6
businessNameStringThe name of the entity/business being onboardedNaivasDemo
billNumberNumericThe billNumber for the business being onboarded115***3
descriptionstringThe description of the business being onboardedNaivasDemo
productTypeNumericThe type of product of an business3
countryIdNumericThe country of the business being onboarded4
subregionIdNumericThe subregionId of the business being onboarded2
industryIdNumericThe industry id of the business being onboarded1
subIndustryIdNumericThe sub industry of the business being onboarded2
bankCodeNumericThe bank id of the business being onboarded2
bankAccountNumberNumericThe bank account number of the business being onboarded1*********8"
mobileNumberNumericThe mobileNumber of the business being onboarded07*******1
businessTypeIdStringThe businesstype id of the business being onboarded1
EmailStringThis is the email of the businessbusiness@example.com
registrationNumberStringThis is the business registration number of the business.123456789
KraPinStringThe KRA Pin Number of the business.KRA13444PIN
referralCodeStringThe alias number of the person onboarding the business. This field can be optional123456
dealerNumberStringThe dealer number if available. The onboarded business will be attached to the dealer whose dealer number is provided.123456
purposeStringThe purpose of creating a business wallet.Collection,Disbursement,Remittance
natureOfBusinessStringThe nature of the business.Retail Shop
physicalAddressStringThe physical location of the business.Nairobi,CBD
estimatedMonthlyTransactionAmountStringThe estimated amount you deem to transact per month.500000
estimatedMonthlyTransactionCountStringThe estimated number of transactions you deem to transact per month.2000
CallbackUrlURL stringThis is the link where sasapay will send the data about business status during onboarding process.This data can be used by the mechant to update entity status on merchant system.https://example.com/4*****d/callback/
directorsstringThe director of an entity/business name,id number mobile number and kra pin . director document type, director country code.name,id number mobile number,kra pin director document type and director country code
Request sample
Headers
Key: Authorization
Value: Bearer cFJZcjZ6anEwaThM6UmYyMkJmWm9nMHFRR2xWOQ==
Body:
{
"merchantCode": "2****2",
"businessName": "Test Shop",
"billNumber": "123456", #Optional
"description": "Test Shop",
"productType": 3,
"countryId": "2",
"subregionId": 4,
"industryId": 2,
"subIndustryId": 1,
"bankId": 2,#Optional
"bankAccountNumber": "119*****22478",#Optional
"mobileNumber": "070****91",
"businessTypeId": 1,
"email": "testshop@email.com",
"registrationNumber": "K1****12PO",
"kraPin": "J1****2003Y",
"referralCode": "1234",
"dealerNumber": "123456",
"purpose": "Collection",
"natureOfBusiness": "Retail shop",
"physicalAddress": "Nairobi",
"estimatedMonthlyTransactionAmount": 500000.00,
"estimatedMonthlyTransactionCount": 10,
"callbackUrl": "https://posthere.io/******callback/",
"directors": [
{
"directorName": "John Doe",
"directorIdnumber": "2332****12",
"directorMobileNumber": "2547****59",
"directorKraPin": "2547****59",
"directorDocumentType":"ID_NUMBER,PASSPORT,ALIEN_ID",
"directorCountryCode": "256"

}
]
}

Response Parameters

FieldTypeDescriptionExample
responseCodeNumericThis is a numeric status code that indicates the status of the response. 0 means success and any other code means an error occurred or the request failed.Please refer to the response codes table above.0
RequestIdAlpha-NumericA unique identifier for the registration request generated by SasaPay API."ef348e2f-f59b-446a-b92c-4d93ebf580a0"
messageStringA description of the response status sent when a request is received."Registration staged Successfully"
Sample Response
{   "status": true,
"responseCode": "0",
"message": "Confirmation code has been sent to 254*****573",
"requestId": "dd50f1b4-bd7f-402f-8855-27ac0959c6e4"
}

Business Onboarding Confirmation

For this POST request, you need to add the ConfirmationCode and RequestId parameters when making the request to finalize the registration of the entity.

Alt test Endpoint: https://sandbox.sasapay.app/api/v2/waas/business-onboarding/confirmation/

Request Parameters

FieldTypeDescriptionExample
merchantCodeStringA unique number assigned to an organization/merchant registered with ViewTech, through which payment is received (can be Paybill or Till number)4*6
otpStringThis is a four digit, confirmation code that is sent in response to the initial registration POST request when onboarding a new entity.1***4
requestIdAlpha-numericA unique identifier for the registration"ef348e2f-f59b-446a-b92c-4d93ebf580a0"
Sample Request
Headers
Key: Authorization
Value: Bearer cFJZcjZ6anEwaThM6UmYyMkJmWm9nMHFRR2xWOQ==
Body:
{
"merchantCode": "2**2",
"otp": "35**45",
"requestId": "41c54d28-5a84-****-9b11-6e67ada0d983"
}

Response Parameters

FieldTypeDescriptionExample
statusstringThis is a numeric status code that indicates the status of the response.true
responseCodeNumericThis is a numeric status code that indicates the status of the response. 0 means success and any other code means an error occurred or the request failed.Please refer to the response codes table above.0
messageStringThis is the response message sent by the system when the payload is received on the endpoint.“Your business account request has been received successfully and is awaiting approval"”
requestIdalphanumericThis is a numeric status code that indicates the status of the response."0a4b932e-0e0c-437f-baff-c66654f70687"
merchantCodestringA unique number assigned to an organization/merchant registered with ViewTech, through which payment is received (can be Paybill or Till number).4****6
accountNumberNumericThe registered business account number.“831398-558”
displayNamestringThe name of the business created“musin hardware“
accountStatusstringstatus of the created account"AWAITING_KYC_UPLOAD"
accountBalancestringThis is the amount of money in the account0.0
Sample Response
 

{
"status": true,
"responseCode": "0",
"message": "Your business account request has been received successfully and is awaiting approval",
"data": {
"requestId": "0a4b932e-0e0c-437f-baff-c66654f70687",
"merchantCode": "2**2",
"accountNumber": "",
"displayName": "musin hardware",
"accountStatus": "AWAITING_KYC_UPLOAD",
"accountBalance": 0.0
}
}

Business KYC Upload

As a merchant, after successfully onboarding your business clients, the next step would be to know your businesses. SasaPay WaaS API enables you to do that by allowing your entities to upload the KYC(know your customer) documents.

Alt test Endpoint: https://sandbox.sasapay.app/api/v2/waas/business-onboarding/kyc/

Request Parameters

FieldTypeDescriptionExample
merchantCodeStringA unique number assigned to an organization/merchant registered with ViewTech, through which payment is received (can be Paybill or Till number).This is the MerchantCode associated with WaaS.2****8
requestIdAlpha-numericA unique identifier for the registration"ef348e2f-f59b-446a-b92c-4d93ebf580a0"
businessKraPinImage FileThis is the current photo of the business KraPin.PHOTO.jpg
businessRegistrationCertificateImage FileThis is the current photo of the business Registration certificate.PHOTO.jpg
boardResolutionImage FileThis is the current photo of the business resolution document.PHOTO.jpg
cr12DocumentImage FileThis is the current photo of the business cr12 certificate.PHOTO.jpg
proofOfAddressDocumentImage FileThis is the current proof of address.PHOTO.jpg
proofOfBankDocumentImage FileThis is the current proff of the bank account.PHOTO.jpg
directorKraPinImage FileThis is the current photo of the director's KRA Pin.PHOTO.jpg

| directorIdCardFront | Image File | This is the Front surface of current photo of the directors's national ID Number or Passport. | ID_IMAGE_FRONT.jpg | | directorIdCardBack | Image File | This is the Back surface of current photo of the director's national ID Number or Passport. | ID_IMAGE_BACK.jpg |

Sample Request
Headers
Key: Authorization
Value: Bearer cFJZcjZ6anEwaThM6UmYyMkJmWm9nMHFRR2xWOQ==
Body:

{
"merchantCode": "2612",
"requestId": "41c54d28-5a84-4e8f-9b11-6e67ada0d983",
"businessKraPin": "IMAGE.JPG",
"businessRegistrationCertificate": "IMAGE.JPG",
"boardResolution": "IMAGE.JPG",
"cr12Document": "IMAGE.JPG",
"proofOfAddressDocument": "IMAGE.JPG",
"proofOfBankDocument": "IMAGE.JPG",
"directorIdCardFront": "IMAGE.JPG",#Deprecated
"directorIdCardBack": "IMAGE.JPG",#Deprecated
"directorKraPin": "IMAGE.JPG",#Deprecated
"directorsKyc": [
{
"directorKraPinNumber":"A007774P",
"directorIdCardFront": "IMAGE.JPG",
"directorIdCardBack": "IMAGE.JPG",
"directorKraPin": "IMAGE.JPG"
}
]
}


Response Parameters

FieldTypeDescriptionExample
responseCodeNumericThis is a numeric status code that indicates the status of the response. 0 means success and any other code means an error occurred or the request failed.Please refer to the response codes table above.0
messageStringThis is the response message sent by the system when the payload is received on the endpoint.Documents uploaded successfully.
Sample Response
{
"status":true,
"responseCode":"0",
"message":"Business KYC uploaded."
}