Skip to main content

API v1.13

: Staging

: Production

✨ New

Integrations

Enhanced Stripe integration with webhook listeners

Added webhook listeners for Stripe integrations, ensuring automatic updates to order payment statuses in Nautical. This is particularly useful for Stripe transactions where payment completion is delayed, like ACH payments.

Nautical will now reflect the following Stripe events:

  • payment_intent.amount_capturable_updated
  • payment_intent.canceled
  • payment_intent.payment_failed
  • payment_intent.processing
  • payment_intent.succeeded
note

To activate Nautical's Stripe webhook listening, you need to re-save your Stripe plugin configuration. This will automatically update the "Webhook endpoint" and "Webhook secret key" fields in the plugin.

Orders

Decline all order lines

You can now decline all order lines in a seller order. If all lines are cancelled, the seller order status updates to Cancelled. Additionally, the shipping cost for that order resets to $0, and its total cost is deducted from the marketplace order total.

Orders

Filter orders by invoice number

Added the ability to use the search filter to find orders and nauticalOrders by invoice number.

Invoices

Invoice refresh mutation

Added the invoiceRefresh mutation, which regenerates an order document using the same invoice number as originally generated.

Learn more ->

Invoices

Removed items section on invoices

Invoice documents for orders with declined fulfillments now include a "Removed Items" section, listing each line item that was removed from the order.

💎 Changed

Payments

Payment token validation

Updated the checkoutPaymentCreate and nauticalOrderPaymentCreate mutations to include validation of the supplied token. The validation checks ensure:

  • The token has not been previously used, preventing duplicate tokens.
  • The token is valid according to the gateway, and the amount provided to the API is appropriate for the token.

For Stripe in particular, we now perform the following validation:

  • The payment intent specified by the token exists
  • The payment amount specified matches the payment intent amount in Stripe
  • The payment intent status is either processing, requires_capture, or succeeded
Payments

Transaction error enum replaced

The Transaction.error field is now a string type instead of an enum.

Webhooks

Breaking change for webhooks

Implemented strictly typed data classes for more robust and structured webhooks. This approach negates the need for custom webhook fields, as we can now generate model-like payloads with more complex nested data structures.

The structure and contents of the following webhook payloads have been changed:

  • Product webhooks: product_created, product_updated, product_deleted
  • Variant webhooks: variant_created, variant_updated, variant_deleted
  • Warehouse webhooks: warehouse_created, warehouse_updated, warehouse_deleted
  • Stock webhooks: stock_created, stock_updated, stock_deleted
  • Stock allocation webhooks: stock_allocated, stock_deallocated
  • Agreement webhooks: ageement_created, agreement_updated, agreement_deleted
  • Microsite webhooks: microsite_created, microsite_updated
  • Collection webhooks: collection_created, collection_updated, collection_deleted

As a result of these changes, existing logic that utilizes the above webhooks should be updated to align with this new, more structured webhook format. Follow the learn more link below to view the new webhooks.

Learn more ->

Integrations

Plugin allow sellers field

The plugin model now has the allowSellers boolean field, which indicates whether sellers can configure the plugin.

🪲 Fixed

Orders

Fixed an issue where the option to fulfill items remained available from the marketplace order even after a seller order was cancelled.

Stock

Fixed an issue where stock allocated to draft orders wasn't being deallocated upon bulk deletion of those orders.

Emails

Fixed an issue that could prevent order emails from being sent with the type error Object of type X is not JSON serializable.

Integrations

Fixed an issue that prevented the activation of the HERE plugin.

Was this page helpful?