EFT

EFT

Base URL

The base URL for all API requests is:

https://apigateway.payfirma.com

Balance

GET /transaction-service-vt/eft/balance

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

Response

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

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

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

Response

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

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

Requesting funds to PayHQ customer via EFT - EFT Credit

Request Body

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

Response

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:

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

Deposit to your linked bank account from your wallet available balance

Request Body

{
"amount": 1
}

Response:

Only status 200 - If successful else 400 with error message

Example:

Request:

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

Send Funds - EFT Debit

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

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

Request Body

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

Response

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"
}