# EFT

## EFT <a href="#eft-api-eft" id="eft-api-eft"></a>

### Base URL <a href="#eft-api-baseurl" id="eft-api-baseurl"></a>

The base URL for all API requests is:

<https://apigateway.payfirma.com>

### Balance <a href="#eft-api-balance" id="eft-api-balance"></a>

```
GET /transaction-service-vt/eft/balance
```

Returns wallet balance for EFT to do instant transactions else would be a few days for settlement.

#### Response <a href="#eft-api-response" id="eft-api-response"></a>

Returns a JSON object with the following properties:

* **available\_balance**: fund available balance currently for transaction
* **actual\_balance**: total balance - Funds are in the wallet

**Example:**

Request

```
GET /transaction-service-vt/eft/balance
```

Response:

```
{
    "available_balance": 13.36,
       "actual_balance": 13.36
}
```

### Incoming Request - EFT Debit <a href="#eft-api-incomingrequest-eftdebit" id="eft-api-incomingrequest-eftdebit"></a>

```
GET /transaction-service-vt/eft/incoming-requests
```

Returns list of incoming requests asking you for funds - EFT Debit

#### Response <a href="#eft-api-response.1" id="eft-api-response.1"></a>

Returns a JSON object with the following properties:

* **incoming\_requests**: Array of objects of incoming request
  * amount: amount asking for processor\_transaction\_id: unique identifier
  * email: email of the user asking for
  * status: status of the request
  * redirect\_url: redirect URL to start EFT transaction date: date of the EFT request
  * description: description of the EFT request

**Example:**

Request:

```
GET /transaction-service-vt/eft/incoming-requests
```

Response:

```
incoming_requests: [
    {
        "amount": 1,
        "processor_transaction_id": "PAY24204476",
        "email": "sample@gmail.com",
        "status": "PENDING",
        "redirect_url": "https://sample.com?redirect",
        "date": "1/17/2024 11:26:40 PM",
        "description": "API Test Doc"
    }
]
```

### Requesting Funds - EFT Credit <a href="#eft-api-requestingfunds-eftcredit" id="eft-api-requestingfunds-eftcredit"></a>

```
POST /transaction-service-vt/eft/request/{customer_lookup_id}
```

Requesting funds to PayHQ customer via EFT - EFT Credit

#### Request Body <a href="#eft-api-requestbody" id="eft-api-requestbody"></a>

```
{
    "amount": 1,
    "description": "API Test Doc"
}
```

#### Response <a href="#eft-api-response.2" id="eft-api-response.2"></a>

Returns a JSON object with the following properties:

* amount: amount requested
* email: email of the customer request sent to
* card\_type: Type of Card Transaction(Internal Use)
* description: description of the EFT request sent
* id: unique identifier for PayHQ
* transaction\_id: unique identifier for PayHQ hashed
* transaction\_success: Is request sent successfully
* transaction\_result: result of the EFT request sent - at first would be “PENDING” until other user do some action on it. Status would be updated on your side too
* transaction\_time: time of request epoch time format transaction\_type: Type of the transaction(Internal Use)

**Example:**

Request:

```
POST /transaction-service-vt/eft/request/{customer_lookup_id}
```

Response:

```
{
    "amount": 1,
    "email": "sample@gmail.com",
    "card_type": "EFT",
    "description": "API Test Doc",
    "id": 9587492,
    "transaction_id": "8Xj5QZyE499o9dGv6pA2",
    "transaction_success": true,
    "transaction_result": "PENDING",
    "transaction_time": 1705534494112,
    "transaction_type": "EFT_CREDIT"
}
```

### Bank Deposit: <a href="#eft-api-bankdeposit" id="eft-api-bankdeposit"></a>

```
POST /transaction-service-vt/eft/bank-deposit
```

Deposit to your linked bank account from your wallet **available balance**

#### Request Body <a href="#eft-api-requestbody.1" id="eft-api-requestbody.1"></a>

```
{
"amount": 1
}
```

#### Response: <a href="#eft-api-response" id="eft-api-response"></a>

Only status 200 - If successful else 400 with error message

**Example:**

Request:

```
POST /transaction-service-vt/eft/bank-deposit
```

### Send Funds - EFT Debit <a href="#eft-api-sendfunds-eftdebit" id="eft-api-sendfunds-eftdebit"></a>

```
POST /transaction-service-vt/eft/send/{customer_lookup_id}
```

Send funds to the customer’s Bank account directly ***-*** EFT Debit

#### Request Body <a href="#eft-api-requestbody.2" id="eft-api-requestbody.2"></a>

```
{
    "amount": 1,
    "description": "API Test Doc",
    "transit_number": "12345",
    "institution_number": "123",
    "account_number": "123467"
}
```

#### Response <a href="#eft-api-response.3" id="eft-api-response.3"></a>

Returns a JSON object with the following properties:

* amount: amount to send
* email: email of the customer
* first\_name: first name of the customer
* last\_name: last name of the customer
* province: province(in code) - BC
* country: country(in code) - CA
* card\_type: Type of Card Transaction(Internal Use) description: description of the EFT request sent
* id: unique identifier for PayHQ
* transaction\_id: unique identifier for PayHQ hashed transaction\_success: Is request sent successfully
* transaction\_result: result of the EFT request sent - at first would be “PENDING” until other user do some action on it. Status would be updated on your side too
* transaction\_time: time of request epoch time format
* transaction\_type: Type of the transaction(Internal Use)

**Example:**

Request:

```
POST /transaction-service-vt/eft/send/{customer_lookup_id}
```

Response:

```
{
    "amount": 1,
    "email": "sample@payfirma.com",
    "first_name": "Sample",
    "last_name": "Test",
    "province": "BC",
    "country": "CA",
    "card_type": "EFT",
    "description": "API Test Doc - Account Number: ***1234",
    "id": 9587494,
    "transaction_id": "EmJVqxBX1ZZKogz6NeGn",
    "transaction_success": false,
    "transaction_result": "PENDING",
    "transaction_time": 1705535538104,
    "transaction_type": "EFT_DEBIT"
}
```
