List transaksi — Partner Transactions API
Mengembalikan daftar transaksi milik partner yang sedang login. Hanya transaksi milik partner sendiri yang dikembalikan.
note
Jika parameter sort tidak dikirim, urutan hasil tidak dijamin dan tidak otomatis diurutkan dari
yang terbaru. Jika membutuhkan urutan yang konsisten, selalu gunakan sort=createdAt,desc secara
eksplisit seperti pada contoh di bawah.
Autentikasi
Kirim header Authorization: Bearer <accessToken>, memakai accessToken yang didapat dari
Partner Auth API. Butuh permission transactions:read.
Query parameter
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
status | TransactionStatus (enum) | Tidak | Filter berdasarkan status. Kosongkan untuk semua status. Nilai valid: PENDING, SUCCESS, FAILED, EXPIRED, CANCELLED. |
page | integer | Tidak | Nomor halaman, 0-based. Default 0. |
size | integer | Tidak | Jumlah item per halaman. Default 20. |
sort | string | Tidak | Format properti,arah, misalnya createdAt,desc. |
Contoh request
- cURL
- Node.js
- Java
Request
curl -G '{{BASE_URL}}/api/v1/transactions' \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-d status=PENDING \
-d page=0 \
-d size=20 \
-d sort=createdAt,desc
Request
const params = new URLSearchParams({
status: "PENDING",
page: "0",
size: "20",
sort: "createdAt,desc",
});
const response = await fetch(`{{BASE_URL}}/api/v1/transactions?${params}`, {
headers: {
Authorization: `Bearer ${accessToken}`,
},
});
const data = await response.json();
console.log(data);
Request
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request =
HttpRequest.newBuilder()
.uri(
URI.create(
"{{BASE_URL}}/api/v1/transactions?status=PENDING&page=0&size=20&sort=createdAt,desc"))
.header("Authorization", "Bearer " + accessToken)
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Response sukses
200 OK -- selalu 200 walau hasilnya kosong (list kosong, bukan error).
200 OK
{
"code": "00",
"message": "Success",
"data": {
"content": [
{
"transactionId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"partnerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"groupId": "3fa85f64-5717-4562-b3fc-2c963f66afa7",
"externalReference": "INV-2026-001234",
"platformReference": "TXN-20260707-A1B2C3",
"transactionType": "PAYMENT",
"paymentMethod": "QRIS_DYNAMIC",
"status": "PENDING",
"amount": 150000,
"currency": "IDR",
"providerCode": "GDC",
"providerReference": null,
"qrString": "00020101021226...",
"expiredAt": "2026-07-07T10:30:00Z",
"description": "Pembayaran order #INV-2026-001234",
"createdAt": "2026-07-07T09:00:00Z",
"updatedAt": "2026-07-07T09:00:00Z"
}
],
"page": 0,
"size": 20,
"totalElements": 1,
"totalPages": 1,
"first": true,
"last": true,
"hasNext": false,
"hasPrevious": false
},
"correlationId": "9f8e7d6c-5b4a-3210-fedc-ba9876543210",
"requestId": "1a2b3c4d-5e6f-7890-abcd-ef1234567890",
"timestamp": "2026-08-13T09:15:30.123Z"
}
Lihat penjelasan tiap field transaksi di halaman Buat transaksi QRIS atau Buat disbursement.
Response error
| HTTP Status | code | Kapan terjadi |
|---|---|---|
| 400 | VALIDATION_ERROR | status bukan salah satu nilai valid (PENDING/SUCCESS/FAILED/EXPIRED/CANCELLED). |
| 401 | INVALID_TOKEN | Authorization header tidak ada, JWT tidak valid, atau kadaluarsa. |
| 403 | ACCESS_DENIED | Token valid tapi tidak punya permission transactions:read. |
Contoh -- 400 status tidak valid
{
"code": "VALIDATION_ERROR",
"message": "Parameter 'status' bernilai 'NGACO' tidak valid. Nilai yang diterima: PENDING, SUCCESS, FAILED, EXPIRED, CANCELLED.",
"correlationId": "9f8e7d6c-5b4a-3210-fedc-ba9876543210",
"requestId": "1a2b3c4d-5e6f-7890-abcd-ef1234567890",
"timestamp": "2026-08-13T09:15:30.123Z"
}
Contoh -- 401 Unauthorized
{
"code": "INVALID_TOKEN",
"message": "Token tidak ada atau tidak valid",
"correlationId": "9f8e7d6c-5b4a-3210-fedc-ba9876543210",
"requestId": "1a2b3c4d-5e6f-7890-abcd-ef1234567890",
"timestamp": "2026-08-13T09:15:30.123Z"
}
Contoh -- 403 Forbidden
{
"code": "ACCESS_DENIED",
"message": "Akses ditolak — permission tidak mencukupi untuk operasi ini.",
"correlationId": "9f8e7d6c-5b4a-3210-fedc-ba9876543210",
"requestId": "1a2b3c4d-5e6f-7890-abcd-ef1234567890",
"timestamp": "2026-08-13T09:15:30.123Z"
}