added

New error returned by the SDK

We have added a new error to the SDK Enrollment errors to indicate when a card should be enrolled via the network bulk enrollment flow.

added

Enhanced Card Subscription

Added a new field, enrollmentType, to the card subscription entity to indicate whether the card subscription was created via single card enrollment or bulk enrollment flow.

added

Ability to check which webhook event is being emitted.

We've introduced support for the eventName in webhook headers, addressing customer concerns about the overhead our previous webhook implementation caused.

fixed

Cannot update the state of a bulk enrolled Card Subscription

We have updated the PATCH /card-subscriptions/<id> endpoint to return a 422 Unprocessable Entity status response when trying to change the state of a bulk enrolled Card Subscription. It should only be possible to update the state of a single enrolled Card Subscription.

added

New cardholder information

We have created a new endpoint GET /cards/<id>/cardholder to query information about the cardholder of a given card.
We have also updated the GET /cards (List cards) and GET /cards/<id>(Get card by Id) endpoints. These endpoints now include a new link in the_links section whenever cardholder information is available for a given card.

added

Card Subscription Webhook event types

We have new webhook event types cardsubscription.created and cardsubscription.updated. To provide customers with readily available information about the status of card subscription, and without the need for additional API calls.

improved

Transaction amounts now accurately adapt to transaction messages sent out of order

A new rules engine has been implemented to accurately calculate transaction amounts, even when authorization and clearing messages are received out of order from upstream sources.

improved

Transaction statuses are now independent of past state

Transaction status is now calculated independently of previous states, ensuring accurate updates based on the latest data received. Customers can rely on real-time status, with the most recent message determining the final state.

improved

Reduced failed transaction processing

Resolved an issue where 2-4% of Mastercard transactions were sent with missing required fields, preventing processing due to risks of de-duplication and message miscorrelation.

improved

Enhanced SDK initialisation resiliency

Increased SDK resiliency to initial request timeouts.