# Overview & Types

Reference for the integer codes used in transaction types, sources, and payment methods within the E-Wallet ecosystem.

#### TransactionType

| Code | Meaning |
| --- | --- |
| 1 | CREDIT (Reload) |
| 2 | REFUND |
| 3 | DEBIT |
| 4 | CANCEL |
| 5 | DATE\_MODIFICATION |
| 6 | POST\_PAYMENT\_RESET |

#### TransactionSource

| Code | Meaning |
| --- | --- |
| 1 | DASHBOARD (Backoffice) |
| 2 | CEL (Web Ordering) |
| 5 | POS |
| 6 | KIOSK |
| 7 | API / TIME\_CHEF\_API |
| 8 | EWALLET\_KIOSK |

#### PaymentOrigin

Required when creating a CREDIT transaction (Type 1).

| Code | Meaning |
| --- | --- |
| 1 | CASH |
| 2 | CHECK |
| 3 | OTHER |
| 4 | CREDIT\_CARD\_ONLINE (Web/App) |
| 5 | CREDIT\_CARD (Terminal) |
| 6 | LUNCHEON\_VOUCHER |

### Public Reloader Bootstrap

The e-wallet reloader can obtain the small, safe subset of brand configuration it needs without a bearer token. The endpoint returns the same not-found response for a missing brand and for a brand without an active e-wallet, so callers cannot enumerate e-wallet-enabled brands.

### `GET /brands/{brandId}/ewallet-reloader` - Get Public E-Wallet Reloader Configuration

Returns only the public reloader fields and an allow-listed set of brand options. It does not return the full authenticated brand record.

#### Parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| brandId | integer | Yes | Brand identifier used by the e-wallet reloader. |

#### Response

```json
{
  "status": 200,
  "code": "brand_succeed",
  "message": "You can access to this brand.",
  "data": {
    "brandId": 3325,
    "brandHash": "bb10813b502b",
    "name": "Innovorder Burgers",
    "brandType": "COMMERCIAL_CATERING",
    "currency": "EUR",
    "options": {
      "OPT_IN": {
        "optionId": 11664,
        "nameValue": "OPT_IN",
        "isActivated": true,
        "brandId": 3325,
        "restaurantId": null,
        "created_at": "2026-07-11T09:00:00.000Z",
        "updated_at": "2026-07-11T09:00:00.000Z",
        "deleted_at": null
      }
    }
  }
}
```

##### Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

| Property | Type | Example | Description |
| --- | --- | --- | --- |
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "brand\_succeed" | Machine-readable application code for the result. |
| message | string | "You can access to this brand." | Human-readable result message. Do not use this value for program logic. |
| data | object | {…} | Endpoint-specific response payload. |
| data.brandId | integer | 3325 | Identifier of the brand. |
| data.brandHash | string | "bb10813b502b" | The brand hash value. |
| data.name | string | "Innovorder Burgers" | The name value. |
| data.brandType | string | "COMMERCIAL\_CATERING" | The brand type value. |
| data.currency | string | "EUR" | ISO 4217 currency code. |
| data.options | object | {…} | Object containing options fields. |
| data.options.OPT\_IN | object | {…} | Object containing opt in fields. |
| data.options.OPT\_IN.optionId | integer | 11664 | Identifier of the associated option. |
| data.options.OPT\_IN.nameValue | string | "OPT\_IN" | The name value value. |
| data.options.OPT\_IN.isActivated | boolean | true | Whether activated is enabled or applies. |
| data.options.OPT\_IN.brandId | integer | 3325 | Identifier of the brand. |
| data.options.OPT\_IN.restaurantId | null | null | Identifier of the restaurant. |
| data.options.OPT\_IN.created\_at | string | "2026-07-11T09:00:00.000Z" | Timestamp when this resource was created. |
| data.options.OPT\_IN.updated\_at | string | "2026-07-11T09:00:00.000Z" | Timestamp when this resource was last updated. |
| data.options.OPT\_IN.deleted\_at | null | null | Timestamp when this resource was deleted, or null when it is active. |

### Reload Provider App Redirect

Open the configured reload partner on the best destination for the caller device. Supported providers are redirected to their iOS app, Android app, or configured web page; unsupported providers return 404.

### `GET /ewallet/reload/{provider}/app` - Open Reload Provider Application

Returns a 302 redirect whose Location header depends on the provider and User-Agent. This endpoint does not return a JSON envelope.

#### Parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| provider | string | Yes | Reload provider slug, for example timechef or toqla. |

#### Response

```json
HTTP/1.1 302 Found
Location: https://apps.apple.com/fr/app/timechef/id1104882470
```

### Transaction Reasons

Retrieve the active, display-ordered reasons that can explain a manual credit or debit transaction.

### `GET /transaction_reasons` - List Active Transaction Reasons

Returns active reasons ordered by displayOrder. allowedDirection is CREDIT, DEBIT, or BOTH.

#### Response

```json
{
  "status": 200,
  "code": "get_transaction_reasons_succeed",
  "message": "Transaction reasons retrieved successfully.",
  "data": [
    {
      "transactionReasonId": 3,
      "code": "LOYALTY",
      "label": "Loyalty adjustment",
      "allowedDirection": "CREDIT",
      "displayOrder": 3,
      "isActive": true,
      "createdAt": "2026-01-10T09:00:00.000Z",
      "updatedAt": "2026-01-10T09:00:00.000Z"
    }
  ]
}
```

##### Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

| Property | Type | Example | Description |
| --- | --- | --- | --- |
| status | integer | 200 | HTTP status code returned by the API. |
| code | string | "get\_transaction\_reasons\_succeed" | Machine-readable application code for the result. |
| message | string | "Transaction reasons retrieved successfully." | Human-readable result message. Do not use this value for program logic. |
| data | array | \[…\] | Endpoint-specific response payload. |
| data\[\] | object | {…} | Endpoint-specific response payload. |
| data\[\].transactionReasonId | integer | 3 | Identifier of the associated transaction reason. |
| data\[\].code | string | "LOYALTY" | Machine-readable application code for the result. |
| data\[\].label | string | "Loyalty adjustment" | The label value. |
| data\[\].allowedDirection | string | "CREDIT" | The allowed direction value. |
| data\[\].displayOrder | integer | 3 | The display order value. |
| data\[\].isActive | boolean | true | Whether this resource is active. |
| data\[\].createdAt | string | "2026-01-10T09:00:00.000Z" | Timestamp when this resource was created. |
| data\[\].updatedAt | string | "2026-01-10T09:00:00.000Z" | Timestamp when this resource was last updated. |
