Standard Processes in collana pay: Feature Overview

  • Updated

collana pay is a payment integration for Microsoft Dynamics 365 Business Central, acting as middleware between BC and the connected payment service providers (PSPs). This article provides an overview of the processes included in the standard scope.

Note: If processes are planned that deviate from the described standard, this should be communicated early – so it can be assessed in time whether a customization by the partner is necessary.

Payment Processing

collana pay supports payment processing from the following documents in Business Central. A collana pay payment method assigned to the document is required in each case.

Document Type Direction Note
Sales Order Capture Release required before posting
Sales Invoice Capture Direct invoice without prior order
Sales Return Order Refund / Credit Refund via return document
Sales Credit Memo Refund / Credit Refund against a posted invoice

Capture

The capture timing can be configured individually per payment method line. The following options are available:

  • manually
  • on release
  • on posting
  • via job queue

Partial captures are supported if the PSP allows them.

Automatic Capture

AutoCapture means that the PSP automatically performs the capture immediately after authorization (reservation) – without requiring a separate capture command to be sent. Not all PSPs support AutoCapture.

  • copal: PspAutoCaptureEnabled active
  • BC: Initial transaction status set to Posted

Late Automatic Capture

Late automatic capture triggers the capture automatically shortly before the PSP-side reservation period expires.

  • BC: Option for late automatic capture active

Automatic Reservation Release (Void)

A void cancels an existing reservation at the PSP. It can be triggered automatically in two scenarios: when a sales order is partially cancelled and the reserved amount exceeds the remaining order value, or when an order is deleted. If no capture entry exists at the time of the void, the entire reserved amount is cancelled.

  • BC: Automatic PSP Cancellation Enabled active in the collana pay setup
  • copal: PspAutoVoidEnabled active

Refunds and Credits

Refunds via credit memos and return orders are fully supported in the standard. The timing can be configured per payment method:

  • manually
  • on posting
  • via job queue

Partial refunds are supported if the PSP allows them.

collana pay automatically distinguishes between two types of refunds:

  • Refund – Cart-dependent refund. Used when the original transaction was collected regularly via collana pay.
  • Credit – Cart-independent refund. Automatically selected for Advanced Import transactions, for follow-up credits on already credited transactions, and for credit memos or return orders containing G/L account lines that were not known to the PSP at the time of the original transaction.
  • copal: AllowRefund active
  • copal: AllowCredit active
  • BC: Option Credit Allowed active in the respective payment method line (for credits)

Starting Payments from BC

A typical use case is Pay By Link: a payment link is generated and sent to the customer by email. The customer completes the payment independently via the link.

Payment processing can also be initiated via Start Payment in BC. For the redirect integration, three redirect URLs must be stored in the collana pay setup (success, error, cancel).

  • BC: Option Start Payment active

Further information on Pay By Link can be found in the article Pay By Link – Starting Payments and Sending Payment Links in Business Central.

Recurring Payments

Recurring Payments enable regular charges based on mandates – without any interaction required from the customer. Mandates are managed in BC and assigned to the respective customer.

Further information can be found in the article Recurring Payments – Captures Without Re-authorization by the Customer.

  • copal: AllowRecurringPayments active
  • BC: Option Recurring Payment active
Note: Recurring Payments cannot be combined with reservation renewals and Advanced Import.

Cart Update

The Cart Update allows changes to sales lines after a reservation has been made to be transmitted to the PSP. To do this, the document is released again after the change. If posted directly without re-releasing, an error message appears.

Note: The Cart Update is not supported by all PSPs and is not available at every process step. For some PSPs it is only available up to the Prepare stage; for others it is also available in the Reserve status.
  • BC: Option Allow Cart Update active
  • copal: CartUpdateAllowed active

Reservation Renewal

For orders where the PSP-side reservation period is at risk of expiring, collana pay offers an automatic reservation renewal. A job checks which reservations are about to expire and automatically submits new reserve requests.

Note: Reservation renewal cannot be combined with Recurring Payments and Advanced Import.
  • BC: Option Allow Reservation Renewal active
  • copal: AllowReservationRenewal active

No Cart

In No Cart mode, no cart object is transmitted to the PSP – only the total amount. This mode reduces the available feature set: Cart Update, Refunds, and Recurring Payments are not available in this mode.

  • BC: Option Without Cart active
  • copal: DisableCartValidation active for the relevant interactions

Further information can be found in the article No Cart – Communication Without Cart.

Additional Supported BC Processes

  • Line discounts
  • Vouchers
    • as a resource
  • Shipping costs
    • as an item
    • as a resource
Note: To use vouchers and shipping costs as resources, the corresponding collana pay subtype must be selected on the resource.

Unsupported BC Processes

The following standard BC features are not supported for documents with a collana pay payment method:

  • Invoice discounts (Invoice Discount Amount)
  • Payment discounts (Payment Discount %)
  • Prepayment discounts (Prepayment %)
  • Combined shipments (Combined Shipments)

These restrictions apply exclusively to documents where a collana pay payment method is assigned.