Form Submission
Designing and implementing forms for loan applications involves ensuring that the data you're collecting meets the requirements of Abacus and its database. This document helps you understand which fields are required when performing form submission.

After registering, customers will be sent two random Email and SMS codes which will be used to activate their Members Access. Customers can log into their internet banking accounts after activating their accounts.

Endpoint

https://api.abacushub.io/activate/

Parameters

Name Required Description Default Value Example
MembershipNumber Customer number. 122730
EmailActivationCode Code sent to customer's email address. 123456
SmsActivationCode Code sent to customer via SMS. 123456
Pin1 User's chosen PIN 123456

Sample Request

{
  "MembershipNumber":"122730"
  "EmailActivationCode":"595090"
  "SmsActivationCode":"205978"
  "Pin1":"123456"
}

If the request was a success, the API will return HTTP 201 Created response and an ID of 0.

Sample Success Response

{
  "Id":"0"
}

Failure Responses

Status Code Description
409 An account with the supplied email and phone number is already active.
406 The activation codes you supplied were incorrect.

When applying for a Join Application the Abacus API needs to be sent a HTTP POST request with a Join object. As the user does not need to validate their login, the Join object only contains the JSON data from the Join application.

Request Object

{
  "JsonData": STRING
}

The JSON data is a string that contains a collection of objects. This contains information about the applicant to be used to make a decision on the approval of the join application.

Join JSON Data

{
  "ApplicationType": ApplicationType,
  "PersonalDetails": PersonalDetails
  "ContactDetails": ContactDetails
  "HomeAddress": Address
  "WorkAtAddress": Address,
  "Employment": Employment,
  "PayrollDeductions": PayrollDeductions,
  "BankDetails": BankDetails
  "AdditionalInformation": AdditionalInformation,
  "BeneficiaryDetails": BeneficiaryDetails
  "Lottery": Lottery,
}
ApplicationType Object

{
  "ApplicationTypeId": NUMBER,
}

PersonalDetails Object

{
  "TitleId": NUMBER ?,
  "FirstName": STRING
  "MiddleName": STRING
  "Surname": STRING
  "GenderId": NUMBER ?
  "MaritalStatusId": NUMBER ?
  "DateOfBirth": STRING
  "SelectedForce": STRING
  "SelectedBranchId": NUMBER ?
  "SelectedEmployedById": NUMBER ?
  "NationalInsuranceNumber": STRING
  "DriversLicenseNumber": STRING
  "PayrollNumber": STRING
  "EmployedBy": STRING
  "MainMemberAccountNumber": STRING
  "MainMemberRelationship": STRING
  "ServiceNumber": STRING
  "DependantsAges": STRING
  "IncomeTaxCountryId": NUMBER ?
  "IdentityNumber": STRING
  "EligibilityEmployment": NUMBER ?
  "EmploymentStartDate": STRING
  "MemberOf": STRING
  "EligibilityRetiredEmployment": NUMBER ?
  "PensionNumber": STRING
  "ExistingMemberName": STRING
  "ExistingMemberNumber": STRING
  "ForceTypeId": NUMBER ?
  "BranchName": STRING
}

ContactDetails Object

{
  "HomePhone": STRING,
  "MobilePhone": STRING,
  "EmailAddress": STRING,
}

Address Object

{
  "FlatAptOfficeNo": STRING,
  "HouseBuildingName": STRING,
  "HouseBuildingNo": STRING,
  "AddressLine1": STRING,
  "AddressLine2": STRING,
  "City": STRING,
  "PostalCode": STRING,
  "County": STRING,
  "SelectedLivingArrangement": NUMBER,
  "YearsAtAddress": NUMBER ?,
  "MonthsAtAddress": NUMBER ?,
  "PartOfLocalAuthority": BOOL ?,
}

Employment Object

{
  "EmploymentStatusId": NUMBER,
  "Name": STRING,
  "AddressLine1": STRING,
  "AddressLine2": STRING,
  "City": STRING,
  "PostalCode": STRING,
  "County": STRING,
  "Phone": STRING,
  "YearsAtCompany": NUMBER,
  "JobRole": STRING,
  "StartDate": DateTime,
}

PayrollDeductions Object

{
  "DeductionType": NUMBER,
  "SetupAutomaticPayrollDeductions": BOOL ?,
  "SelectedEmployer": STRING,
  "PayrollNumber": STRING,
  "DeductionAmount": STRING,
  "MonthlyPayDate": NUMBER,
  "StartPayrollDeductionsOn": STRING,
  "StartPayrollDeductionsDay": NUMBER ?,
  "StartPayrollDeductionsMonth": NUMBER ?,
  "StartPayrollDeductionsYear": NUMBER ?,
  "StartPayrollDeductionsDate": NUMBER ?,
}

BankDetails Object

{
  "SortCode": STRING,
  "AccountNumber": STRING,
  "PayrollAmount": NUMBER,
}

AdditionalInformation Object

{
  "EthnicityId": NUMBER,
  "RelatedToOfficerOfCreditUnion": BOOL,
  "SubjectToCcj": BOOL,
  "SubjectToBankruptcyJudgement": BOOL,
  "SubjectToIva": BOOL,
  "TrustDeedDischarged": DATETIME,
  "SubjectToDro": BOOL,
  "SubjectToDmp": BOOL,
  "SubjectToMortgageLoanArrears": BOOL,
  "SubjectToUndischargedBankruptcy": BOOL,
  "OnSickLeave": BOOL,
  "OnMaternityLeave": BOOL,
  "AwareCircumstancesWillChange": BOOL,
  "PreviousMember": BOOL,
  "HearAboutUs": STRING,
  "ReasonForJoining": STRING,
  "ContactPost": BOOL,
  "ContactEmail": BOOL,
  "ContactTelephone": BOOL,
  "ContactText": BOOL,
  "PromotionCode": STRING,
  "AgreeCommunications": BOOL,
}

BeneficiaryDetails Object

{
  "Name": STRING,
  "Address": STRING,
  "PostalCode": STRING,
  "Relationship": STRING,
  "Signature": STRING,
}

Lottery Object

{
  "Join": BOOL,
  "Amount": STRING,
}


If the join application request was successful, the API will return HTTP 201 indicating a record has been created along with an object containing the Join Form Id.

Response Object

{
  "Id": NUMBER,
}

External loan applications are also called JoinAndBorrow applications as the user joins the Credit Union and applies for a loan all in one application. When applying for an External Loan Application Abacus API needs to be sent a HTTP POST request with a JoinAndBorrow object.

Request Object

{
  "JsonData": STRING
}

The JSON data is a string that contains a collection of objects. This contains information about the loan application and applicant to be used to make a decision on the approval of the application.

External Loan Application / Join and Borrow JSON Data

{
  "ApplicationType": ApplicationType,
  "PersonalDetails": PersonalDetails
  "ContactDetails": ContactDetails
  "HomeAddress": Address
  "PreviousAddress": Address,
  "WorkAtAddress": Address,
  "BankDetails": BankDetails
  "WorkDetails": WorkDetails
  "Loan": Loan,
  "Expenditure": Expenditure
  "Employment": Employment,
  "PayrollDeductions": PayrollDeductions,
  "BeneficiaryDetails": BeneficiaryDetails
  "AdditionalInformation": AdditionalInformation,
  "FinancialInformation": FinancialInformation
  "HealthDeclaration": HealthDeclaration
  "MemberRelationship": MemberRelationship,
  "Lottery": Lottery,
  "Benefits": List<Benefits>,
  "Lenders": List<Lenders>
  "CreditCards": List<CreditCards>,
}
ApplicationType Object

{
  "ApplicationTypeId": NUMBER,
}

PersonalDetails Object

{
  "TitleId": NUMBER ?,
  "FirstName": STRING
  "MiddleName": STRING
  "Surname": STRING
  "GenderId": NUMBER ?
  "MaritalStatusId": NUMBER ?
  "DateOfBirth": STRING
  "SelectedForce": STRING
  "SelectedBranchId": NUMBER ?
  "SelectedEmployedById": NUMBER ?
  "NationalInsuranceNumber": STRING
  "DriversLicenseNumber": STRING
  "PayrollNumber": STRING
  "EmployedBy": STRING
  "MainMemberAccountNumber": STRING
  "MainMemberRelationship": STRING
  "ServiceNumber": STRING
  "DependantsAges": STRING
  "IncomeTaxCountryId": NUMBER ?
  "IdentityNumber": STRING
  "EligibilityEmployment": NUMBER ?
  "EmploymentStartDate": STRING
  "MemberOf": STRING
  "EligibilityRetiredEmployment": NUMBER ?
  "PensionNumber": STRING
  "ExistingMemberName": STRING
  "ExistingMemberNumber": STRING
  "ForceTypeId": NUMBER ?
  "BranchName": STRING
}

ContactDetails Object

{
  "HomePhone": STRING,
  "MobilePhone": STRING,
  "EmailAddress": STRING,
}

Address Object

{
  "FlatAptOfficeNo": STRING,
  "HouseBuildingName": STRING,
  "HouseBuildingNo": STRING,
  "AddressLine1": STRING,
  "AddressLine2": STRING,
  "City": STRING,
  "PostalCode": STRING,
  "County": STRING,
  "SelectedLivingArrangement": NUMBER,
  "YearsAtAddress": NUMBER ?,
  "MonthsAtAddress": NUMBER ?,
  "PartOfLocalAuthority": BOOL ?,
}

BankDetails Object

{
  "SortCode": STRING,
  "AccountNumber": STRING,
  "PayrollAmount": NUMBER,
}

WorkDetails Object

{
  "JobRole": STRING,
  "StartDate": STRING,
  "SelectedModSubsidiaryId": NUMBER ?,
}

Loan Object

{
  "LoanProduct": NUMBER ?,
  "LoanAmount": NUMBER ?
  "InterestRate": NUMBER ?
  "LoanTermMonths": NUMBER ?
  "Savings": NUMBER
  "RepaymentFrequency": NUMBER
  "SelectedPaymentMethod": STRING
  "SelectedLoanReason": NUMBER
  "Rewarder1": NUMBER
  "Rewarder2": NUMBER
  "RepaymentAmount": NUMBER
  "MaximumTerm": NUMBER
  "MaximumAmount": NUMBER
  "MinimumTerm": NUMBER
  "MinimumBalance": NUMBER
  "MaxTermInCalcPeriod": NUMBER
  "MaxAPR": NUMBER
}

Expenditure Object

{
  "RentMortgageLodgements": NUMBER ?,
  "CreditUnionLodgements": NUMBER ?,
  "CouncilTax": NUMBER ?,
  "Water": NUMBER ?,
  "HomeInsurance": NUMBER ?,
  "LifeInsurance": NUMBER ?,
  "CarInsurance": NUMBER ?,
  "CableSatellite": NUMBER ?,
  "Utilities": NUMBER ?,
  "TravelFuel": NUMBER ?,
  "Telephone": NUNUMBER ?MBER,
  "Mobile": NUMBER ?,
  "CsaMaintenance": NUMBER ?,
  "ChildCare": NUMBER ?,
  "Gas": NUMBER ?,
  "Electricity": NUMBER ?,
  "FoodHousekeeping": NUMBER ?,
  "EatingOutTakeAway": NUMBER ?,
  "Savings": NUMBER ?,
  "Internet": NUMBER ?,
  "Clothing": NUMBER ?,
  "Catalogues": NUMBER ?,
  "StoreCards": NUMBER ?,
  "Leisure": NUMBER ?,
  "ChildrensActivities": NUMBER ?,
  "OtherDebts": NUMBER ?,
  "Other": NUMBER ?,
  "MortgageMonthlyRepayments": NUMBER ?,
}

Employment Object

{
  "EmploymentStatusId": NUMBER,
  "Name": STRING,
  "AddressLine1": STRING,
  "AddressLine2": STRING,
  "City": STRING,
  "PostalCode": STRING,
  "County": STRING,
  "Phone": STRING,
  "YearsAtCompany": NUMBER,
  "JobRole": STRING,
  "StartDate": DateTime,
}

PayrollDeductions Object

{
  "DeductionType": NUMBER,
  "SetupAutomaticPayrollDeductions": BOOL ?,
  "SelectedEmployer": STRING,
  "PayrollNumber": STRING,
  "DeductionAmount": STRING,
  "MonthlyPayDate": NUMBER,
  "StartPayrollDeductionsOn": STRING,
  "StartPayrollDeductionsDay": NUMBER ?,
  "StartPayrollDeductionsMonth": NUMBER ?,
  "StartPayrollDeductionsYear": NUMBER ?,
  "StartPayrollDeductionsDate": NUMBER ?,
}

BeneficiaryDetails Object

{
  "Name": STRING,
  "Address": STRING,
  "PostalCode": STRING,
  "Relationship": STRING,
  "Signature": STRING,
}

AdditionalInformation Object

{
  "EthnicityId": NUMBER,
  "RelatedToOfficerOfCreditUnion": BOOL,
  "SubjectToCcj": BOOL,
  "SubjectToBankruptcyJudgement": BOOL,
  "SubjectToIva": BOOL,
  "TrustDeedDischarged": DATETIME,
  "SubjectToDro": BOOL,
  "SubjectToDmp": BOOL,
  "SubjectToMortgageLoanArrears": BOOL,
  "SubjectToUndischargedBankruptcy": BOOL,
  "OnSickLeave": BOOL,
  "OnMaternityLeave": BOOL,
  "AwareCircumstancesWillChange": BOOL,
  "PreviousMember": BOOL,
  "HearAboutUs": STRING,
  "ReasonForJoining": STRING,
  "ContactPost": BOOL,
  "ContactEmail": BOOL,
  "ContactTelephone": BOOL,
  "ContactText": BOOL,
  "PromotionCode": STRING,
  "AgreeCommunications": BOOL,
}

FinancialInformation Object

{
  "NetIncomeAfterDeductionsMonthly": NUMBER ?,
  "PartnersIncomeAfterDeductionsMonthly": NUMBER ?,
  "OtherHouseholdIncomeMonthly": NUMBER ?,
  "SourceOfOtherIncome": STRING,
  "PropertyValue": NUMBER ?,
  "MortgageBalance": NUMBER ?,
  "MortgageRemainingYears": NUMBER ?,
  "MortgageRemainingMonths": NUMBER ?,
  "OtherLivingArrangement": STRING,
  "IncomeFrequency": STRING,
  "BenefitFrequency": STRING,
}

HealthDeclaration Object

{
  "GoodHealth": BOOL,
  "FitForWork": BOOL,
  "HealthNotes": STRING,
}

MemberRelationship Object

{
  "RelatedMemberAccountNumber": STRING,
  "PromotionCode": STRING,
}

Lottery Object

{
  "Join": BOOL,
  "Amount": STRING,
}

Benefit Object

{
  "Name": STRING,
  "Amount": NUMBER,
  "PaymentFrequency": NUMBER,
}

Lender Object

{
  "CompanyName": STRING,
  "Purpose": STRING,
  "AmountOwed": NUMBER,
  "MonthlyRepayments": NUMBER,
}

CreditCard Object

{
  "CompanyName": STRING,
  "CardLimit": NUMBER,
  "CardBalance": NUMBER,
  "AverageMonthlyRepayments": NUMBER,
}


If the external loan application request was successful, the API will return HTTP 201 indicating a record has been created along with an object containing the Application Id.

Response Object

{
  "Id": NUMBER,
}

When applying for an Internal Loan Application Abacus API needs to be sent a HTTP POST request with an InternalLoanApplication object.

Request Object

{
  "ID": NUMBER ?,
  "NewCustomerID": NUMBER ?
  "Status": NUMBER ?,
  "LoanID": NUMBER ?,
  "CustomerID": NUMBER ?
  "AccountID": NUMBER ?,
  "JsonData": STRING
}

The JSON data is a string that contains a collection of objects. This contains information about the loan application and applicant to be used to make a decision on the approval of the application.

Internal Loan Application JSON Data

{
  "CustomerId": NUMBER,
  "PersonalDetails": PersonalDetails
  "Loan": Loan,
  "Applicant": Applicant,
  "HomeAddress": Address
  "PreviousAddress": Address,
  "BankDetails": BankDetails
  "Expenditure": Expenditure
  "Employment": Employment,
  "PayrollDeductions": PayrollDeductions,
  "BeneficiaryDetails": BeneficiaryDetails
  "AdditionalInformation": AdditionalInformation,
  "FinancialInformation": FinancialInformation
  "HealthDeclaration": HealthDeclaration
  "MemberRelationship": MemberRelationship,
  "Benefits": List<Benefits>,
  "Lenders": List<Lenders>
  "CreditCards": List<CreditCards>,
}
PersonalDetails Object

{
  "TitleId": NUMBER ?,
  "FirstName": STRING
  "MiddleName": STRING
  "Surname": STRING
  "GenderId": NUMBER ?
  "MaritalStatusId": NUMBER ?
  "DateOfBirth": STRING
  "SelectedForce": STRING
  "SelectedBranchId": NUMBER ?
  "SelectedEmployedById": NUMBER ?
  "NationalInsuranceNumber": STRING
  "DriversLicenseNumber": STRING
  "PayrollNumber": STRING
  "EmployedBy": STRING
  "MainMemberAccountNumber": STRING
  "MainMemberRelationship": STRING
  "ServiceNumber": STRING
  "DependantsAges": STRING
  "IncomeTaxCountryId": NUMBER ?
  "IdentityNumber": STRING
  "EligibilityEmployment": NUMBER ?
  "EmploymentStartDate": STRING
  "MemberOf": STRING
  "EligibilityRetiredEmployment": NUMBER ?
  "PensionNumber": STRING
  "ExistingMemberName": STRING
  "ExistingMemberNumber": STRING
  "ForceTypeId": NUMBER ?
  "BranchName": STRING
}

Loan Object

{
  "LoanProduct": NUMBER ?,
  "LoanAmount": NUMBER ?
  "InterestRate": NUMBER ?
  "LoanTermMonths": NUMBER ?
  "Savings": NUMBER
  "RepaymentFrequency": NUMBER
  "SelectedPaymentMethod": STRING
  "SelectedLoanReason": NUMBER
  "Rewarder1": NUMBER
  "Rewarder2": NUMBER
  "RepaymentAmount": NUMBER
  "MaximumTerm": NUMBER
  "MaximumAmount": NUMBER
  "MinimumTerm": NUMBER
  "MinimumBalance": NUMBER
  "MaxTermInCalcPeriod": NUMBER
  "MaxAPR": NUMBER
}

Applicant Object

{
  "FirstName": STRING,
  "MiddleName": STRING,
  "LastName": STRING,
  "AddressLine1": STRING,
  "AddressLine2": STRING,
  "ApartmentNumber": STRING,
  "City": STRING,
  "Province": STRING,
  "PostalCode": STRING,
  "Phone": STRING,
  "Mobile": STRING,
  "Email": STRING,
  "DateOfBirth": STRING,
  "CustomerNumber": STRING,
}

Address Object

{
  "AddressLine1": STRING,
  "AddressLine2": STRING,
  "City": STRING,
  "PostalCode": STRING,
  "County": STRING,
  "SelectedLivingArrangement": NUMBER,
  "YearsAtAddress": NUMBER ?,
  "MonthsAtAddress": NUMBER ?,
  "PartOfLocalAuthority": BOOL ?,
}

BankDetails Object

{
  "SortCode": STRING,
  "AccountNumber": STRING,
  "PayrollAmount": NUMBER,
}

Expenditure Object

{
  "RentMortgageLodgements": NUMBER ?,
  "CreditUnionLodgements": NUMBER ?,
  "CouncilTax": NUMBER ?,
  "Water": NUMBER ?,
  "HomeInsurance": NUMBER ?,
  "LifeInsurance": NUMBER ?,
  "CarInsurance": NUMBER ?,
  "CableSatellite": NUMBER ?,
  "Utilities": NUMBER ?,
  "TravelFuel": NUMBER ?,
  "Telephone": NUNUMBER ?MBER,
  "Mobile": NUMBER ?,
  "CsaMaintenance": NUMBER ?,
  "ChildCare": NUMBER ?,
  "Gas": NUMBER ?,
  "Electricity": NUMBER ?,
  "FoodHousekeeping": NUMBER ?,
  "EatingOutTakeAway": NUMBER ?,
  "Savings": NUMBER ?,
  "Internet": NUMBER ?,
  "Clothing": NUMBER ?,
  "Catalogues": NUMBER ?,
  "StoreCards": NUMBER ?,
  "Leisure": NUMBER ?,
  "ChildrensActivities": NUMBER ?,
  "OtherDebts": NUMBER ?,
  "Other": NUMBER ?,
  "MortgageMonthlyRepayments": NUMBER ?,
}

Employment Object

{
  "EmploymentStatusId": NUMBER,
  "Name": STRING,
  "AddressLine1": STRING,
  "AddressLine2": STRING,
  "City": STRING,
  "PostalCode": STRING,
  "County": STRING,
  "Phone": STRING,
  "YearsAtCompany": NUMBER,
  "JobRole": STRING,
  "StartDate": DateTime,
}

PayrollDeductions Object

{
  "DeductionType": NUMBER,
  "SetupAutomaticPayrollDeductions": BOOL ?,
  "SelectedEmployer": STRING,
  "PayrollNumber": STRING,
  "DeductionAmount": STRING,
  "MonthlyPayDate": NUMBER,
  "StartPayrollDeductionsOn": STRING,
  "StartPayrollDeductionsDay": NUMBER ?,
  "StartPayrollDeductionsMonth": NUMBER ?,
  "StartPayrollDeductionsYear": NUMBER ?,
  "StartPayrollDeductionsDate": NUMBER ?,
}

BeneficiaryDetails Object

{
  "Name": STRING,
  "Address": STRING,
  "PostalCode": STRING,
  "Relationship": STRING,
  "Signature": STRING,
}

AdditionalInformation Object

{
  "EthnicityId": NUMBER,
  "RelatedToOfficerOfCreditUnion": BOOL,
  "SubjectToCcj": BOOL,
  "SubjectToBankruptcyJudgement": BOOL,
  "SubjectToIva": BOOL,
  "TrustDeedDischarged": DATETIME,
  "SubjectToDro": BOOL,
  "SubjectToDmp": BOOL,
  "SubjectToMortgageLoanArrears": BOOL,
  "SubjectToUndischargedBankruptcy": BOOL,
  "OnSickLeave": BOOL,
  "OnMaternityLeave": BOOL,
  "AwareCircumstancesWillChange": BOOL,
  "PreviousMember": BOOL,
  "HearAboutUs": STRING,
  "ReasonForJoining": STRING,
  "ContactPost": BOOL,
  "ContactEmail": BOOL,
  "ContactTelephone": BOOL,
  "ContactText": BOOL,
  "PromotionCode": STRING,
  "AgreeCommunications": BOOL,
}

FinancialInformation Object

{
  "NetIncomeAfterDeductionsMonthly": NUMBER ?,
  "PartnersIncomeAfterDeductionsMonthly": NUMBER ?,
  "OtherHouseholdIncomeMonthly": NUMBER ?,
  "SourceOfOtherIncome": STRING,
  "PropertyValue": NUMBER ?,
  "MortgageBalance": NUMBER ?,
  "MortgageRemainingYears": NUMBER ?,
  "MortgageRemainingMonths": NUMBER ?,
  "OtherLivingArrangement": STRING,
  "IncomeFrequency": STRING,
  "BenefitFrequency": STRING,
}

HealthDeclaration Object

{
  "GoodHealth": BOOL,
  "FitForWork": BOOL,
  "HealthNotes": STRING,
}

MemberRelationship Object

{
  "RelatedMemberAccountNumber": STRING,
  "PromotionCode": STRING,
}

Benefit Object

{
  "Name": STRING,
  "Amount": NUMBER,
  "PaymentFrequency": NUMBER,
}

Lender Object

{
  "CompanyName": STRING,
  "Purpose": STRING,
  "AmountOwed": NUMBER,
  "MonthlyRepayments": NUMBER,
}

CreditCard Object

{
  "CompanyName": STRING,
  "CardLimit": NUMBER,
  "CardBalance": NUMBER,
  "AverageMonthlyRepayments": NUMBER,
}


If the internal loan application request was successful, the API will return HTTP 201 indicating a record has been created along with an object containing the Application Id.

Response Object

{
  "Id": NUMBER,
}

This allows an authenticated user to change their PIN/Password. When changing the PIN Abacus API needs to be sent a HTTP POST request with a PinUpdate object.

Endpoint

https://api.abacushub.io/customers/{customerId}/pin

HTTP Request Type

POST

Parameters

Name Required Description Default Value Example
CurrentPin User's current PIN. 123456
Pin User's new PIN. 111111

Sample Request

{
  "CurrentPin":"123456"
  "Pin":"111111"
}

If the request was a success, the API will return HTTP 204 No Content response.


If a user forgets their PIN/Password they may reset it. This will reset the user's PIN to a random combination of numbers and then send it to the user via an SMS message. When resetting the PIN Abacus API needs to be sent a HTTP POST request with a ForgotPinRequest object

Endpoint

https://api.abacushub.io/forgot/

HTTP Request Type

POST

Parameters

Name Required Description Default Value Example
MemberId User's ID used to log in. 123456
Phone User's registered UK phone number, which will be sent an SMS. 07712345678
DOB User's date of birth. 01/31/2000

Sample Request

{
  "MemberId":"123456",
  "Phone":"07712345678",
  "DOB":""01/31/2000"",
}

If the request was a success, the API will return HTTP 204 No Content response. The customer will then recieve an SMS message with their new PIN.


After joining the credit union, a user may register for Members Access. Once registration is complete, they will be sent two random Email and SMS codes which will be used to activate their Members Access. When registering, Abacus API needs to be sent a HTTP POST request with a Register object.

Endpoint

https://api.abacushub.io/register/

Parameters

Name Required Description Default Value Example
Forename User's first name. Joe
Surname User's last name. Bloggs
Customer Number User's customer number. 123456
Phone number User's mobile phone number. Must be UK format. 02890123456
Email User's email address. email@myemail.com
DOB User's date of birth. 2000-01-31
CheckDormancy Specifies whether a user's account should be subject to a dormancy check. false

Sample Request

{
  "Forename":"Joe"
  "Surname":"Bloggs"
  "CustomerNumber":"123456"
  "PhoneNumber":"02890123456"
  "Email":"email@myemail.com"
  "DOB":"2000-01-31"
  "CheckDormancy":"false"
}

If the request was a success, the API will return HTTP 201 Created response along with a FormResponse object containing an Id. The customer will then recieve two random activation codes via SMS and Email.

Sample Success Response

{
  "Id":"12345"
}

Failure Responses

Status Code Description
409 An account with the supplied email and phone number is already active.
406 We could not find your account with the supplied membership number. Ensure that it is correct and try again.
417 Your account is dormant.
422 The email or telephone number you provided doesn't match our records.
403 Customer cannot register with a written off account.
412 SMS consent is required.

An internal transfer represents the transfer of funds from one account to another where the owner of the accounts is the same. When applying for an internal transfer Abacus API needs to be sent a HTTP POST request with a Transfer object.

Endpoint

https://api.abacushub.io/accounts/{fromAccountId}/internaltransfer/{toAccountId}

Object

{
  "CustomerId": "123456",
  "Amount": "1.11",
  "Reference": "Gas bill"
}3

Parameters

Name Required Description Default Value Example
CustomerId Customers unique identfier. 10010001
Amount The amount they would like to transfer. £20.00
Reference Note added to transaction. Bill Payment

Sample Request

{
  "CustomerId":"123456"
  "Amount":"£50.00"
  "Reference":"Bill Payments"
}

If the internal transfer was successful, the API will return HTTP 201 indicating a record has been created along with the internal transfer object.

Sample Response

{
  "ReceiptNumber":"12345"
}

The HTTP post request must contain the AccountIDs of the account that will be transferred from and the account that will be transferred into.

A Withdrawal represents Customers history of withdrawals made from Accounts. A withdrawal involves withdrawing funds from one Abacus API account to an external bank account. As a prerequisite, Abacus API must have the bank account details in the database. When applying for an withdrawal Abacus API needs to be sent a HTTP POST request with a Withdrawal object.

Endpoint

https://api.abacushub.io/withdrawals/

Object

{
  "CustomerId": "123456",
  "SavingsAccountId": "123456",
  "BankAccountId": "123456",
  "Amount": "1.11",
  "Reference": "Gas bill"
}

Supported operations

URL
ALL /withdrawals/
GET /withdrawals/{id}
SEARCH /withdrawals?sort={string}&paged={bool}&page={int}&pageSize={int}&ascending={bool}
POST /withdrawals/
PUT /withdrawals/{id}
DELETE /withdrawals/{id}

Parameters

Name Required Description Default Value Example
CustomerId Customers unique identifier. 123456
SavingsAccountId Savings account unique identifier 123456
BankAccountId Bank account's unique identifier Bill Payment
Amount The amount to be withdrawn £30.00
Reference Note added to transaction. Rent payment

Sample Request

{
  "CustomerId":"123456"
  "SavingsAccountId":"654321"
  "BankAccountId":"000000"
  "Amount":"£50.00"
  "Reference":"Rent Payment"
}

If the withdrawal was successful, the API will return HTTP 201 indicating a record has been created along with the withdrawal object.