Creating an SLQuickCollect Link using a Stored Procedure to Send your Customer a Payment Request for an Invoice
Catalina’s SLQuickCollect is a way to send a request for payment to your customer as an email with a link to click to pay. Your customer simply clicks on it and pays (no need for a portal login or anything). The payment works through a PCI compliant payment processor and is automatically integrated back into Dynamic SL’s AR.
There are many ways to create SLQuickCollect links. One of which is calling a stored procedure by passing a few parameters.
The stored procedure is called: xct_spSLPaddInvoicePaymentRequest
The parameters to this proc is:
- @batNbr: The batch number of the invoice you want to send
- @refNbr: The invoice number you want to send
- @CustID: The customer who the link is going to be going to
- @paymentEmailList: A delimited list of email addresses the link will be sent to
- @siteID: (optional) For which configuration site to use (defaults to ‘SLPAY’)
- @setupID: (optional) The PayFabric setupID you are to send. If not passed, the default will be used from SLQuickCollect’s configuration
- @deviceID: (optional) The PayFabric deviceID you are to send. If not passed, the default will be used from SLQuickCollect’s configuration
You can call this stored procedure from most anything. You could call it from a trigger when an invoice is created. You can call it from a SL screen. Or even another application all together (like maybe excel that has a list of invoices to send)
Here is an example of how I added a button on the Invoice and Memo screen to send a SLQuickCollect link for a particular invoice.
Below, you can see where I created a button “Send SLQuickLink” that will take the current invoice on the screen and send a payment request link to the customer.
Below is the code behind the click event of the button. This will look at the current batNbr, refNbr (invoice number), custID, and get the email tied to the customer to send the link to that customer’s email.
Private Sub bPayLink_Click()
Dim SQLStr As String
Dim Csr_temp As Integer
Dim sCustID As String
Dim recfound As Integer
Dim maintflg As Integer
sCustID = GetObjectValue("ccustid")
SQLStr = "Customer_All " + SParm(sCustID)
serr = SqlFetch1(Csr_temp, SQLStr, bCustomer, LenB(bCustomer))
Dim lsSQL As String
Dim liCursor As Integer
lsSQL = "xct_spSLPaddInvoicePaymentRequest" & SParm(ThisScreen.cbatnbr.Text) & SParm(ThisScreen.crefnbr.Text) & SParm(ThisScreen.ccustid.Text) & SParm(bCustomer.EMailAddr) & SParm("SLPAY")
Call sql(liCursor, lsSQL)
Call SqlFree(liCursor)
MsgBox ("SLQuickLink Sent to CustID " + ThisScreen.ccustid.Text + " for invoice " + ThisScreen.crefnbr.Text)
End Sub