v2.0.17

This release includes breaking changes. The notification log and stored payment method types now match what the API returns, and OCR results have new amount fields. See September 22, 2026, September 29, 2026, October 1, 2026, October 2, 2026, and October 5, 2026 for more information.

Notification log retry methods return new types

notificationlogs.retry_notification_log now returns Result<NotificationRetryResponse, ApiError> instead of Result<NotificationLogDetail, ApiError>. NotificationRetryResponse has a single message field. notificationlogs.bulk_retry_notification_logs now returns Result<String, ApiError> instead of Result<(), ApiError>.

// Before
let log: NotificationLogDetail = client.notificationlogs.retry_notification_log("UUID", None).await?;
// After
let retry: NotificationRetryResponse = client.notificationlogs.retry_notification_log("UUID", None).await?;
let message: String = retry.message;
let bulk: String = client
.notificationlogs
.bulk_retry_notification_logs(&BulkRetryRequest(vec!["UUID".to_string()]), None)
.await?;

Notification log fields moved to a base type

The shared notification log fields now live in the new NotificationLogBase type, flattened into NotificationLog and NotificationLogDetail as notification_log_base_fields. On NotificationLog, these fields were top-level. On NotificationLogDetail, they were in notification_log_fields: NotificationLog.

// Before
let id = &log.id;
let id = &detail.notification_log_fields.id;
// After
let id = &log.notification_log_base_fields.id;
let id = &detail.notification_log_base_fields.id;
  • response_status is now String instead of Option<String>. It holds a status message such as OK. The HTTP status code is in the new response_status_code (i64).
  • NotificationLogBase adds the required fields organization_name, paypoint_name, request_id, and response_status_code.
  • NotificationLog adds the required fields notification_type, organization_logo, organization_fav_icon, and paypoint_logo.
  • On NotificationLogDetail, response_content is now String instead of Option<String>.

Builders for these types fail with BuildError when a new required field is missing.

Customer fields on stored payment methods

GetMethodResponseResponseDataCustomersItem no longer has payor_data_request_fields: PayorDataRequest. Its fields are now top-level and match the customer record. first_name and last_name are now firstname and lastname.

// Before
let first = &customer.payor_data_request_fields.first_name;
// After
let first = &customer.firstname;

Moved from payor_data_request_fields to the top level: company, customer_id, customer_number, identifier_fields, shipping_address_1 (now Option<Shippingaddressadditional>), shipping_city, shipping_country, shipping_state, and shipping_zip.

Removed: additional_data, billing_address_1, billing_address_2, billing_city, billing_country, billing_email, billing_phone, billing_state, billing_zip, and shipping_address_2.

Added: additional_fields, address, address_1, city, country, customer_events, customer_portal, email, phone, shipping_address, state, and zip.

New response fields

  • AddMethodResponse adds page_identifier, and AddMethodResponseResponseData adds auth_code, avs_response_text, cvv_response_text, and vendor_id.
  • GetMethodResponseResponseData adds wallet_type.
  • OcrResultData adds total_amount and discount (Option<f64>).