Digital Payments - Changes to transactionCreated event in Embed and mobile SDKs

ProductSummary
Digital PaymentsBreaking change

🚧

Expected Release Dates

  • Sandbox: Sep 9, 2025
  • Production: Sep 16, 2025

We will be changing the payload for the transactionCreated event raised by Embed to contain less data.

Background

Embed SDK for web, iOS, and Android provides a way to listen to a transaction being created. On web, Embed has an event handler called onEvent(). This parameter allows you to listen to a transactionCreated event, which is raised when a transaction completes.

setup({
  onEvent: (name, data) => {
    if (name === "transactionCreated") {
      // inspect data
    }
  },
});

Currently, in each of these SDKs these events can include a data payload that contains most of the transaction details.

{
  "type": "transaction",
  "id": "7099948d-7286-47e4-aad8-b68f7eb44591",
  "reconciliation_id": "default",
  "merchant_account_id": "default",
  "currency": "EUR",
  "amount": 1299,
  "status": "authorization_succeeded",
  "authorized_amount": 1299,
  "captured_amount": 1299,
  "refunded_amount": 0,
  "settled_currency": "USD",
  "settled_amount": 1100,
  ...
}

Changes

With this change, the new data payload will be reduced to return just the ID, status, and depending on the SDK the the type and success state (React Native).

{
  "type": "transaction",
  "id": "7099948d-7286-47e4-aad8-b68f7eb44591",
  "status": "authorization_succeeded"
}
gr4vy?.launch(
    presentingViewController: self,
    onEvent: { event in
        switch event {
        ...
        case .transactionCreated(let transactionID, let status):
            print("Handle transactionCreated here, ID: \(transactionID), Status: \(status)")
            return
        }
    })
{
  "transactionID": "8724fd24-5489-4a5d-90fd-0604df7d3b83",
  "status": "authorization_succeeded"
}
{
  "success": true,
  "transactionId": "8724fd24-5489-4a5d-90fd-0604df7d3b83",
  "status": "authorization_succeeded"
}

Impact

If your integration currently depends on additional fields from this transactionCreated event (for example, authorized_amount), you will need to update your logic.
Move any checks or processing that rely on the removed fields to your server side.
Use the transaction ID from the event payload to call the GET /transactions/{id} API and retrieve full detail