curl --request GET 'https://api-empresas.staging.topup.com.co/production/api/v1/transaction/{ticket}' \
--header 'Token-Top: your_auth_token' \
--header 'Authorization: Basic your_auth_key' \
--header 'Content-Type: application/json' \
--data-raw '{
"ticket": "1740ed7e-bbab-11ee-8335-02530a7dec0f"
}'
const response = await fetch('https://api-empresas.staging.topup.com.co/production/api/v1/transaction/{ticket}', {
method: 'GET',
headers: {
'Token-Top': 'your_auth_token',
'Authorization': 'Basic your_auth_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
ticket: '1740ed7e-bbab-11ee-8335-02530a7dec0f'
})
});
use reqwest;
use serde_json::json;
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let client = reqwest::Client::new();
let response = client.get("https://api-empresas.staging.topup.com.co/production/api/v1/transaction/{ticket}")
.header("Token-Top", "your_auth_token")
.header("Authorization", "Basic your_auth_key")
.header("Content-Type", "application/json")
.json(&json!({
"ticket": "1740ed7e-bbab-11ee-8335-02530a7dec0f"
}))
.send()
.await?;
let body = response.text().await?;
println!("{}", body);
Ok(())
}
<?php
use Illuminate\Support\Facades\Http;
$response = Http::withHeaders([
'Token-Top' => 'your_auth_token',
'Authorization' => 'Basic your_auth_key',
'Content-Type' => 'application/json'
])->get('https://api-empresas.staging.topup.com.co/production/api/v1/transaction/{ticket}', [
'ticket' => '1740ed7e-bbab-11ee-8335-02530a7dec0f'
]);
echo $response->body();
package main
import (
"fmt"
"io/ioutil"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader(`{
"ticket": "1740ed7e-bbab-11ee-8335-02530a7dec0f"
}`)
req, err := http.NewRequest("GET", "https://api-empresas.staging.topup.com.co/production/api/v1/transaction/{ticket}", payload)
if err != nil {
// handle err
}
req.Header.Set("Token-Top", "your_auth_token")
req.Header.Set("Authorization", "Basic your_auth_key")
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
// handle err
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws IOException, InterruptedException {
HttpClient client = HttpClient.newHttpClient();
String json = "{\n \"ticket\": \"1740ed7e-bbab-11ee-8335-02530a7dec0f\"\n}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api-empresas.staging.topup.com.co/production/api/v1/transaction/{ticket}"))
.header("Token-Top", "your_auth_token")
.header("Authorization", "Basic your_auth_key")
.header("Content-Type", "application/json")
.GET(HttpRequest.BodyPublishers.ofString(json))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
{
"code": "01",
"status": "SUCCESS",
"data": {
"ticket": "saKqzi9Sw9knrgc",
"reference": "1T11SKv97GRQ3GnqetKXaG4sY",
"amount": 3000,
"currency": "COP",
"type_transaction": "Recaudo",
"customer": {
"email": "user-test@gmail.com",
"full_name": "User Test",
"legal_doc": 3066000010,
"phone_code": "57",
"phone_number": 3066000002,
"legal_doc_type": "CC"
},
"status": "REJECTED",
"response_message": "Transacción rechazada",
"date": "2025-08-18 23:40:14",
"cus": "1qslsGreOPfa1n9U",
"metadata": []
}
}
Merchant API
Search Transactions
Search for transactions using the ticket provided by TumiPay
GET
/
transaction
/
{ticket}
curl --request GET 'https://api-empresas.staging.topup.com.co/production/api/v1/transaction/{ticket}' \
--header 'Token-Top: your_auth_token' \
--header 'Authorization: Basic your_auth_key' \
--header 'Content-Type: application/json' \
--data-raw '{
"ticket": "1740ed7e-bbab-11ee-8335-02530a7dec0f"
}'
const response = await fetch('https://api-empresas.staging.topup.com.co/production/api/v1/transaction/{ticket}', {
method: 'GET',
headers: {
'Token-Top': 'your_auth_token',
'Authorization': 'Basic your_auth_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
ticket: '1740ed7e-bbab-11ee-8335-02530a7dec0f'
})
});
use reqwest;
use serde_json::json;
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let client = reqwest::Client::new();
let response = client.get("https://api-empresas.staging.topup.com.co/production/api/v1/transaction/{ticket}")
.header("Token-Top", "your_auth_token")
.header("Authorization", "Basic your_auth_key")
.header("Content-Type", "application/json")
.json(&json!({
"ticket": "1740ed7e-bbab-11ee-8335-02530a7dec0f"
}))
.send()
.await?;
let body = response.text().await?;
println!("{}", body);
Ok(())
}
<?php
use Illuminate\Support\Facades\Http;
$response = Http::withHeaders([
'Token-Top' => 'your_auth_token',
'Authorization' => 'Basic your_auth_key',
'Content-Type' => 'application/json'
])->get('https://api-empresas.staging.topup.com.co/production/api/v1/transaction/{ticket}', [
'ticket' => '1740ed7e-bbab-11ee-8335-02530a7dec0f'
]);
echo $response->body();
package main
import (
"fmt"
"io/ioutil"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader(`{
"ticket": "1740ed7e-bbab-11ee-8335-02530a7dec0f"
}`)
req, err := http.NewRequest("GET", "https://api-empresas.staging.topup.com.co/production/api/v1/transaction/{ticket}", payload)
if err != nil {
// handle err
}
req.Header.Set("Token-Top", "your_auth_token")
req.Header.Set("Authorization", "Basic your_auth_key")
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
// handle err
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws IOException, InterruptedException {
HttpClient client = HttpClient.newHttpClient();
String json = "{\n \"ticket\": \"1740ed7e-bbab-11ee-8335-02530a7dec0f\"\n}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api-empresas.staging.topup.com.co/production/api/v1/transaction/{ticket}"))
.header("Token-Top", "your_auth_token")
.header("Authorization", "Basic your_auth_key")
.header("Content-Type", "application/json")
.GET(HttpRequest.BodyPublishers.ofString(json))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
{
"code": "01",
"status": "SUCCESS",
"data": {
"ticket": "saKqzi9Sw9knrgc",
"reference": "1T11SKv97GRQ3GnqetKXaG4sY",
"amount": 3000,
"currency": "COP",
"type_transaction": "Recaudo",
"customer": {
"email": "user-test@gmail.com",
"full_name": "User Test",
"legal_doc": 3066000010,
"phone_code": "57",
"phone_number": 3066000002,
"legal_doc_type": "CC"
},
"status": "REJECTED",
"response_message": "Transacción rechazada",
"date": "2025-08-18 23:40:14",
"cus": "1qslsGreOPfa1n9U",
"metadata": []
}
}
Search for transactions using various filters
curl --request GET 'https://api-empresas.staging.topup.com.co/production/api/v1/transaction/{ticket}' \
--header 'Token-Top: your_auth_token' \
--header 'Authorization: Basic your_auth_key' \
--header 'Content-Type: application/json' \
--data-raw '{
"ticket": "1740ed7e-bbab-11ee-8335-02530a7dec0f"
}'
const response = await fetch('https://api-empresas.staging.topup.com.co/production/api/v1/transaction/{ticket}', {
method: 'GET',
headers: {
'Token-Top': 'your_auth_token',
'Authorization': 'Basic your_auth_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
ticket: '1740ed7e-bbab-11ee-8335-02530a7dec0f'
})
});
use reqwest;
use serde_json::json;
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let client = reqwest::Client::new();
let response = client.get("https://api-empresas.staging.topup.com.co/production/api/v1/transaction/{ticket}")
.header("Token-Top", "your_auth_token")
.header("Authorization", "Basic your_auth_key")
.header("Content-Type", "application/json")
.json(&json!({
"ticket": "1740ed7e-bbab-11ee-8335-02530a7dec0f"
}))
.send()
.await?;
let body = response.text().await?;
println!("{}", body);
Ok(())
}
<?php
use Illuminate\Support\Facades\Http;
$response = Http::withHeaders([
'Token-Top' => 'your_auth_token',
'Authorization' => 'Basic your_auth_key',
'Content-Type' => 'application/json'
])->get('https://api-empresas.staging.topup.com.co/production/api/v1/transaction/{ticket}', [
'ticket' => '1740ed7e-bbab-11ee-8335-02530a7dec0f'
]);
echo $response->body();
package main
import (
"fmt"
"io/ioutil"
"net/http"
"strings"
)
func main() {
payload := strings.NewReader(`{
"ticket": "1740ed7e-bbab-11ee-8335-02530a7dec0f"
}`)
req, err := http.NewRequest("GET", "https://api-empresas.staging.topup.com.co/production/api/v1/transaction/{ticket}", payload)
if err != nil {
// handle err
}
req.Header.Set("Token-Top", "your_auth_token")
req.Header.Set("Authorization", "Basic your_auth_key")
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
// handle err
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws IOException, InterruptedException {
HttpClient client = HttpClient.newHttpClient();
String json = "{\n \"ticket\": \"1740ed7e-bbab-11ee-8335-02530a7dec0f\"\n}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api-empresas.staging.topup.com.co/production/api/v1/transaction/{ticket}"))
.header("Token-Top", "your_auth_token")
.header("Authorization", "Basic your_auth_key")
.header("Content-Type", "application/json")
.GET(HttpRequest.BodyPublishers.ofString(json))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
{
"code": "01",
"status": "SUCCESS",
"data": {
"ticket": "saKqzi9Sw9knrgc",
"reference": "1T11SKv97GRQ3GnqetKXaG4sY",
"amount": 3000,
"currency": "COP",
"type_transaction": "Recaudo",
"customer": {
"email": "user-test@gmail.com",
"full_name": "User Test",
"legal_doc": 3066000010,
"phone_code": "57",
"phone_number": 3066000002,
"legal_doc_type": "CC"
},
"status": "REJECTED",
"response_message": "Transacción rechazada",
"date": "2025-08-18 23:40:14",
"cus": "1qslsGreOPfa1n9U",
"metadata": []
}
}
Required Headers
string
required
Your merchant authentication token
string
required
Must be “application/json”
Request Body Parameters
string
Transaction ticket ID or Reference
Response
array
Show Transaction Object
Show Transaction Object
string
Unique transaction identifier
string
Your custom transaction reference
string
Transaction type (PAYIN, PAYOUT)
string
Current transaction status
number
Transaction amount
string
Three-letter currency code (ISO 4217)
string
UTC timestamp of transaction creation
string
UTC timestamp of last status update
object
Pagination information
integer
Total number of records
integer
Current page number
integer
Number of records per page
integer
Total number of pages
⌘I