One Off Schedules

Get Started. It's Free
or sign up with your email address
One Off Schedules by Mind Map: One Off Schedules

1. GET

1.1. GET Single One Off Schedule

1.1.1. 200 OK

1.1.1.1. Adfitno and ScheduleID provided

1.1.1.1.1. { "oneOffSchedules":[ { "scheduleId":"12345678", "accountId":"AILL056H6", "dueDate":"2019-01-31", "amount":50.00, "scheduleDescription":"One-off schedule Jan-Nov 2019", "externalScheduleId":"S125810" }

1.1.2. 403: Forbidden

1.1.2.1. No access to Adfitno provided

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

1.2. GET List of One Off Schedules

1.2.1. 200 OK

1.2.1.1. Valid AdfitNo provided and no ScheduleID provided

1.2.1.1.1. populate all the list of one off schedules associated to the account provided

1.2.2. nextCursor

1.2.2.1. Default to retrieve from first record if nextCursor is not supplied

1.2.2.1.1. If NextCursor is supplied then records beginning from that place will be returned

1.2.3. limit

1.2.3.1. Default maximum limit value for returned records is 50

1.2.3.1.1. If limit of 51 is supplied then return 50

1.2.3.2. If more than 50 records, maximum value to be returned is 50

1.3. 404: Not Found

1.3.1. ScheduleID doesn't exist or not a One Off schedule

1.3.1.1. "message":"The requested resource could not be found."

1.3.2. Adfitno doesn't exist or is invalid

1.3.2.1. "message":"The requested resource could not be found."

1.4. 405 error method is not allowed

1.4.1. AccountID not provided

1.4.2. ScheduleID not provided

1.5. Validation

1.5.1. Records populated should be the same in DB

1.5.2. ScheduleID

1.5.2.1. DSElk.dbo.PaySchedule.ScheduleNo

1.5.3. AccountId

1.5.3.1. DSElk.dbo.Account.AdfitNo

1.5.4. DueDate

1.5.4.1. DSElk.dbo.PaySchedule.StartDate

1.5.5. Amount in 2 decimal place

1.5.5.1. DSElk.dbo.PaySchedule.Installment

1.5.6. ScheduleDescription

1.5.6.1. Description can populate up to 50 characters

1.5.6.2. DSElk.dbo.PaySchedule.PayDesc

1.5.7. ExternalScheduleID

1.5.7.1. DSElk.dbo.PaySchedule.ExternalIdentifier

2. DELETE

2.1. Successful Request

2.1.1. Response Code 200

2.1.2. { "message":"One-off schedule successfully deleted" }

2.1.3. Audit record is created

2.1.3.1. ============================================= Schedule Deleted ============================================= PayscheduleId => b17681c3-4702-407e-991f-00f2dc724f89 Class => ScheduleOneOff StartDate => 2020-05-01 ScheduleNo => 48129378 Installment => 3.00 Frequency => One off PaymentType => OP AccountId => f2c42857-a29a-4ec1-b438-23d8939dd731 PayScheduleLoadDate => 2020-03-19 ============================================= End =============================================

2.1.4. One off deleted should be removed in Payschedule tbl

2.1.5. Deleted One-off schedule added to Payschedule_deleted

2.1.6. Call notes created

2.1.6.1. Webservice variation request by <user> processed successfully. Deleted one-off pay schedule <externalScheduleId> effective on <effectiveDate>

2.2. Validation

2.2.1. 404 Error

2.2.1.1. ScheduleID exist but doesn't belong to the AccountID provided

2.2.1.1.1. { "message":"The requested resource could not be found." }

2.2.1.2. ScheduleID is not One-off schedule

2.2.1.2.1. { "message":"The requested resource could not be found." }

2.2.1.3. ScheduleID doesn't exist

2.2.1.3.1. { "message":"The requested resource could not be found." }

2.2.1.4. Account ID provided value doesn't exist

2.2.1.4.1. { "message":"The requested resource could not be found." }

2.2.1.5. AccountID not provided but ScheduleID provided

2.2.1.5.1. { "message":"The requested resource could not be found." }

2.2.1.6. One-off schedule already deleted

2.2.1.6.1. { "message":"The requested resource could not be found." }

2.2.2. 403 Error

2.2.2.1. One-off schedule is due today Trustaccount.cutofftime

2.2.2.1.1. before cut off time

2.2.2.1.2. after cut off time

2.2.2.2. One-off schedule is in the past

2.2.2.2.1. { "errorCode":"access_denied", "message":"Unable to process this request as scheduleId must be a future schedule." }

2.2.2.3. account is closed

2.2.2.3.1. { "errorCode":"access_denied", "message":"Unable to process this request as the account is not active." }

2.2.2.4. account provided but no permission

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

2.2.3. 405 error

2.2.3.1. ScheduleID not provided

2.2.3.2. AccountID and ScheduleID not provided

2.3. Smoke test

2.3.1. GetCustomerAccountByAccountId

2.3.1.1. deleted shouldn't populate

2.3.2. Get oneoff Schedule

2.3.2.1. deleted shouldn't populate

3. POST

3.1. API

3.1.1. 201 Created

3.1.1.1. Request Body

3.1.1.1.1. { "dueDate":"2020-01-31", "amount":50.00, "scheduleDescription":"Maintenance charges FY20", "externalScheduleId":"T125810" }

3.1.1.2. Response

3.1.1.2.1. { "scheduleId":"12345678", "accountId":"CWAUS999999", "dueDate":"2020-01-31", "amount":50.00, "scheduleDescription":"Recurring schedule Jan-Dec", "externalScheduleId":"T125810" }

3.1.1.3. Gateway model account -FA.customBankImportProcess

3.1.1.3.1. One off schedule successfully created

3.1.1.4. FullService account

3.1.1.4.1. One off schedule successfully created

3.1.1.5. Inactive Account is NOT NULL and facilityaccount.CanCollectForClosedAccount = True

3.1.1.5.1. should be able to create a Schedule

3.1.1.6. existing OP same amount and date

3.1.1.6.1. should be able to create a Schedule

3.1.2. 400 Bad Request

3.1.2.1. dueDate

3.1.2.1.1. no date provided

3.1.2.1.2. Invalid date format

3.1.2.1.3. Past date provided

3.1.2.1.4. startdate is today and after cutoff time (TA.cutofftimeinterval)

3.1.2.1.5. dueDate is >= today's date but earlier than account Start date

3.1.2.1.6. dueDate is too far

3.1.2.2. amount

3.1.2.2.1. amount is not provided

3.1.2.2.2. provide invalid (3 decimal place .000)

3.1.2.2.3. amount less than $1

3.1.2.2.4. max amount limit?

3.1.2.3. scheduleDescription

3.1.2.3.1. more than 50 characters

3.1.2.4. externalScheduleId

3.1.2.4.1. do we have invalid externalScheduleId like with special characters?

3.1.2.4.2. more than 50 characters

3.1.2.4.3. id already been used -either in payschedule or in payschedule_deleted

3.1.3. Account in URL

3.1.3.1. 403 Forbidden

3.1.3.1.1. account is not active

3.1.3.1.2. no permission

3.1.3.1.3. Inactive account (account.finishdate is NOT NULL) and facilityaccount.CanCollectForClosedAccount = false

3.1.3.1.4. account has ddStop = true

3.1.3.2. 404 Not found

3.1.3.2.1. Account doesn't exists

3.1.3.3. 405 method is not allowed

3.1.3.3.1. AccountID not provided

3.2. DB check

3.2.1. payschedule tbl

3.2.1.1. if AccountActivePaymethod

3.2.1.1.1. CC

3.2.1.1.2. DD

3.2.1.1.3. Null/Empty

3.2.2. data should be save in correct tbl and column

3.2.2.1. scheduleID

3.2.2.1.1. payschedule.ScheduleNo

3.2.2.2. dueDate

3.2.2.2.1. payschedule.StartDate

3.2.2.3. amount

3.2.2.3.1. payschedule.Installment

3.2.2.4. scheduleDescription

3.2.2.4.1. payschedule.PayDesc

3.2.2.4.2. spaces before and after should be truncated

3.2.2.5. externalIdentifierId

3.2.2.5.1. payschedule.ExternalIdentifer

3.2.2.5.2. spaces before and after should be truncated

3.3. ELK CRM

3.3.1. Audit created

3.3.2. Call Notes created

3.3.2.1. Note - Webservice variation request by <user> processed successfully. Added One-off pay schedule with external identifier<externalScheduleId>effective on <dueDate> notes : replace external identifier <externalScheduleId> with schedule no <ScheduleNo> if externalScheduleId not provided Purpose - DC CallHow - WSE

3.3.3. One-off schedule created

3.3.3.1. correct paymethod linked

3.3.4. total amount due updated

4. Common API Errors

4.1. 401 Unauthorized Unauthorized - Occurs when the authorization token provided is either expired or invalid

4.1.1. Expired/Invalid

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

4.2. 403 Forbidden - when the identity server client does not have access to the business - insufficient claims

4.2.1. Required Claims - not applicable at this moment ex. user read only access but trying to update

4.2.1.1. "errorCode": "required_claims", "message": "Unable to process this request due to insufficient client claims.", "errors": [ { "claim": "The name of the claim required." } ]

4.2.2. Access Denied

4.2.2.1. { "errorCode":"access_denied", "message":"Unable to process this request due to insufficient business permission." }

4.3. 404 Not Found Not Found - Occurs when the resource provided is not found

4.3.1. "message":"The resource provided could not be found"

4.4. 429 Too many requests More requests than the allowed request limit

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

4.4.2. Configuration, to be confirmed with Dev

4.5. 500 Internal Server Error Internal Server Error - Something went wrong on our end ex. Database locked

4.5.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."

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

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