> For the complete documentation index, see [llms.txt](https://docs.tylt.money/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tylt.money/tylt-crossramp-fiat-crypto-solutions/canada-intrac/canada-interac-e-transfer-on-ramp/event-status-reference.md).

# Event Status Reference

Each Canada Interac e-Transfer on-ramp transaction progresses through two connected lifecycle stages:

1. **Payment Processing** — the end user completes the CAD payment through Interac e-Transfer.
2. **Crypto Settlement** — following successful payment, Tylt settles the corresponding USDT or USDC according to the transaction’s configured settlement method.

The `eventId` identifies the current state of the transaction.

Merchants should use the `eventId` received through webhooks or returned by the **Get Instance Information** endpoint as the primary transaction-status indicator.

***

### Event IDs

| `eventId` | Status Key            | Display Text               | Description                                                                                                                                              | Terminal State |
| --------: | --------------------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------: |
|       `1` | `created`             | Instance Created           | The payment instance has been created but has not yet been accepted.                                                                                     |       No       |
|       `2` | `initiated`           | Order Created              | The instance has been accepted and the Interac e-Transfer payment request has been initiated.                                                            |       No       |
|       `3` | `paymentProcessing`   | Payment Processing         | The customer has initiated the Interac e-Transfer payment, and Tylt is waiting for confirmation from the payment provider.                               |       No       |
|       `4` | `paymentFulfilled`    | Payment Fulfilled          | The customer has completed the Interac e-Transfer payment. Tylt has received confirmation and is completing final processing before settlement.          |       No       |
|       `5` | `paymentCompleted`    | Payment Completed          | The Interac e-Transfer payment has been successfully received and payment processing is complete. The transaction will now proceed to crypto settlement. |       Yes      |
|       `6` | `settlementPending`   | Settlement Pending         | The payment has been completed, but settlement to the merchant is still pending.                                                                         |       No       |
|       `7` | `settlementCompleted` | Settlement Complete        | The payment has been successfully settled according to the merchant’s configured settlement method.                                                      |       Yes      |
|       `8` | `failed`              | Payment Failed             | The payment failed because of a provider-side or processing error.                                                                                       |       Yes      |
|       `9` | `expired`             | Order Cancelled or Expired | The instance expired or was cancelled before successful completion.                                                                                      |       Yes      |
|      `10` | `refundInitiated`     | Refund Initiated           | A refund or return has been initiated with the payment provider and is awaiting completion.                                                              |       No       |
|      `11` | `refundCompleted`     | Refund Completed           | The funds have been successfully returned to the sender.                                                                                                 |       Yes      |
|      `12` | `kyc_failed`          | KYC Failed                 | The required identity verification failed, expired, or was not completed within the permitted time.                                                      |       Yes      |

***

## Transaction Lifecycle

A successful Canada Interac on-ramp consists of a **payment lifecycle followed by a settlement lifecycle**.

```
PAYMENT

Instance Created
      ↓
Order Created
      ↓
Payment Processing
      ↓
Payment Fulfilled
      ↓
Payment Completed

      ↓

SETTLEMENT

Settlement Pending
      ↓
Settlement Complete
```

Settlement is processed separately from the Interac payment regardless of whether the merchant is configured for instant settlement or another permitted settlement schedule.

For an instant-settlement configuration, the transition from `Payment Completed` through `Settlement Pending` to `Settlement Complete` may occur very quickly.

***

## Payment Lifecycle

### 1 — Instance Created

`eventId: 1`

The pay-in instance has been successfully created.

At this stage:

* The transaction exists within Tylt.
* The CAD payment amount has been defined.
* The applicable crypto quote has been calculated.
* The Interac payment has not yet been completed.
* Crypto settlement has not started.

No fulfilment should occur at this stage.

***

### 2 — Order Created

`eventId: 2`

The instance has been accepted, the end user KYC for the transaction is sufficient and the Interac e-Transfer payment request has been initiated.&#x20;

The end user can proceed with the payment through their Canadian financial institution.

The transaction remains pending.

***

### 3 — Payment Processing

`eventId: 3`

Awaitng the the end user to initiated the Interac e-Transfer payment. Tylt is waiting for confirmation from the payment provider that the payment has been successfully received.

The transaction should continue to be treated as pending.

***

### 4 — Payment Fulfilled

`eventId: 4`

The end user has completed the Interac e-Transfer payment and Tylt has received confirmation from the payment provider.

Tylt is completing the remaining payment-side processing before marking the payment as completed.

This remains an intermediate state.

***

### 5 — Payment Completed

`eventId: 5`

The CAD payment lifecycle has been successfully completed.

At this stage:

* The Interac payment has been received.
* Payment-side processing has completed.
* The applicable crypto amount has been determined.
* The transaction can proceed into the separate crypto-settlement process.

The relevant amount and conversion information is returned in the `accounts` object.

| Field             | Description                                                        |
| ----------------- | ------------------------------------------------------------------ |
| `fiatCurrency`    | Fiat currency used for the transaction. For Canada, this is `CAD`. |
| `fiatAmount`      | CAD amount paid by the end user.                                   |
| `cryptoCurrency`  | Settlement asset, such as `USDT` or `USDC`.                        |
| `cryptoAmount`    | Gross crypto amount calculated for the transaction.                |
| `toReleaseAmount` | Net crypto amount to be released during settlement.                |
| `rate`            | Base conversion rate used for the transaction.                     |
| `effectiveRate`   | Effective transaction rate after applicable commercial pricing.    |
| `fees`            | Fees applied to the transaction expressed in cryptoCrrency         |
| `MDR`             | The spread applicable on the transaction expressed in percentage.  |

> `Payment Completed` confirms completion of the **payment process**. Crypto settlement is processed separately and should be tracked through the settlement events.

***

## Settlement Lifecycle

Following `Payment Completed`, Tylt processes settlement of the corresponding USDT or USDC amount.

Settlement is a separate process regardless of whether the configured settlement timing is instant or another permitted settlement schedule.

The amount being settled is represented by:

```
accounts.toReleaseAmount
```

and the settlement asset is represented by:

```
accounts.cryptoCurrency
```

***

### 6 — Settlement Pending

`eventId: 6`

The CAD payment has been successfully completed and the crypto settlement is now pending.

This state indicates that the stablecoin settlement process has started but has not yet completed.

For an instant-settlement transaction, this state may be short-lived.

The merchant should continue waiting for `Settlement Complete` before treating the crypto settlement as final.

***

### 7 — Settlement Complete

`eventId: 7`

The crypto settlement has been successfully completed.

This represents final completion of the **full Canada Interac on-ramp transaction**.

The settlement destination depends on the transaction’s `transferType`.

#### Internal Settlement

Where:

```json
{
  "type": "internal"
}
```

the USDT or USDC is credited to the **merchant’s Tylt wallet**.

No external blockchain transfer is required, and therefore fields such as `hash` or external wallet `address` may be `null`.

#### External Settlement

Where:

```json
{
  "type": "external"
}
```

the USDT or USDC is transferred to the **end user’s external wallet address** supplied for the transaction.

The settlement details may include:

| Field     | Description                                                              |
| --------- | ------------------------------------------------------------------------ |
| `Status`  | Current crypto-settlement status.                                        |
| `hash`    | Blockchain transaction hash for the external transfer, where applicable. |
| `address` | End user’s destination wallet address.                                   |
| `Network` | Blockchain network used for settlement.                                  |
| `type`    | Settlement type: `internal` or `external`.                               |

Merchants should use `eventId: 7` as the authoritative confirmation that settlement has completed rather than relying solely on the presence of a blockchain transaction hash.

***

## Settlement Model

The settlement destination is determined by `transferType`.

| Transfer Type | Settlement Destination     |
| ------------- | -------------------------- |
| `internal`    | Merchant’s Tylt wallet     |
| `external`    | End user’s external wallet |

The settlement asset may be either **USDT or USDC**, depending on the transaction and merchant configuration.

Settlement timing may be instant or follow another settlement schedule enabled for the merchant; however, the underlying lifecycle remains:

```
Payment Completed
      ↓
Settlement Pending
      ↓
Settlement Complete
```

***

## Refund Lifecycle

Where a transaction requires the CAD payment to be returned, it enters the refund lifecycle.

```
Refund Initiated
      ↓
Refund Completed
```

A refund may be initiated after the payment has been initiated, fulfilled, or completed, depending on the reason for the return.

***

### 10 — Refund Initiated

`eventId: 10`

A refund or return has been initiated with the payment provider and is awaiting completion.

This is not a terminal state.

The merchant should suspend any pending fulfilment and continue monitoring the transaction until the refund has completed.

***

### 11 — Refund Completed

`eventId: 11`

The CAD funds have been successfully returned to the sender.

This is a terminal unsuccessful state for the original on-ramp transaction.

The transaction should not be treated as successfully settled.

***

## Other Terminal States

### 8 — Payment Failed

`eventId: 8`

The payment failed because of a provider-side or processing error.

The transaction should not be fulfilled or settled.

***

### 9 — Order Cancelled or Expired

`eventId: 9`

The pay-in instance expired or was cancelled before successful completion.

If the end user wishes to try again, a new pay-in instance should be created.

***

### 12 — KYC Failed

`eventId: 12`

The required identity verification failed, expired, or was not completed within the permitted period.

The transaction cannot proceed unless the end user subsequently completes an approved verification flow.

***

## Processing Event Updates

Tylt sends webhook notifications as the transaction progresses through its lifecycle.

The current event is returned under:

```json
{
  "eventDetails": {
    "eventId": 6,
    "description": "Settlement Pending"
  }
}
```

Merchants should identify transactions using both:

```
data.instanceId
```

and:

```
data.merchantOrderId
```

Settlement-specific information is returned separately under:

```
data.cryptoSettlementDetails
```

***

### Recommended Merchant Handling

Merchants should:

* Use `eventId` as the primary transaction-status indicator.
* Process webhook notifications idempotently.
* Maintain the latest state for each `instanceId`.
* Match both `instanceId` and `merchantOrderId` against the merchant’s records.
* Treat `Payment Fulfilled` as confirmation that the end user’s Interac payment has been confirmed but payment-side processing is still completing.
* Treat `Payment Completed` as completion of the CAD payment lifecycle.
* Treat `Settlement Pending` as confirmation that the separate crypto-settlement process is underway.
* Treat `Settlement Complete` as final completion of the full CAD → USDT/USDC transaction.
* For `internal` transactions, expect settlement to the merchant’s Tylt wallet.
* For `external` transactions, expect settlement to the end user’s external wallet.
* Use `accounts.toReleaseAmount` as the net stablecoin amount to be settled.
* Use `accounts.cryptoCurrency` to identify whether settlement is in USDT or USDC.
* Use `cryptoSettlementDetails` for additional settlement metadata.
* Use the **Get Instance Information** endpoint when the latest transaction state needs to be independently verified.

***

## Successful Transaction Summary

The complete successful lifecycle is:

```
INTERAC PAYMENT

Instance Created
      ↓
Order Created
      ↓
Payment Processing
      ↓
Payment Fulfilled
      ↓
Payment Completed

────────────────────────

CRYPTO SETTLEMENT

Settlement Pending
      ↓
Settlement Complete
```

The final settlement destination is:

```
internal → Merchant Tylt Wallet

external → End User External Wallet
```

Accordingly, for the complete on-ramp transaction:

```
CAD Payment Completed
        +
USDT / USDC Settlement Complete
        =
Canada Interac On-Ramp Complete
```
