---
# System prepended metadata

title: Virtual Terminal Endpoint
tags: [Technical Reference, Virtual Terminal, Endpoints]

---

# Virtual Terminal Endpoint

## Flow

```
1. App sends Payment Transaction. 
    a. If Transaction is Card, account will be the token grabbed from the tokenizer.
    -> Call Authorize for ACH (get retref)
    -> Call capture (send retref)
    b. If Transaction is ACH
    -> Call Authorize for ACH
2. Grab resptext 
3. Send resptext as TransactionDetail for Transaction log entry. 
```

## Service URL and Payload

### Virtual Terminal Transactions View

#### TransactionViewList

##### Endpoint : /api/Transaction/transactionviewlist/{module}/{tenantId}

##### Payload : 

```
module : string
tenantId : uniqueidentifier
```

##### Sample : 

```
module : VT
tenantId : 778DF26C-1AAB-4F5E-93FD-E4CAE2C1BC39
```

##### Response:
```
[
  {
    "id": "762a415a-644b-4826-a760-8db9fe44eff8",
    "tenantID": "778df26c-1aab-4f5e-93fd-e4cae2c1bc39",
    "transactionID": "8e251da9-eee2-4a65-9157-ab7942795655",
    "departmentID": "6fafea6e-ce76-44b0-a1da-d7facad251fd",
    "departmentName": "Main",
    "transactionNumber": "VT2024520BC397576",
    "customerID": "00000000-0000-0000-0000-000000000000",
    "customerName": "",
    "amountPaid": 10,
    "transactionStatus": null,
    "transactionDate": "2024-05-29T13:51:00"
  }
]
```

---

#### GetVirtualTerminalDetail

##### Endpoint : /api/VirtualTerminal/getvirtualterminaldetail

##### Payload:

`Id : Uniqueidentifier (VTID)`

---

#### GenerateOrderID

> This endpoint is to generate the VTNumber

##### Endpoint : /api/Transaction/generateorder

##### Payload : 

```
{
  "moduleTag": "string",
  "tenantID": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
```

###### ModuleTag values:
* VT = Virtual Terminal
* PL = Payment Link
* IN = Invoice

---

### Generic Transaction Log Entry

#### Endpoint : api/Transaction/createtransactionlogentry
#### Payload :
```
{
  "tenantID": "uniqueidentifier",
  "transactionNumber": "string",
  "transactionModule": "string", -- VIRTUALSELL
  "transactionStatus": "string", -- success or whatever is the error
  "transactionDetail": "string", -- JSON format / resptext
  "creator": "uniqueidentifier",
  "moduleEntry": "string" -- See below
}
```

#### Sample Payload:

```
{
  "tenantID": "778DF26C-1AAB-4F5E-93FD-E4CAE2C1BC39",
  "transactionNumber": "12946470889A",
  "transactionModule": "VIRTUALTERMINAL",
  "transactionStatus": "Approval",
  "transactionDetail": "{\"authcode\":\"PPS000\",\"respproc\":\"RPCT\",\"amount\":\"10.00\",\"resptext\":\"Approval\",\"setlstat\":\"Queued for Capture\",\"retref\":\"129464708892\",\"respstat\":\"A\",\"respcode\":\"000\",\"batchid\":\"113\",\"account\":\"9441149619831111\",\"merchid\":\"800000009440\",\"token\":\"9441149619831111\"}",
  "creator": "70FD21F1-1880-4E88-ADAF-E8203D3009BA",
  "moduleEntry": "{\"DepartmentID\":\"6FAFEA6E-CE76-44B0-A1DA-D7FACAD251FD\",\"VTNumber\":\"VT202458BC396623\",\"VTAmountPaid\":\"10.00\",\"VTData\":\"Approval\"}"
}
```

#### Returns : 

`ReceiptNumber -> String`

##### Notes:
* TransactionDetail contains the response from *Capture*. 


##### ModuleEntry 
* *contains the following:*
    * DepartmentID
    * VTNumber (See above: GenerateOrderID) 
    * VTAmountPaid
    * VTData *(if there are other data aside from the amount and VT Number such as tax amount, tax rate, upcharges, etc.)*

---


#### CardPointe Gateway Transactions

##### ACH Transaction: api/cardpointe/ACH/Authorize

##### Payload :
 ```
 {
  "departmentID": "uniqueidentifier",
   "account": "string",
   "bankABA": "string",
   "accountType": "string",
   "amount": decimal(18,2),
   "orderID": "string",
   "name": "string",
   "ecomind": "string" -- Set to E
 }
 ```

---

##### Credit Authorize: api/cardpointe/Credit/Authorize
##### Payload : 

 ```
{
  "departmentID": "uniqueidentifier",
  "account": "string",
  "expiry": "string",
  "cvV2": "string",
  "amount": decimal,
  "currencyCode": "string",
  "orderId": "string",
  "name": "string",
  "address": "string",
  "city": "string",
  "region": "string",
  "country": "string",
  "postalCode": "string",
  "capture": "string", -- Set to N
  "ecomind": "string" -- E by default
}
```


---


##### Credit Capture: api/cardpointe/Credit/Capture
##### Payload :

```
{
  "departmentID": "uniqueidentifier",
  "retRef": "string"
  "amount": decimal
}
```
--- 

