Affinity API 1.0 Help

Onboarding a business

To onboard a business, these key steps must be completed:

  1. Add business details

  2. Add individual stakeholders (optional)

  3. Add corporate shareholders (optional)

  4. Complete onboarding

  5. Fund account

  6. Approval process

Each of these steps is explained in more detail in the sections that follow

1. Adding business details

This first step requires providing the core information about the business, such as its name, registration number, and address

KYC requirements

Field

Type

Description

Notes

1.

name

string

Business legal name

[required]

2.

registrationNumber

string

Business registration number

[required]

3.

registrationDate

string

Business registration date

[required]

4.

businessType

string

can be one of these SOLE_PROPRIETOR, PARTNERSHIP, NON_PROFIT, LIMITED_LIABILITY, GOVERNMENT_ORGANISATION

[required]

5.

registrationType

string

Can be one of these UNREGISTERED, LIMITED_BY_GUARANTEE, REGISTERED

[required]

6.

ownershipType

string

Can be one of these PRIVATE, PUBLIC

[required]

7.

isLicenseRequired

boolean

A boolean flag indicating whether the business requires a valid operating license. Set to true if a license is mandatory, otherwise false.

[required]

8.

address

object

Business address. Refer to address object table below for the list of objects.

[required]

9.

email

string

Business email address

[optional]

10.

phoneNumber

string

Business phone number

[required]

11.

secondaryPhoneNumber

string

An alternative contact phone number for the business or organization

[optional]

12.

TIN

string

Business Tax Identification Number

[required]

13.

industry

string

Industry the business belongs to. Refer to sectors and industries for the list of codes

[required]

14.

annualTurnover

number

Annual turnover

[required]

15.

sourceOfFunds

string

Can be one of the the following BUSINESS_PROCEEDS, REMITTANCES

[required]

16.

website

string

The company's website

[optional]

17.

noRequiredSignatories

integer

Number of required signatures

[required] if business is a limited liability

18.

certificateOfRegistrationFile

string

A file reference or upload of the business's certificate of registration

[optional]

19.

amendmentToRegistrationFile

string

A file reference or upload of any amendments made to the business’s original registration document

[optional]

20.

annualRenewalReceiptFile

string

A file reference or upload of the receipt for the business’s annual renewal

[optional]

21.

businessRegulationFile

string

A file reference or upload of the business’s regulatory compliance document

[optional]

22.

partnershipAgreementFile

string

A file reference or upload of the partnership agreement

[optional]

23.

certificateOfIncorporationFile

string

A file reference or upload of the business’s certificate of incorporation

[optional]

24.

endorsedConstitutionFile

string

A file reference or upload of the business’s endorsed constitution

[optional]

25.

publicVerificationProofFile

string

A file reference or upload of the proof of public verification for the business

[optional]

Sectors and industries

A business is required to be in a specific industry within a defined sector. Affinity has provided a comprehensive list of sectors and industries under which any company can be placed.

POST method/business-accounts/details

Save business core details and required documents

Request parameters

{ "name": "example", "registrationNumber": "example", "registrationDate": "example", "businessType": "SOLE_PROPRIETOR", "registrationType": "UNREGISTERED", "nonProfitType": "NGO", "ownershipType": "PUBLIC", "isLicenseRequired": true, "address": { "houseNumber": "example", "streetName": "example", "area": "example", "city": "example", "ghanaGPSAddress": "example" }, "email": "example", "phoneNumber": "example", "secondaryPhoneNumber": "example", "TIN": "example", "sector": "example", "industry": "example", "annualTurnover": "example", "sourceOfFunds": "BUSINESS_PROCEEDS", "website": "example", "noRequiredSignatories": 4, "certificateOfRegistrationFile": "example", "ammendmentToRegistrationFile": "example", "annualRenewalReceiptFile": "example", "businessRegulationFile": "example", "partnershipAgreementFile": "example", "certificateOfIncorporationFile": "example", "endorsedConstitutionFile": "example", "publicVerificationProofFile": "example" }

Responses

{ "message": "example", "reference": "example" }

2. Adding individual stakeholders (optional)

This step requires providing the details of the business’s directors, shareholders, and signatories

Field

Type

Description

Notes

1.

title

string

Can be one of the following, MR, MRS, MS, DR, PROF

[required]

2.

firstName

string

First name

[required]

3.

lastName

string

Last name

[required]

4.

otherNames

string

Other names

[optional]

5.

address

object

Requires the following ghanaGPSAddress, city, streetName

[required]

6.

email

string

Email address

[optional]

7.

nationality

string

Nationality

[optional]

8.

phoneNumber

string

Phone number

[required]

9.

secondaryPhoneNumber

string

[optional]

10.

position

string

Can be one of the following DIRECTOR, CEO_MANAGING_DIRECTOR', 'CFO_FINANCE_DIRECTOR, COO_OPERATIONS_DIRECTOR, OTHER_MANAGEMENT

[required]

11.

shareholderType

string

Can be one of the following INDEPENDENT_SHAREHOLDER, FOUNDER, RELATED_TO_FOUNDER, MEMBER_OF_MANAGEMENT

[required]

12.

photoKey

string

Refer to selfie requirements for further details

[required]

13.

sourceOfFunds

string

Can be one of the following BUSINESS_PROCEEDS, REMITTANCES

[required]

14.

isDirector

boolean

Indicate whether the individual is a director

[required]

15.

isShareholder

boolean

Indicate whether the individual is a shareholder with at least 10% stake in the business

[required]

16.

isSignatory

boolean

Indicate whether the individual is a signatory to the account

[required]

17.

signatureKey

string

[optional]

PATCH method/business-accounts/{reference}/directors

Store information on the people in the business (directors, shareholders, signatories)

Request parameters

{ "directors": [ { "title": "Mr", "firstName": "example", "lastName": "example", "otherNames": "example", "address": { "houseNumber": "example", "streetName": "example", "area": "example", "city": "example", "ghanaGPSAddress": "example" }, "email": "example", "nationality": "example", "phoneNumber": "example", "secondaryPhoneNumber": "example", "position": "DIRECTOR", "shareholderType": "INDEPENDENT_SHAREHOLDER", "photoKey": "example", "sourceOfFunds": "BUSINESS_PROCEEDS", "isDirector": true, "isShareholder": false, "isSignatory": true, "signatureKey": "example", "identification": { "idType": "GHANA_CARD", "number": "example", "issueDate": "example", "expiryDate": "example", "fileKey": "example", "backFileKey": "example" } } ] }

Responses

{ "message": "example", "reference": "example" }

3. Adding corporate shareholders (optional)

If other businesses own a stake in the company being onboarded, it might be beneficial to add them for record-keeping purposes

Field

Type

Description

Notes

1.

name

string

Business legal name

[required]

2.

registrationNumber

string

Business registration number

[required]

3.

registrationDate

string

Business registration date

[required]

4.

businessType

string

Can be one of these SOLE_PROPRIETOR, PARTNERSHIP, NON_PROFIT, LIMITED_LIABILITY, GOVERNMENT_ORGANISATION

[required]

5.

registrationType

string

Can be one of these UNREGISTERED, LIMITED_BY_GUARANTEE, REGISTERED

[optional]

6.

ownershipType

string

Can be one of these PRIVATE, PUBLIC

[required]

7.

isLicenseRequired

boolean

[required]

8.

address

object

Business address, requires the following ghanaGPSAddress, city, streetName

[required]

9.

email

string

Business email address

[optional]

10.

phoneNumber

string

Business phone number

[required]

11.

secondaryPhoneNumber

string

[optional]

12.

TIN

string

Business Tax Identification Number

[required]

13.

industry

string

Industry the business belongs to. Refer to sectors & Industries for the list of codes

[required]

14.

website

string

Company website

[optional]

15.

certificateOfRegistrationFile

string

[optional]

16.

amendmentToRegistrationFile

string

[optional]

17.

annualRenewalReceiptFile

string

[optional]

18.

businessRegulationFile

string

[optional]

19.

partnershipAgreementFile

string

[optional]

20.

certificateOfIncorporationFile

string

[optional]

21.

endorsedConstitutionFile

string

[optional]

22.

publicVerificationProofFile

string

[optional]

23.

Identification

Array of objects

Refer to the identification object table below for the list of objects

[required]

PATCH method/business-accounts/{reference}/business-shareholders

Add shareholders which are businesses

Request parameters

{ "businessShareholders": [ { "name": "example", "registrationNumber": "example", "registrationDate": "example", "businessType": "SOLE_PROPRIETOR", "registrationType": "UNREGISTERED", "nonProfitType": "NGO", "ownershipType": "PUBLIC", "isLicenseRequired": true, "address": { "houseNumber": "example", "streetName": "example", "area": "example", "city": "example", "ghanaGPSAddress": "example" }, "email": "example", "phoneNumber": "example", "secondaryPhoneNumber": "example", "TIN": "example", "sector": "example", "industry": "example", "annualTurnover": "example", "sourceOfFunds": "BUSINESS_PROCEEDS", "website": "example", "noRequiredSignatories": 4, "certificateOfRegistrationFile": "example", "ammendmentToRegistrationFile": "example", "annualRenewalReceiptFile": "example", "businessRegulationFile": "example", "partnershipAgreementFile": "example", "certificateOfIncorporationFile": "example", "endorsedConstitutionFile": "example", "publicVerificationProofFile": "example" } ] }

Responses

{ "message": "example", "reference": "example" }

4. Completing onboarding process

After completing the steps above, you are required to complete the onboarding, which will then initiate the approval process

PATCH method/business-accounts/{reference}/complete-onboard

Complete business onboarding

Request parameters

Responses

{ "message": "example", "reference": "example" }

5. Funding account

An account may be funded via any of our digital channels. We are connected to the Ghana Interbank Payment and Settlement Systems (GHIPSS), thus, all business accounts created can be found on the GHIPSS Instant Pay (GIP) platform.

6. Approval process

An account created via API goes through various processes. The chart below demonstrates the lifecycle of an account from submitting details via the endpoint through approval and eventual creation on the core banking.

Submit details
Compliance approval
Success
Error
Create business
Unapproved account
Creation on core banking
Active account
Failed to create account

Table of objects

Identification object table

Field

Type

Description

1.

idType

string

Identification type. Must be one of the following PASSPORT, GHANA_CARD

2.

number

string

Identification number

3.

issueDate

string

4.

expiryDate

string

5.

fileKey

string

Bio data page/side image

6.

backFileKey

string

Back cover image

Address object table

Field

Type

Description

1.

houseNumber

string

2.

streetName

string

3.

area

string

4.

city

string

5.

ghanaGPSAddress

string

Last modified: 27 August 2025