Skip to main content

Initiate POS Transaction

This endpoint allows a user to create and send a transaction to a POS terminal.
curl -X POST 'https://developers.flouci.com/api/transactions/init_pos_transaction' \
  -H 'Authorization: Bearer <APP_PUBLIC>:<APP_SECRET>' \
  -H 'Content-Type: application/json' \
  -d '{
    "id_terminal": "terminal",
    "serial_number": "SN123456",
    "amount_in_millimes": 1000,
    "payment_method": "WALLET",
    "developer_tracking_id": "dev_track_123"
  }'

Body

id_terminal
string
required
Unique identifier of the POS terminal.
serial_number
string
required
Serial number of the POS terminal.
amount_in_millimes
integer
required
Transaction amount in millimes.
payment_method
string
required
Payment method (NFC, CARD, WALLET, CHECK).
developer_tracking_id
string
required
An ID for you to track the payment. This is a free field that Flouci doesn’t check against
webhook
string
Webhook URL to notify transaction status.
{
  "success": true,
  "terminal_id": "testing1234",
  "status_code": 201
}

Get POS Transaction Status

This endpoint retrieves the status of a POS transaction.
curl -X GET 'https://developers.flouci.com/api/transactions/get_pos_transaction_status?developer_tracking_id=dev_track_123' \
  -H 'Authorization: Bearer <APP_PUBLIC>:<APP_SECRET>'

Query Parameters

flouci_transaction_id
uuid
Unique transaction ID from Flouci. Mutually exclusive with developer_tracking_id.
developer_tracking_id
string
An ID for you to track the payment. This is a free field that Flouci doesn’t check against. May return multiple rows if you reused the same tracking ID.
id_terminal
string
Optional terminal identifier to narrow the lookup to a single terminal.
{
  "success": true,
  "transactions": [
    {
      "developer_tracking_id": "7cd66b29-a8b7-4e4c-aedf-0d98eeb92703",
      "flouci_transaction_id": "1b7b29df-6826-4b33-b5a6-fb86fcc15e5c",
      "payment_status": "PS",
      "payment_method": "card",
      "amount_in_millimes": 50000,
      "currency": "TND",
      "terminal_id": "T001",
      "settlement_status": "AVAILABLE"
    }
  ],
  "status_code": 200
}

Response Fields

developer_tracking_id
string
Your merchant-supplied reference. May be null.
flouci_transaction_id
string
required
Unique POS transaction identifier from Flouci.
payment_status
string
required
POS payment status code: PS (succeeded), PP (pending), PF (failed), PR (refunded), RP (refund pending), RF (refund failed), PU (unknown), PA (authorized).
payment_method
string
required
One of card, wallet, nfc, check, or cash.
amount_in_millimes
integer
required
Transaction amount in millimes.
currency
string
required
Currency code. Currently always TND.
terminal_id
string
Identifier of the terminal that processed the transaction. May be null.
settlement_status
string
required
Settlement lifecycle state for this transaction. For POS, possible values are PROCESSING (auth pending), AVAILABLE (settled into your wallet), or NOT_APPLICABLE (failed / refunded). POS transactions never reach IN_PAYOUT or PAID — they settle directly into your Flouci wallet rather than entering the card payout pipeline. See Settlement Status for the full reference.
In test mode, NFC mock responses do not include settlement_status. Production responses always include it.