Skip to main content

Transaction details

Read the transactions you have created, including their status, fees and payments. Use these endpoints together with the webhooks to confirm a transaction's state.

Get transactions​

Get transactions
curl https://sandbox-api.safepaynordic.dk/v2/transactions \
-H 'Authorization: Bearer {API_TOKEN}'
Response example
{
"items": [
{
"transactionId": "a95a1320-fce8-4838-9ff2-286501b45350",
"amount": 10000.00,
"currency": "DKK",
"status": "INPROGRESS",
"created": "2026-06-22T07:29:05.751127Z",
"referenceId": "your-reference-id",
"payee": {
"safepayAccountId": "8839c3be-64f6-4901-861a-3fd15f26596b",
"name": "Jane Doe",
"phoneNumber": "+45 87654321"
},
"payer": {
"safepayAccountId": "5e2b9d7a-1f44-4c0b-9f0e-2c1a7d3e8b10",
"name": "John Doe",
"phoneNumber": "+45 12345678"
},
"title": "Adidas Campus 00s",
"fees": {
"payee": 79.00,
"payer": 80.00,
"tenant": 159.00,
"safepay": 5.00
},
"payments": {
"inbound": {
"amount": 10080.00,
"currency": "DKK"
}
},
"expectedCompletion": null
}
],
"count": 20
}

Transactions are returned newest first. The endpoint accepts these optional query parameters:

  • skip / take: Page through the results. take defaults to 20 and is capped at 100. count is the total number of matches, ignoring skip and take.
  • search: Free-text search (case-insensitive, partial match) on the transaction id, referenceId, title, description, and the payee's and payer's name, email and phone number.
  • referenceId: Filter by your referenceId. This is a case-insensitive, partial match, so ref-1 also matches ref-10. Check referenceId on the results if you need an exact match.

Get transaction​

Get transaction
curl https://sandbox-api.safepaynordic.dk/v2/transactions/{transactionId} \
-H 'Authorization: Bearer {API_TOKEN}'
Response example
{
"transactionId": "a95a1320-fce8-4838-9ff2-286501b45350",
"status": "INPROGRESS",
"referenceId": "your-reference-id",
"amount": 10000.00,
"currency": "DKK",
"fees": {
"payee": 79.00,
"payer": 80.00,
"tenant": 159.00,
"safepay": 5.00
},
"payee": {
"amount": 9921.00,
"safepayAccountId": "8839c3be-64f6-4901-861a-3fd15f26596b",
"referenceId": "your-payee-reference-id",
"name": "Jane Doe",
"phoneNumber": "+45 87654321"
},
"payer": {
"amount": 10080.00,
"safepayAccountId": "5e2b9d7a-1f44-4c0b-9f0e-2c1a7d3e8b10",
"referenceId": "your-payer-reference-id",
"name": "John Doe",
"phoneNumber": "+45 12345678"
},
"title": "Adidas Campus 00s",
"payments": {
"inbound": {
"amount": 10080.00,
"payments": [
{
"paymentId": "3811b9da-dd5b-4834-b266-2414e76276aa",
"payer": {
"safepayAccountId": "5e2b9d7a-1f44-4c0b-9f0e-2c1a7d3e8b10",
"referenceId": "your-payer-reference-id",
"name": "John Doe",
"phoneNumber": "+45 12345678"
},
"method": "PSD2",
"amount": 10080.00,
"currency": "DKK",
"status": "SUCCEEDED",
"created": "2026-06-22T07:29:05.751127+00:00",
"authorized": "2026-06-22T07:30:12.104311+00:00",
"failed": null
}
]
},
"outbound": {
"amount": 0.00,
"payments": []
}
},
"expectedCompletion": null
}

The endpoint returns 404 Not Found if the transaction doesn't exist or wasn't created by you.

Fields​

Transaction​

  • status: One of:
    • CREATED: created and awaiting payment or an invitation response.
    • INPROGRESS: payment received, awaiting delivery/completion.
    • SUCCEEDED: completed; payout scheduled or made.
    • CANCELLED: cancelled, returned or expired.
    • UNKNOWN: the state couldn't be mapped to one of the above. Contact Safepay Nordic if you see it.
  • payer.amount: What the payer pays: amount plus the payer's fee.
  • payee.amount: What the payee is paid out: amount minus the payee's fee.
  • expectedCompletion: The expected completion date, if set when creating the transaction.

Fees​

  • payee / payer: The fee charged to the payee and the payer: the payeeFixedFee and payerFixedFee you set when creating the transaction.
  • tenant: Your fee for the transaction: payee plus payer.
  • safepay: Safepay Nordic's fee to you, calculated from your agreement. It's taken from your fee when your fee covers it; otherwise it's invoiced to you.

Payments​

  • payments.inbound.amount: The total amount paid into escrow: all authorized payments, plus any money moved in from another transaction. Cancelled and refunded amounts aren't subtracted here; they are counted in payments.outbound.amount.
  • payments.inbound.payments: The individual payments into escrow:
    • method: PSD2, VIPPSMOBILEPAY, FIK, BANKTRANSFER or UNKNOWN.
    • status: INPROGRESS, SUCCEEDED, FAILED or REFUNDED. A cancelled payment is reported as FAILED.
    • amount / currency: The amount paid. The currency is included both in amount and as a separate field.
    • created / authorized / failed: When the payment was created, authorized and, if applicable, failed or cancelled.
  • payments.outbound.amount: The total amount that has left escrow: payouts, refunds and cancelled payments, plus any money moved to another transaction. The amount still held in escrow is payments.inbound.amount minus payments.outbound.amount.
  • payments.outbound.payments: The individual payouts from escrow:
    • destination: The IBAN, BBAN or FIK the payout is sent to.
    • text: The text on the transfer.
    • payee: Who receives the payout.
    • amount / currency: The amount paid out.
    • status: SCHEDULED, INPROGRESS, SUCCEEDED or FAILED.
    • created: When the payout was created.

Vehicle transactions also include an autoInformation object. It isn't covered on this page.