# 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 } ``` ---