Transactions¶
Payment and payout records are created automatically by SecPaid. You can query them via the V2 API at any time.
Pay-In Transactions¶
A pay-in is created when a customer successfully pays a link. Refund and dispute events also appear in the pay-in list as separate entries with their own transaction_type.
Fetching Pay-Ins¶
POST /api/v2/getPayInTransactions
curl --location 'https://app.secpaid.com/api/v2/getPayInTransactions' \
--header 'token: YOUR_API_KEY' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'since=30' \
--data-urlencode 'limit=200'
Example Response¶
{
"data": [
{
"pay_id": "42011",
"user_id": "a95a452a-2c74-465c-b63b-81d73a7a755d",
"transaction_id": "20241026-pi-QRxbbs7z9n",
"amount": "1.00",
"net_amount": "0.83",
"service_fee": "-0.10",
"service_fee_psp": "0.27",
"status": "Success",
"recipient_note": "Invoice #1234",
"payout_status": "Pending",
"created_at": "2024-10-26 16:18:20",
"is_split_link": "false",
"is_dispute": "false",
"is_refund": "false",
"payment_method": "card",
"transaction_type": "Basic"
}
],
"ResponseCode": 1,
"ResponseMsg": "List retrieved successfully",
"Result": "True",
"ServerTime": "CEST"
}
Key Fields¶
| Field | Description |
|---|---|
pay_id |
Payment identifier — matches the original link ID |
transaction_id |
Unique SecPaid transaction ID (format: YYYYMMDD-pi-XXXXXXXXXX) |
amount |
Gross amount paid |
net_amount |
Amount after all fees |
service_fee |
SecPaid's service fee |
service_fee_psp |
Payment provider (Stripe) fee |
status |
Success, Pending |
payout_status |
Whether this payment has been included in a nightly payout |
is_split_link |
"true" for split payments |
is_dispute |
"true" if a dispute was raised |
is_refund |
"true" if a refund was processed |
payment_method |
card, Bank Transfer, etc. |
transaction_type |
Basic, Split, Personal QR, Refund, Dispute, Dispute Refund |
Filter Parameters¶
| Parameter | Behaviour |
|---|---|
pay_id |
Return a single specific payment, ignoring date filters |
date |
Return all payments on a specific date (YYYY-MM-DD) |
since |
Return payments from the past N days. 0 or omitted = today only |
search |
Search across recipient_note, amount, payment_method, transaction_id, created_at |
limit |
Cap the number of results (default: 200) |
Payout Transactions¶
Payouts are generated every night. Each payout batches all successful pay-ins from the previous day and represents the transfer to your account.
Fetching Payouts¶
POST /api/v2/getPayOutTransactions
curl --location 'https://app.secpaid.com/api/v2/getPayOutTransactions' \
--header 'token: YOUR_API_KEY' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'limit=50'
Example Response¶
{
"data": [
{
"payout_id": "19",
"user_id": "b44c4429-4a7b-4e27-85af-c1c2f43f4ffe",
"transaction_id": "20241012-po-WHk3KxTdHQ",
"payout_amount": "1.23",
"service_fee": "0.06",
"net_amount": "1.17",
"payout_status": "InProgress",
"request_date": "2024-10-12",
"created_at": "2024-10-13T01:58:04Z",
"is_split_link": "false",
"is_dispute": "false",
"is_refund": "false"
}
],
"ResponseCode": 1,
"ResponseMsg": "List retrieved successfully",
"Result": "True",
"ServerTime": "CEST"
}
Payout Statuses¶
| Status | Meaning |
|---|---|
Pending |
Payout is queued |
InProgress |
Transfer is being processed |
Completed |
Funds have been transferred to your account |