Create Account (Full Service)

Get Started. It's Free
or sign up with your email address
Create Account (Full Service) by Mind Map: Create Account (Full Service)

1. Common Error Codes

1.1. If token not provided or expired 401 Error code

1.1.1. "message": "Authorization has been denied for this request."

1.2. If sending more requests than is allowed then 429: Too many requests

1.2.1. Configuration. To be confirmed with Dev

1.2.2. "message": "You have exceeded the maximum limit of request allowed. Please try your request again in a moment."

1.3. If client does not have permission to business provided then 403: Forbidden

1.3.1. { "errorCode":"access_denied", "message":"Unable to process this request as you do not have access to the customer associated to this request." }

1.4. 500: Internal Server Error Lock database to test

1.4.1. { "message": "Something went wrong while processing your request. We’re sorry for the trouble. We’ve been notified of the error and will correct it as soon as possible. Please try your request again in a moment." }

1.5. 503: Service Unavailable Turn off CustomerServices in Application Pool to Test

1.5.1. { "message": "The API is currently unavailable due to a scheduled outage – please try again soon." }

2. General Logic

2.1. customerId

2.1.1. not provided

2.1.1.1. 400 Error { "field":"CustomerId", "message":"CustomerId is required." }

2.1.2. provided customerId doesn't exist

2.1.2.1. 400 Error { "field":"CustomerId", "message":"CustomerId is invalid." }

2.1.3. provided customerId is not the same facility as provided businessAccountId

2.1.3.1. 400 Error { "field":"CustomerId", "message":"CustomerId is invalid." }

2.2. businessAccountId

2.2.1. not provided

2.2.1.1. 400 Error { "field":"businessAccountId", "message":"businessAccountId is required." }

2.2.2. provided businessAccountId doesn't exist

2.2.2.1. 400 error { "field":"businessAccountId", "message":"businessAccountId is invalid." }

2.2.3. provided value is bigger than 6 characters (7)

2.2.3.1. 400 Error { "field":"businessAccountId", "message":"businessId must not exceed 6 characters." }

2.3. accountExternalId

2.3.1. not provided

2.3.1.1. 400 error { "field":"accountExternalId", "message":"AccountExternalId is required." }

2.3.2. not unique in facility account (provide value that already assigned to account in FA )

2.3.2.1. { "field":"accountExternalId", "message":"The accountExternalId is not unique and has been used for an account previously. Please retry with a different accountExternalId." }

2.3.3. the value exceeds 50 characters (51)

2.3.3.1. 400 Error { "field":"accountExternalId", "message":"AccountExternalId must not exceed 50 characters." }

2.3.4. special characters

2.3.4.1. no validation for special character it will process successfully

2.4. accountCode

2.4.1. not provided

2.4.1.1. 400 Error { "field":"accountCode", "message":"AccountCode is required." }

2.4.2. invalid (not only a-z,A-Z,0-9,_,- in the provided value)

2.4.2.1. 400 Error { "field":"accountCode", "message":"AccountCode is invalid." }

2.4.3. value exceeds 100 characters (101)

2.4.3.1. 400 Error { "field":"accountCode", "message":"AccountCode must not exceed 100 characters." }

2.5. termType

2.5.1. not provided

2.5.1.1. 400 Error { "field":"termType", "message":"TermType is required." }

2.5.2. invalid - provided value is NOT in (months, payments)

2.5.2.1. 400 Error { "field":"termType", "message":"TermType is invalid." }

2.6. term

2.6.1. not provided

2.6.1.1. 400 Error { "field":"term", "message":"Term is required." }

2.6.2. invalid - negative value provided

2.6.2.1. 400 Error { "field":"term", "message":"Term is invalid." }

2.6.3. fixedTerm = true

2.6.3.1. provided value is 0

2.6.3.1.1. 400 Error { "field":"term", "message":"Term is invalid." }

2.7. accountNotes (not mandatory)

2.7.1. value exceeds 1000 characters

2.7.1.1. 400 Error { "field":"accountNotes", "message":"AccountNotes must not exceed 1000 characters." }

2.8. fixedTerm

2.8.1. not provided

2.8.1.1. 400 Error { "field":"fixedTerm", "message":"FixedTerm is required." }

2.9. waiveEstFee (not mandatory)

2.9.1. customer pays

2.9.1.1. true

2.9.1.1.1. EstFee PS will not bee created

2.9.1.1.2. PayOut.ChargeBack record will be added by ONP

2.9.1.2. false

2.9.1.2.1. EstFee PS will be created

2.9.2. facility pays

2.9.2.1. value will be ignored

2.9.2.2. PayOut.ChargeBack record will be added by ONP

2.9.3. no EstFee

2.9.3.1. value will be ignored

2.9.3.2. PayOut.ChargeBack record will be added by ONP

2.10. accountStartDate

2.10.1. not provided

2.10.1.1. 400 Error { "field":"accountStartDate", "message":"AccountStartDate is required." }

2.10.2. invalid format (YYYY-MM-DD) provided DD-MM-YYYY, 01-Jan-2020

2.10.2.1. 400 Error { "field":"paymentStoppedEndDate", "message":"PaymentStoppedEndDate is invalid. Expected format is YYYY-MM-DD." }

2.10.3. provided date after cut-off time

2.10.3.1. account is created

2.10.3.2. billNext will move for the next working day

2.10.4. provided date in the past (more than 1 day in the past)

2.10.4.1. 400 Error { "field":"accountStartDate", "message":"AccountStartDate must not be a date in the past." }

2.11. contractAmount

2.11.1. fixedTerm = true optional contractAmount

2.11.1.1. invalid value provided (not numeric) characters, not number and dot, 100000000.01 ((numeric (10,2)))

2.11.1.1.1. 400 Error { "field":"contractAmount", "message":"ContractAmount is invalid." }

2.11.2. fixedTerm = false

2.11.2.1. 400 Error { "field":"contractAmount", "message":"ContractAmount must be null for ongoing accounts." }

2.12. paymentMethodToken (not mandatory)

2.12.1. paymentMethodToken doesn't exist in DB

2.12.1.1. 400 Error { "field":"paymentMethodToken", "message":"PaymentMethodToken not found." }

2.12.2. paymentMethodToken allocated to different customer

2.12.2.1. 400 Error { "field":"paymentMethodToken", "message":"PaymentMethodToken not found." }

2.12.3. not provided

2.12.3.1. account is created with no Paymethod

2.12.3.2. PS.PayType = DD

2.12.4. empty string

2.12.4.1. account is created with no Paymethod

2.12.4.2. PS.PayType = DD

2.13. recurringSchedules

2.13.1. not provided

2.13.1.1. AllowAccountWithNoSchedule = false

2.13.1.1.1. 400 Error { "field":"recurringSchedules", "message":"At least 1 recurringSchedules is required." }

2.13.1.2. AllowAccountWithNoSchedule = true

2.13.2. provided more than 3

2.13.2.1. 400 Error { "field":"recurringSchedules", "message":"Maximum number of RecurringSchedules allowed is 3." }

2.13.3. recurringScheduleStartDate

2.13.3.1. not provided

2.13.3.1.1. 400 Error { "field":"recurringSchedules[i].recurringSchedulesStartDate", "message":"RecurringScheduleStartDate is required." }

2.13.3.2. invalid format (YYYY-MM-DD) provided DD-MM-YYYY, 01-Jan-2020

2.13.3.2.1. 400 Error { "field":"recurringSchedules[1].recurringSchedulesStartDate", "message":"RecurringSchedulesStartDate is invalid." }

2.13.3.3. recurringScheduleStartDate is before than accountStartDate

2.13.3.3.1. 400 Error { "field":"recurringSchedules[1].recurringSchedulesStartDate", "message":"RecurringScheduleStartDate must not before accountStartdate." }

2.13.3.4. 2 schedules have overlapping periods (startDate of the second PS before the first PS finishes)

2.13.3.4.1. 400 Error { "field":"recurringSchedules[1].recurringSchedulesStartDate", "message":"RecurringScheduleStartDate must not overlap into previous recurring schedule period." }

2.13.4. installment

2.13.4.1. not provided

2.13.4.1.1. 400 Error { "field":"recurringSchedules[1].installment", "message":"Installment is required." }

2.13.4.2. provided value is not valid (not numeric) characters, not number and dot, c (numeric (8,2))

2.13.4.2.1. 400 Error { "field":"recurringSchedules[1].installment", "message":"Installment is invalid." }

2.13.4.3. value is less than $1

2.13.4.3.1. 400 Error { "field":"recurringSchedules[1].installment", "message":"Installment must be greater than or equal to $1." }

2.13.5. frequency

2.13.5.1. not provided

2.13.5.1.1. 400 Error { "field":"recurringSchedules[1].frequency", "message":"Frequency is required." }

2.13.5.2. provided value is not valid valid values: weekly, fortnightly, monthly, four-weekly, monthly, bi-monthly, quarterly

2.13.5.2.1. 400 Error { "field":"recurringSchedules[i].frequency", "message":"frequency is invalid." }

2.13.6. numberOfPayments

2.13.6.1. One PaySchedule

2.13.6.1.1. provided

2.13.6.1.2. not provided

2.13.6.2. Several PaySchedules

2.13.6.2.1. the first PS

2.13.6.2.2. the last PS

2.13.6.3. not valid value provided (not Integer)

2.13.6.3.1. 400 Error { "field":"recurringSchedules[i].numberOfPayments", "message":"NumberOfPayments must be greater than zero." }

2.13.7. scheduleDescription not mandatory

2.13.7.1. value exceeds 50 characters (51)

2.13.7.1.1. 400 Error { "field":"recurringSchedules[1].scheduleDescription", "message":"ScheduleDescription must not exceed 50 characters." }

3. Successful request

3.1. Response Code is 201

3.2. Response includes all provided values

3.3. accountID is returned

3.4. if more than 1 PS created all PSs except the last one have calculated endDate based on numberOfPayments

3.5. if contractAmount has not been provided calculated value is returned

3.6. DB has a record with the same accountId and provided values (account table)

3.6.1. MinSubAmount = MinTermAmount = ContractAmount

3.6.2. StartDate of account saved in local time

3.7. DB has PS created

3.7.1. SchedulePayment has EndDate based on response

3.8. DB has Processing records created based on

3.9. If paymentMethodToken has been provided

3.9.1. All schedules has this PayMethod assigned

3.9.2. PS.PayType is based on paymethod from token

3.9.3. ELK CRM (Paid By field) has this payment method

3.9.4. Accountactivepaymethod is populated

4. Fixed Term

4.1. Months

4.1.1. One Payschedule

4.1.1.1. Valid

4.1.1.1.1. Term =1 Account Start Date = 03-01-2020 Contract Amount = $100

4.1.1.1.2. Term = 2 Account Start Date = 01-01-2020 Contract Amount = Empty

4.1.1.1.3. Schedule installments total exceed contract amount

4.1.1.2. Invalid

4.1.1.2.1. Term =1 Account Start Date = 01-01-2020 Contract Amount = $100

4.1.1.2.2. Schedule installment of one payschedule exceeds contract value

4.1.2. multiple payment

4.1.2.1. Valid

4.1.2.1.1. Term = 2 Account Start Date = 01-01-2020 Contract Amount = $200

4.1.2.1.2. Term = 2 Account Start Date = 01-01-2020 Contract Amount = Empty

4.1.2.1.3. Term = 8 Account Start Date = 01-01-2020 Contract Amount = Empty

4.1.2.2. Invalid

4.1.2.2.1. one schedule covers entire term

4.1.2.2.2. number of payments exceed contract amount

4.1.2.2.3. schedules do not cover contract amount

4.1.3. with payment break

4.1.3.1. Few days payment break

4.1.3.1.1. Term = 8 Account Start Date = 01-01-2020 Contract Amount = Empty

4.1.3.2. Payment Break at Beginning

4.1.3.2.1. Term = 12 Account Start Date = 01-01-2020 Contract Amount = 1200

4.1.3.3. Invalid

4.1.3.3.1. Payment break falls outside term

4.2. Payments

4.2.1. One Payschedule

4.2.1.1. Term = 6 Account.StartDate = 03-01-2020 Contract Amount = $600

4.2.1.1.1. Weekly

4.2.1.1.2. Fortnightly

4.2.1.1.3. FourWeekly

4.2.1.1.4. Monthly

4.2.1.1.5. Bi-Monthly

4.2.1.1.6. Quarterly

4.2.1.2. Term = 6 Account.StartDate = 03-01-2020 Contract Amount is empty

4.2.1.2.1. Weekly

4.2.1.2.2. Fortnightly

4.2.1.2.3. FourWeekly

4.2.1.2.4. Monthly

4.2.1.2.5. Bi-Monthly

4.2.1.2.6. Quarterly

4.2.1.3. Term = 1 Account.StartDate = 03-01-2020 Contract Amount = $50

4.2.1.3.1. Weekly

4.2.2. Multiple PaySchedules

4.2.2.1. The same frequency

4.2.2.1.1. Term = 6 Account.StartDate = 03-01-2020 Contract Amount = $600

4.2.2.1.2. Term = 6 Account.StartDate = 03-01-2020 Contract Amount is empty

4.2.2.2. Different frequency

4.2.2.2.1. Term = 6 Account.StartDate = 03-01-2020 Contract Amount = $600

4.2.2.2.2. Term = 6 Account.StartDate = 03-01-2020 Contract Amount = empty

4.2.2.3. Term = 6 Account.StartDate = 03-01-2020 Contract Amount = $600

4.2.2.3.1. PS1: StartDate = 03-01-2020 Installment = $100 Frequency = Weekly No. of Payments = 6 PS2: StartDate = 14-02-2020 Installment = $10 Frequency = Fortnightly No. of Payments = Empty

4.2.2.3.2. PS1: StartDate = 03-01-2020 Installment = $10 Frequency = Weekly No. of Payments = 6 PS2: StartDate = 14-02-2020 Installment = $10 Frequency = Fortnightly No. of Payments = Empty

4.2.2.3.3. PS1: StartDate = 04-02-2020 Installment = $100 Frequency = Weekly No. of Payments = 5 PS2: StartDate = 24-03-2020 Installment = $100 Frequency = Fortnightly No. of Payments = Empty

5. On Going

5.1. Months

5.1.1. One Payschedule

5.1.1.1. ACCOUNT.STARTDATE IN FUTURE & PS.STARTDATE > AC.STARTDATE Account.Startdate = (2020-01-01) ContractAmount = Null Term = 1

5.1.1.1.1. Weekly PY.startdate = (2020-01-15) Amount = 5

5.1.1.1.2. Fortnightly PY.startdate = (2020-01-15) Amount = 5

5.1.1.1.3. FourWeekly PY.startdate = (2020-01-15) Amount = 5

5.1.1.1.4. Monthly PY.startdate = (2020-01-06) Amount = 10

5.1.1.1.5. Bi-monthly PY.startdate = (2020-01-15) Amount = 5

5.1.1.1.6. Quarterly PY.startdate = (2020-01-15) Amount = 5

5.1.1.2. ACCOUNT.STARTDATE SAME AS PY.STARTDATE Account.Startdate = (2020-01-01) PY.startdate = (2020-01-01) ContractAmount = Null Term = 0

5.1.1.2.1. Weekly PY.startdate = (2020-01-01) Amount = 5

5.1.1.2.2. Fortnightly PY.startdate = (2020-01-01) Amount = 5

5.1.1.2.3. FourWeekly PY.startdate = (2020-01-01) Amount = 5

5.1.1.2.4. Monthly PY.startdate = (2020-01-01) Amount = 5

5.1.1.2.5. Bi-monthly PY.startdate = (2020-01-01) Amount = 5

5.1.1.2.6. Quarterly PY.startdate = (2020-01-01) Amount = 5

5.1.1.3. ACCOUNT.STARTDATE TODAY & AFTER CUTOFF TIME -where to check the cutoff time? - trust account Account.Startdate = DateToday ContractAmount = Null PY.startdate = DateToday Term = 1

5.1.1.3.1. Weekly PY.startdate = (2020-01-15) Amount = 5

5.1.1.3.2. Fortnightly PY.startdate = (2020-01-15) Amount = 5

5.1.1.3.3. FourWeekly PY.startdate = (2020-01-15) Amount = 5

5.1.1.3.4. Monthly PY.startdate = (2020-01-06) Amount = 10

5.1.1.3.5. Bi-monthly PY.startdate = (2020-01-15) Amount = 5

5.1.1.3.6. Quarterly PY.startdate = (2020-01-15) Amount = 5

5.1.2. Multiple Payschedules

5.1.2.1. ACCOUNT.STARTDATE IN FUTURE & PS.STARTDATE > A.STARTDATE 2 PAYSCHEDULE Account.Startdate = (2020-01-01) ContractAmount = Null Term = 1

5.1.2.1.1. PS1 Weekly PY.startdate = (2020-01-15) Amount = 5 No of Payments = 2 PS2 Weekly PY.startdate = (2020-01-29) Amount = 5 No of Payments = Null

5.1.2.1.2. PS1 Weekly PY.startdate = (2020-01-15) Amount = 5 No of Payments = 2 PS2 Monthly PY.startdate = (2020-01-29) Amount = 5 No of Payments = Null

5.1.2.2. ACCOUNT.STARTDATE SAME AS PY.STARTDATE 3 PAYSCHEDULE Account.Startdate = (2020-01-01) PY.startdate = (2020-01-01) ContractAmount = Null Term = 0

5.1.2.2.1. PS1 Weekly PY.startdate = (2020-01-01) Amount = 5 No of Payments = 2 PS2 Monthly PY.startdate = (2020-01-15) Amount = 5 No of Payments = 1 PS3 Weekly PY.startdate = (2020-02-15) Amount = 5 No of Payments = Null

5.1.2.2.2. PS1 Weekly PY.startdate = (2020-01-01) Amount = 5 No of Payments = 2 PS2 Monthly PY.startdate = (2020-01-15) Amount = 5 No of Payments = 3 PS3 Weekly PY.startdate = (2020-01-15) Amount = 5 No of Payments = Null

5.1.2.3. ACCOUNT.STARTDATE TODAY & AFTER CUTOFF TIME -Trustaccount.StartDateCutOffTimeInterval Account.Startdate = DateToday PY.startdate = DateToday ContractAmount = Null Term = 2

5.1.2.3.1. PS1 Weekly PY.startdate = (2020-01-01) Amount = 5 No of Payments = 2 PS2 Weekly PY.startdate = (2020-01-15) Amount = 5 No of Payments = Null

5.1.2.3.2. PS1 Weekly PY.startdate = (2020-01-01) Amount = 5 No of Payments = 2 PS2 Monthly PY.startdate = (2020-01-15) Amount = 5 No of Payments = Null

5.1.3. with payment break

5.1.3.1. same frequency Account.Startdate = DateToday PY.startdate = DateToday ContractAmount = Null Term = 2

5.1.3.1.1. PS1 Weekly PY.startdate = (2020-01-01) Amount = 5 No of Payments = 4 PS2 Weekly PY.startdate = (2020-02-15) Amount = 5 No of Payments = Null

5.1.3.2. break in few days Account.Startdate = DateToday PY.startdate = DateToday ContractAmount = Null Term = 2

5.1.3.2.1. PS1 Weekly PY.startdate = (2020-01-01) Amount = 5 No of Payments = 4 PS2 Monthly PY.startdate = (2020-02-05) Amount = 5 No of Payments = Null

5.2. Payments

5.2.1. One Payschedule

5.2.1.1. ACCOUNT.STARTDATE IN FUTURE & PS.STARTDATE > AC.STARTDATE Account.Startdate = (2020-01-01) ContractAmount = Null Term = 3

5.2.1.1.1. Weekly PY.startdate = (2020-01-15) Amount = 5

5.2.1.1.2. Fortnightly PY.startdate = (2020-01-15) Amount = 5

5.2.1.1.3. FourWeekly PY.startdate = (2020-01-15) Amount = 5

5.2.1.1.4. Monthly PY.startdate = (2020-01-06) Amount = 10

5.2.1.1.5. Bi-monthly PY.startdate = (2020-01-15) Amount = 5

5.2.1.1.6. Quarterly PY.startdate = (2020-01-15) Amount = 5

5.2.1.2. ACCOUNT.STARTDATE SAME AS PY.STARTDATE Account.Startdate = (2020-01-01) PY.startdate = (2020-01-01) ContractAmount = Null Term = 0

5.2.1.2.1. Weekly PY.startdate = (2020-01-01) Amount = 5

5.2.1.2.2. Fortnightly PY.startdate = (2020-01-01) Amount = 5

5.2.1.2.3. FourWeekly PY.startdate = (2020-01-01) Amount = 5

5.2.1.2.4. Monthly PY.startdate = (2020-01-01) Amount = 5

5.2.1.2.5. Bi-monthly PY.startdate = (2020-01-01) Amount = 5

5.2.1.2.6. Quarterly PY.startdate = (2020-01-01) Amount = 5

5.2.1.3. ACCOUNT.STARTDATE TODAY & AFTER CUTOFF TIME -where to check the cutoff time? Account.Startdate = DateToday ContractAmount = Null PY.startdate = DateToday Term = 1

5.2.1.3.1. Weekly PY.startdate = (2020-01-15) Amount = 5

5.2.1.3.2. Fortnightly PY.startdate = (2020-01-15) Amount = 5

5.2.1.3.3. FourWeekly PY.startdate = (2020-01-15) Amount = 5

5.2.1.3.4. Monthly PY.startdate = (2020-01-06) Amount = 10

5.2.1.3.5. Bi-monthly PY.startdate = (2020-01-15) Amount = 5

5.2.1.3.6. Quarterly PY.startdate = (2020-01-15) Amount = 5

5.2.2. Multiple Payschedules

5.2.2.1. ACCOUNT.STARTDATE IN FUTURE & PS.STARTDATE > A.STARTDATE 2 PAYSCHEDULE Account.Startdate = (2020-01-01) ContractAmount = Null Term = 5

5.2.2.1.1. PS1 Weekly PY.startdate = (2020-01-15) Amount = 5 No of Payments = 2 PS2 Weekly PY.startdate = (2020-01-29) Amount = 5 No of Payments = Null

5.2.2.1.2. PS1 Weekly PY.startdate = (2020-01-15) Amount = 5 No of Payments = 3 PS2 Monthly PY.startdate = (2020-01-29) Amount = 5 No of Payments = Null

5.2.2.2. ACCOUNT.STARTDATE SAME AS PY.STARTDATE 3 PAYSCHEDULE Account.Startdate = (2020-01-01) PY.startdate = (2020-01-01) ContractAmount = Null Term = 0

5.2.2.2.1. PS1 Weekly PY.startdate = (2020-01-01) Amount = 5 No of Payments = 2 PS2 Monthly PY.startdate = (2020-01-15) Amount = 5 No of Payments = 1 PS3 Weekly PY.startdate = (2020-02-15) Amount = 5 No of Payments = Null

5.2.2.2.2. PS1 Weekly PY.startdate = (2020-01-01) Amount = 5 No of Payments = 2 PS2 Monthly PY.startdate = (2020-01-15) Amount = 5 No of Payments = 3 PS3 Weekly PY.startdate = (2020-01-15) Amount = 5 No of Payments = Null

5.2.2.3. ACCOUNT.STARTDATE TODAY & AFTER CUTOFF TIME -where to check the cutoff time? Account.Startdate = DateToday PY.startdate = DateToday ContractAmount = Null Term = 3

5.2.2.3.1. PS1 Weekly PY.startdate = (2020-01-01) Amount = 5 No of Payments = 2 PS2 Weekly PY.startdate = (2020-01-15) Amount = 5 No of Payments = Null

5.2.2.3.2. PS1 Weekly PY.startdate = (2020-01-01) Amount = 5 No of Payments = 2 PS2 Monthly PY.startdate = (2020-01-15) Amount = 5 No of Payments = Null

5.2.3. with payment break

5.2.3.1. same frequency Account.Startdate = DateToday PY.startdate = DateToday ContractAmount = Null Term = 10

5.2.3.1.1. PS1 Weekly PY.startdate = (2020-01-01) Amount = 5 No of Payments = 4 PS2 Weekly PY.startdate = (2020-02-15) Amount = 5 No of Payments = Null

5.2.3.2. break in few days Account.Startdate = DateToday PY.startdate = DateToday ContractAmount = Null Term = 2

5.2.3.2.1. PS1 Weekly PY.startdate = (2020-01-01) Amount = 5 No of Payments = 4 PS2 Weekly PY.startdate = (2020-02-05) Amount = 5 No of Payments = Null