1. Casual Payments
1.1. SOAP
1.1.1. Get Casual Payments by Payment Ref
1.1.1.1. Ideal Request/Response
1.1.1.1.1. https://oc-cert.services.debitsuccess.com/DsWebService/DSServices.svc/basic
1.1.1.1.2. Response 200 OK
1.1.1.2. A new field "Settlement date" should be visible in the response.
1.1.1.2.1. If the settlement is not Run it should display as "NULL"
1.1.1.2.2. If the Payout Date is present , should display the same .
1.1.1.2.3. Verify the settlement date is populated for already existing payments as well.
1.1.2. GET CASUAL PAYMENT TOKEN
1.1.2.1. Request
1.1.2.1.1. Business Account ID
1.1.2.1.2. Amount
1.1.2.1.3. Callback URL
1.1.2.1.4. Payment Note
1.1.2.1.5. Payment Ref
1.1.2.2. Response
1.1.2.2.1. Payment Form URL
1.1.2.2.2. Token
1.1.2.2.3. Valid To
1.1.2.2.4. Webhook Token
1.1.2.3. 200 OK
1.1.2.3.1. { "token": "KBpE6YKu", "webhookToken": "hnYzjH2S", "validTo":"2021-01-12TT01:59:59.000Z", "paymentFormURL": "https://oc-qa-sk.debitsuccess.com/PayNow/C/KBpE6YKu" }
1.1.2.4. Validations
1.1.2.4.1. 400 Bad Request
1.1.2.4.2. QUESTIONS
1.1.2.5. Common Error Codes
1.1.2.5.1. 401 Unauthorized
1.1.2.5.2. 403 Forbidden
1.1.2.5.3. 404 Not Found
1.1.2.5.4. 422 Unprocessable Entity
1.1.2.6. DB Checks
1.1.2.6.1. Paynow.CasualPaymentToken
1.1.2.6.2. One off Schedule
1.1.2.6.3. dbo.facilityaccount.EnabledforCreditCardPayments
1.1.2.7. ELK Checks
1.1.2.7.1. Transactions updated
1.1.2.7.2. call notes updated
1.1.2.7.3. expect to create One Off schedule
1.2. REST
1.2.1. GetCasualPaymentsByPaymentRef
1.2.1.1. Ideal Request/Response
1.2.1.1.1. Request
1.2.1.1.2. Response
1.2.1.2. Scenarios
1.2.1.2.1. positive Response validation
1.2.1.2.2. Negative Response Validation
1.2.1.2.3. Payment status
1.2.1.2.4. commissions
1.2.1.2.5. Payment Type
1.2.1.3. Common Error Codes
1.2.1.3.1. Must have token in order to run request Otherwise: 401 Unauthorized
1.2.1.3.2. If client does not have permission to businessAccountID provided then 403: Forbidden (for example: QK7662)
1.2.1.3.3. If the businessAccountID does not exist. 404: Not found(double check) remove
1.2.1.3.4. 500: Internal Server Error Lock database to test
1.2.1.3.5. 503: Service Unavailable Turn off CustomerServices in Application Pool to Test
2. GetPaymentTokenLink
2.1. Token
2.1.1. Must have token in order to run request Otherwise: 401 Unauthorized
2.1.1.1. "message": "Authorization has been denied for this request."
2.2. Validations 400 - Bad Request
2.2.1. AccountID in URL
2.2.1.1. not provided in URL
2.2.1.1.1. 404 Not found
2.2.1.2. account doesn't exist/no access
2.2.1.2.1. 403 Error { "errorCode": "access_denied", "message": "Unable to process this request as you do not have access to the account associated to this request." }
2.2.1.3. multiple active account
2.2.1.3.1. Error 422 Unable to process the request for this account.
2.2.1.4. 1 account is active and another one is PendingCancellation = 1
2.2.1.4.1. Error 422 Unable to process the request for this account. Please contact Debitsuccess
2.2.1.5. one is inactive/closed and another one is pendingcancellation = 1
2.2.1.5.1. should be able to get token
2.2.1.6. No active account, all are closed account
2.2.1.6.1. cancollectforclosedaccount = 0
2.2.1.6.2. cancollectforclosedaccount = 1
2.2.1.7. to check for suspensions, DDstop
2.2.1.7.1. should not blocked
2.2.2. Amount
2.2.2.1. If Amount field is provide with an Invalid value Eg: 1235.2562
2.2.2.1.1. "field":"amount", "message":"Amount is invalid."
2.2.2.2. If Amount filed is not provided
2.2.2.2.1. "field":"amount", "message":"Amount is required."
2.2.2.3. if facilityaccount settings has max/min limit
2.2.2.3.1. If the Amount provided exceeds the max limit
2.2.2.3.2. If the provided amount is less than the min limit
2.2.2.4. If facility account settings does not have max/min limit
2.2.2.4.1. If Trust account settings have max/min limit
2.2.2.5. If facility account settings does not have max/min limit
2.2.2.5.1. If Trust account settings does not have max/min limit
2.2.2.6. If facility account settings does not have max/min limit
2.2.2.6.1. If Trust account settings does not have max/min limit
2.2.2.7. If facility account setting does not have max/min limit
2.2.2.7.1. If Trust account settings does not have max/min limit
2.2.2.8. If the amount provided is more than the out standing balance when account is set to Fixed term
2.2.2.8.1. "message":"Amount cannot be more than the outstanding balance when account is set to fixed term."
2.2.3. createOneOffCharge
2.2.3.1. If the value for the field is not provided
2.2.3.1.1. "message":"CreateOneOffCharge is required."
2.2.3.2. If Account Under Gateway
2.2.3.2.1. CreateOneOffCharge is false
2.2.4. PaymentNote
2.2.4.1. If CreateOneoffCharge is set to true and we did not provide the PaymentNote
2.2.4.1.1. "message":"PaymentNote is required if CreateOneOffCharge is true."
2.2.4.2. If paymentNote provided exceeds more than 30 characters
2.2.4.2.1. "message":"PaymentNote cannot exceed 30 characters."
2.2.4.3. Characters present in Payment Note
2.2.4.3.1. Acceptable Characters
2.2.4.3.2. Characters present other than the above mentioned should be rejected and error message should be shown.
2.2.4.4. Provide a paymentNote with spaces in the beginning and end So that the payment note exceeding 30 characters including spaces.
2.2.4.4.1. Should go through without showing exceeding 30 characters error.
2.2.5. CallbackURL
2.2.5.1. If value for call back url is not provided that is both emty string and field it self
2.2.5.1.1. "message":"CallbackURL is required."
2.2.5.2. If value provided exceeds 256 characters
2.2.5.2.1. "message":"CallbackURL cannot exceed 256 characters."
2.2.5.3. If the value provided is not an url
2.2.5.3.1. "message":"CallbackURL is invalid. Ensure URL is correctly formatted. Example: https://www.debitsuccess.com"
2.2.5.4. If the value provided is 'http' request instead of 'https'
2.2.5.4.1. "message":"CallbackURL is invalid. Ensure URL is correctly formatted. Example: https://www.debitsuccess.com"
2.2.6. Multiple Requests
2.2.6.1. Fixed Term
2.2.6.1.1. The payment made after crossing the contract amount should throw an error. For example: A fixed account with contract amount 20 and I am requesting three tokens with amount as 10. The third payment request should be failed as it is greater than the contract amount. (10 + 10 + 10 = 30 > 20)
2.3. Request
2.3.1. Amount
2.3.1.1. Required
2.3.2. CreateOneOffCharge
2.3.2.1. Required
2.3.3. PaymentNote
2.3.3.1. Optional*
2.3.3.1.1. It becomes required when createOneOffCharge is true
2.3.4. CallbackURL
2.3.4.1. Required
2.3.5. Request URL structure
2.3.5.1. https://%env%.debitsuccess.com/customerservices/v1.0/accounts/%accountId%/PaymentTokens
2.4. Response
2.4.1. token
2.4.1.1. Auto-generated token
2.4.2. WebhookToken
2.4.2.1. Auto-generated webhook token
2.4.3. ValidTo
2.4.3.1. The expiry date and time of the token
2.4.4. PaymentFormURL
2.4.4.1. URL where customer can make a payment or update payment details. It will have the token appended
2.5. 200: OK Response
2.5.1. { "token": "KBpE6YKu", "webhookToken": "hnYzjH2S", "validTo":"2021-01-12TT01:59:59.000Z", "paymentFormURL": "https://oc-qa-sk.debitsuccess.com/PayNow/T/KBpE6YKu" }
2.5.2. Multiple Requests
2.5.2.1. OnGoing
2.5.2.1.1. All the payments should be possible as of the implementation now.
2.6. DB Validation
2.6.1. token
2.6.1.1. Check whether the same token we got in response got populated in the table
2.6.1.1.1. ColoumnName: "Token" Table Name : "dbo.PayNowToken"
2.6.2. WebhookToken
2.6.2.1. Check whether the same WebhookToken we got in response got populated in the table
2.6.2.1.1. ColoumnName: "Webhook Token" Table Name : "dbo.PayNowToken"
2.6.3. ValidTo
2.6.3.1. ColoumnName: "Status" Table Name : "dbo.PayNowToken"
2.6.3.2. Check whether the same ValidTo we got in response got populated in the table
2.6.3.2.1. ColoumnName: "ValidTo" Table Name : "dbo.PayNowToken"
2.6.3.3. Even If we did not use the url we received and it crossed the "ValidTo" value
2.6.3.3.1. The Status will be still "IS". It will change to "EX" once we use the url.
2.6.4. PaymentFormURL
2.6.4.1. Check whether the status of the record got updated once we use the "PaymentFormURL"
2.6.4.1.1. The URL provided should be accessible in all browser.
2.6.4.1.2. If the URL is used and payment is made
2.6.4.1.3. If the URL is used and payment is not made
2.6.5. SmokeTest
2.6.5.1. After a successful payment
2.6.5.1.1. A record is expected to be inserted in the docket and trans tbl with respective amount
2.6.5.1.2. Dselk CRM>trans tab
2.6.6. paymentNote
2.6.6.1. ColoumnName: "PaymentNote" Table Name : "dbo.PayNowToken"
2.6.7. dbo.facilityaccount.EnabledforCreditCardPayments
2.6.7.1. = 1
2.6.7.1.1. Allows payments to be made or payment methods to be created
2.6.7.2. = 0
2.6.7.2.1. Error thrown on API and Paynow front
2.6.7.2.2. API
2.6.7.2.3. Paynow
2.7. Common Error Codes
2.7.1. If sending more requests than is allowed then 429: Too many requests
2.7.1.1. Configuration. To be confirmed with Dev
2.7.1.2. "message": "You have exceeded the maximum limit of request allowed. Please try your request again in a moment."
2.7.2. If client does not have permission to business provided then 403: Forbidden
2.7.2.1. "errorCode":"access_denied", "message":"Unable to process this request as you do not have access to the customer associated to this request."
2.7.3. 500: Internal Server Error Lock database to test
2.7.4. 503: Service Unavailable Turn off CustomerServices in Application Pool to Test
2.7.5. NotFound
2.7.5.1. 404 : If the provided resourse like AccountId was not found
2.7.5.1.1. "message":"The requested resource could not be found."
2.7.6. Unprocessable Entity
2.7.6.1. 422 - When the resource provided is not supported
2.7.6.1.1. "message": "Unable to process this request as the account is not active."
2.7.7. 401 : Error Code should be added
2.8. Multiple Requests
2.8.1. OnGoing
2.8.1.1. All the payments should be possible as of the implementation now
2.9. Paynow page
2.9.1. multiple Accounts same Adfitno AND FacilityAccount.CanCollectForClosedAccount = 1
2.9.1.1. ALL or more than 1 active account
2.9.1.1.1. Payment request rejected
2.9.1.1.2. Error message in the first page
2.9.1.1.3. We can’t continue with the payment because we are unable to process it. Please try again or contact customer service.
2.9.1.2. 1 active and 1 closed Account (account.finishdate NOT Null) and Pendingcancellation = 0
2.9.1.2.1. allocate the payment to active account
2.9.1.2.2. Save payment method as primary is selected
2.9.1.2.3. Note: to check what to consider if cancelreason is NULL (would it be pendingcancellation = 1 or 0?
2.9.1.3. 1 active and one is finishdate not null with pendingcancellation = 1
2.9.1.3.1. We can’t continue with the payment because we are unable to process it. Please try again or contact customer service.
2.9.1.4. 1 closed account and one is finishdate not null with pendingcancellation = 1
2.9.1.4.1. allocate the payment to account with pending cancellation
2.9.1.4.2. Save payment method as primary is selected
2.9.1.5. No active account, all are closed account
2.9.1.5.1. allocate the payment to recently closed account
2.9.1.5.2. Save payment method as primary is selected
2.9.1.6. Account doesn't exist
2.9.1.6.1. We can’t continue with the payment because we can't identify the account from the information you have provided. Please try again or contact customer service.
2.9.2. multiple Accounts same Adfitno AND FacilityAccount.CanCollectForClosedAccount = 0
2.9.2.1. ALL or more than 1 active account
2.9.2.1.1. Payment request rejected
2.9.2.1.2. We can’t continue with the payment because we are unable to process it. Please try again or contact customer service.
2.9.2.1.3. Save payment method as primary is selected
2.9.2.2. 1 active and 1 closed Account (account.finishdate NOT Null)
2.9.2.2.1. allocate the payment to active account
2.9.2.2.2. Save payment method as primary is selected
2.9.2.3. 1 active and one is finishdate not null with pendingcancellation = 1
2.9.2.3.1. We can’t continue with the payment because we are unable to process it. Please try again or contact customer service.
2.9.2.4. 1 closed account and one is finishdate not null with pendingcancellation = 1
2.9.2.4.1. allocate the payment to account with pending cancellation
2.9.2.4.2. Save payment method as primary is selected
2.9.2.5. No active account, all are closed account
2.9.2.5.1. We can’t continue with the payment because this account is not open for receiving payments. Please try again or contact customer service.
2.9.3. :question: EnabledForCreditCardPayments is turn off facilityaccount.EnabledForCreditCardPayments = 0
2.9.3.1. Yes
2.9.3.1.1. should be able to get token and make a payment
2.9.3.1.2. should be able to do Account Payment
2.9.3.1.3. should be able to do Casual Payment
2.9.3.2. No
2.9.3.2.1. We can’t continue with the payment because business does not allow Credit card payments
2.9.4. BillNext Date related scenarios
2.9.4.1. BllNext date is today
2.9.4.1.1. CreateOneOffCharge is set to true
2.9.4.1.2. CreateOneOffCharge is set to false
2.9.4.1.3. Consumer initiated Payment (Initiate a payment request without a token)
2.9.4.2. BillNext date is in future
2.9.4.2.1. CreateOneOffCharge is set to true
2.9.4.2.2. CreateOneOffCharge is set to false
2.9.4.2.3. Consumer initiated Payment (Initiate a payment request without a token)
3. Web Pages
3.1. Enroll an account without Payment Method
3.1.1. Credit Card payment flow with Token
3.1.1.1. Launch the payment token link generated for Credit Card payment method type, and enter the Credit Card details
3.1.1.1.1. Preferred payment method checkbox is **Checked**
3.1.1.1.2. Preferred payment method checkbox is **Unchecked**
3.1.2. Credit Card payment flow without Token (Consumer initiated payment)
3.1.2.1. Launch Pay Now url, and provide Adfit number & Last Name, and then click on Next button after selecting Credit Card payment method, and enter the Credit Card details
3.1.2.1.1. Preferred payment method checkbox is **Checked**
3.1.2.1.2. Preferred payment method checkbox is **Unchecked**
3.2. Enroll an account with Payment Method
3.2.1. Credit Card payment flow with Token
3.2.1.1. Launch the payment token link generated for Credit Card payment method type, and enter the Credit Card details
3.2.1.1.1. Use Existing Credit Card, and then enter CVV
3.2.1.1.2. Use New Credit Card, and enter CC details
3.2.2. Credit Card payment flow without Token (Consumer initiated payment)
3.2.2.1. Launch Pay Now url, and provide Adfit number & Last Name, and then click on Next button after selecting Credit Card payment method
3.2.2.1.1. Use Existing Credit Card, and enter amount & CVV
3.2.2.1.2. Use New Credit Card, and enter amount & CC details
3.3. Update Payment Method
3.3.1. Update Credit Card payment method
3.3.1.1. Launch the payment token link generated to update Credit Card payment method, and then enter the Credit Card details
3.3.1.1.1. Verify that the Terms and Conditions are displayed with the checkbox on Save Payment Details page
3.3.2. Update Bank Account payment method
3.3.2.1. Launch the payment token link generated to update Bank Account payment method, and then enter the Bank Account details
3.3.2.1.1. Verify that the Terms and Conditions are displayed with the checkbox on Save Payment Details page
3.3.3. Update CC & BA payment methods
3.3.3.1. Launch the payment token link generated to update Both payment methods
3.3.3.1.1. Credit Card flow
3.3.3.1.2. Bank Account flow
3.4. Bank Account payment flow (Consumer initiated payment)
3.4.1. Launch Pay Now url, and provide Adfit number & Last Name, and then click on Next button after selecting Direct Transfer payment method
3.4.1.1. Provide amount and email, and then click Next
3.4.1.1.1. Verify that user is able to make a BA payment successfully
3.5. Page Resolution
3.5.1. The Links Terminals don't support scrolling, so verify that the PayNow pages are correctly displayed in this resolution W: 832 H: 846
3.5.2. The Clubwise Terminals don't support scrolling, so verify that the PayNow pages are correctly displayed in this mobile resolution W: 400 H: 900
3.6. Browsers
3.6.1. Chrome
3.6.2. Firefox
3.6.3. Edge
3.6.4. IE7
3.6.4.1. In order to test these scenarios in IE7 browser, follow these steps: 1. Open Microsoft Edge and navigate to the website you want to view in Internet Explorer mode. 2. Click the three dots in the upper right corner of the browser window, and select Reload in Internet Explorer Mode. 3. Now open Run window, and go to %systemroot%\system32\f12\IEChooser.exe 4. Select the page uner testing, and then change the 'Document Mode Emulated' to IE7.