Release Notes
v2.20.4 (Winter '23)
refund creation & processing improvements we have enhanced refund creation and processing in order to allow our customers to scale their operations why this feature is so important previously the refund process was only available from the ‘refund’ button on the payment record, only allowing users to process a single refund at a time customers are increasingly likely to want to automate this process to accommodate larger volumes of refund transactions, either within a flow or other process within salesforce, to be able to create the refund records and then send them to their psp for processing with minimal clicks from users how it works refund records can now be created directly in salesforce which means that you can create them using a flow, manually or via a batch class when creating a refund record you must populate the following fields payment lookup to the payment record to which the refund relates and with a status of ‘collected from customer’ payment method this must be the same as the original payment method on the payment amount this cannot be more than the original payment amount you can partially refund, but not process more than was originally taken in order to process a refund, the following must be true on the record status equals “new” or ”failed” the refund date should be today or less than today the associated payment record should have the status ‘collected from customer’ processing refunds can be done in the following ways’ from the payment record to which the refund relates from the refund tab by selecting the required records (up to 200 at a time) directly from the refund record via a batch class via a scheduled job set up you must assign the refund permissions to anyone in your organisation that requires it permission set details asperato refund refund read, create, edit if you are upgrading from previous versions of asperato one, you must add the picklist value ‘new’ to the refund stage c field on the asp refund c object and mark this value as ‘default’ ideally it should be at the top of the list so you may need to reorder your values for this picklist you will also need to add the button ‘process refund’ to the list view layout for the same object and on the refund page the ‘process refund’ button is in ‘mobile & lightning quick actions’ optional set up for automation if you want to schedule the refund job to process refund records automatically, or even create and process refund records automatically, then you can choose to do the following steps the apex job to process refunds is a separate job to the existing asperato repeat payments scheduled job it will need to be created and scheduled separately scheduling the refund job to process all refund records with a status of ‘new’ can be done in one of the following two ways schedule from within apex classes > schedule apex job name aspertorefundsjob apex class processrefundsschedule select frequency as required if you require the job to run more than once a day, schedule from within developer console using the apex code below (set your own cron expression as per frequency required) string cronexpression ='0 0 ?'; string refundsjob = system schedule('asperato refunds job', cronexpression, new asp04 processrefundsschedule()); system debug(' asperato one repeat payment job scheduled with id ' + refundsjob); the following code can be used to create and process refund records via the batch class this is done by using the payment id and amount, then processing the refund records which are in the status ‘new’ to select refund records via the batch job with a status of ‘failed’ the record id of the failed records must be passed directly into the batch, they won’t be picked up automatically failed records can alternatively be submitted via the list view or via the record itself once the reason for failure has been addressed the refund records will only be picked up with the refund date is today or less, and the payment status is ‘collected from customer’ map\<id, decimal\> paymentidstorefundamountmap = new map\<id, decimal\>(); paymentidstorefundamountmap put(payment id, 20); batchsendrefundbypayment refundbatch= new batchsendrefundbypayment(paymentidstorefundamountmap); database executebatch(refundbatch); using a batch class to process refunds can be done with the following code (the same conditions apply to this as with processing refunds in other ways) batchsendrefunds refundbatch = new batchsendrefunds(new list\<id\> {refundpayment id}); //change the id from list of refund ids database executebatch(refundbatch); process payments now automated payments can now be processed using a button click, rather than waiting for the scheduled job why this feature is so important processing automated payments (payments with an authorisation attached) could previously be scheduled to be run but could never be run 'on demand' in this release we have added this ability so that you can be more flexible with when and how your automated payment collections are processed how it works you can process payment collections with an authorisation quickly and without waiting for the scheduled job to run by using the 'process payments now' button on the payments list view simply select the required payments from the list view and then hit the button to process in order to be eligible to be processed using this button the same criteria applies as for the 'repeat payment scheduled job', the payment must have an 'in force' authorisation attached to it, be in a status of 'awaiting submission' and have a date of today or earlier set up to use the 'process payments now' button, on upgrade, please navigate to set up > object manager > payment (asp04 payment c) > list view buttons > edit and then select 'process payments now' to be included on the list view update 'pay now' and 'add payment method' images why this feature is important providing your customers with an image for ‘pay now’ and ‘add payment method’ which is unique to your business allows you to personalise your customer’s journey where you need to how it works in previous releases we have provided an out of the box image for pay now and add payment method on the payment and authorisation records respectively this could be amended but it required creating a new field to do this so we have simplified that process for you by allowing you to upload your own image more easily this image is displayed on the authorisation and payment records in the field ‘authorisation image’ and ‘pay now image’ simply decide how you want to expose this image to your end customers for them to create authorisation and payment details with minimal clicks amending the pay now image to use your own image, all you need to do is navigate to set up → static resources, and add your own image/s called authimage and/or paynowimage the naming must exactly match these or it will not work the size of the image is 150 wide and the height will be taken from the image you upload so bear that in mind for correct rendering of any images then go to setup → custom settings → asperato one settings and check the ‘use custom auth image’ checkbox your custom image will now be displayed on the authorisation or payment record packaged reports and dashboard changes in our previous 2 19 release, we created some packaged dynamic dashboards in this release, we have moved those to a separate package so that people running dynamic dashboards already in their org will not hit the org limits of 5 dashboards when installing core asperato one failed collections failed/successful collections card details expiring in the next 3 months failed payments failed/successful payments note these reports will only have data within them if outbound payments is being used within the organisation note if you have more than 5 dynamic dashboards in your organisation already, when you come to install the new extension package you will need to mark existing ones as static dashboards in order to install this you can contact our support team for the installation link for this package outbound (supplier/vendor) payments asperato have built an outbound payments feature in conjunction with financialforce to automate the payments to third party suppliers/ vendors, or expense payments to staff this functionality drops the reliance on downloading and uploading bank format files, instead making payments directly to your vendors via apis from within salesforce in versions 2 18 1 through to 2 20, this is available to financialforce customers using the financialforce and asperato integration package we are looking for early adopters at this stage to upgrade to this exciting new feature and provide feedback we’re also interested in speaking to customers wishing to use this feature outside of financialforce, for example to automate expense payments or payable invoices from another on platform software if you are interested in being an early adopter or understanding more about what this feature entails contact jodi\@asperato com mailto\ jodi\@asperato com for financialforce customers go to our getting started guide https //docs google com/document/d/1ycwocjgghmayefnjbat64qn7uzx1mcvd3z0nqoiwjoe/edit#heading=h 7bvvoe6nsn3a for help and guidance bug fixes permission set issue for standard user in versions 2 18 1 and 2 19 there was an issue with the permission set asperato standard user which meant that users with this permission set were unable to process payments against authorisations without hitting an error we have fixed that in 2 20 and so users with the asperato standard permission set can now do this how to upgrade to r2 20 upgrade to the latest version 2 20 4 from appexchange https //appexchange salesforce com/listingdetail?listingid=a0n3a00000ecronuaj\&preview=%222022 12 05t10%3a14%3a59 000z%22& ga=2 19935928 1652704262 1670235182 502290017 1670235182\&tab=e or with link here https //login salesforce com/packaging/installpackage apexp?p0=04t1n0000028o9a https //login salesforce com/packaging/installpackage apexp?p0=04t1n0000028o9a https //login salesforce com/packaging/installpackage apexp?p0=04t1n0000021l09 the below table is a summary of manual upgrade steps required from version 2 19 to 2 20 (you may need to scroll across in the image depending on your screen size) add picklist values object field add /remove value mark as default? refund c refund stage c add new true add button on list view object list view button name payment c process payments now refund c process refund change in layout object page layout add /remove field marked required? payment c payment outbound layout remove payment route options c false refund c refund layout amount c true refund c refund layout payment date c true refund c refund layout payment c true refund c refund layout add first name c false refund c refund layout add last name c false refund c refund layout add company name c false refund c refund layout remove direct debit error code c false refund c refund layout add payment route c true refund c refund layout add actual refund date c false read only add button on detail view object page layout mobile & lightning action refund c refund layout process refund on detail refund c refund layout edit (standard button) other considerations if you are running a package older than 2 16 then refer release notes for all the releases in between to know the configurations for features released in between up to release 2 17 record type changes in version 2 18 1 we made some changes to introduce two new record types of inbound and outbound to our payment and authorisation objects the current collections functionality is now classed as a record type of inbound you must add the correct record type to any existing asperato user’s profiles upon upgrade to version 2 18 1 and beyond if you are not using outbound payments simply remove the outbound record type from the payment and authorisation objects ( steps on how to do this outlined in the knowledge article here) https //payonomy freshdesk com/support/solutions/articles/43000723282 removing outbound record types from payments authorisations https //payonomy freshdesk com/support/solutions/articles/43000723282 removing outbound record types from payments authorisations