Transaction basics
A transaction requires:- An active provider affiliation
- Transaction amount (in cents)
- Payment method (PIX, credit card, etc.)
- Capture method (e-commerce, POS, etc.)
- Unique request ID for idempotency
Entity relationships
Creating transactions
PIX transaction
Immediate PIX payment
PIX with due date
For invoice payments, you can create PIX transactions with a due date and pricing modifiers:due_date: Expected payment date (YYYY-MM-DD format)expiration_in_days_after_due_date: Days after due date before expiration (1-365, default: 30)interest: Applied when paid after due datefine: One-time charge when paid after due datediscount: Reduces amount when paid earlyabatement: Permanent amount reduction
When using
due_date, consumer information (full_name, document_number, document_type) is required.Card transaction
Card payment functionality is currently being implemented. The
card_data field will be available once the full implementation is live.Card data requirements
Thecard_data field is required for CREDIT_CARD and DEBIT_CARD payment methods and has the following validation rules:
- Either
number(card PAN) ornetwork_tokenmust be provided (mutually exclusive) expiry_month: Two-digit month (01-12)expiry_year: Four-digit year (YYYY)cryptogram: Required for 3DS authenticationauthentication_type: Currently only3DSis supported (defaults to3DS)
Tokenized payments
For digital wallet payments (Apple Pay, Google Pay), use thenetwork_token field instead of the card number:
- Set
wallet_typetoAPPLE_PAYorGOOGLE_PAY - Provide the
network_tokenfrom the wallet provider - Include the
cryptogramfor secure authentication - Optionally include
display_namefor user-friendly card identification
Transaction status
Transactions move through different statuses during their lifecycle:| Status | Description |
|---|---|
PROCESSING | Transaction is being processed |
WAITING_PAYMENT | Awaiting customer payment (PIX) |
AUTHORIZED | Payment authorized but not captured |
APPROVED | Payment successfully processed |
REFUSED | Payment declined by provider/acquirer |
EXPIRED | Payment window expired |
PENDING_REFUND | Refund is being processed |
REFUNDED | Fully refunded |
PARTIALLY_REFUNDED | Partially refunded |
CHARGEDBACK | Disputed and reversed |
Amounts in cents
All monetary values in the API are represented in cents (integer values):10000= R$ 100.001050= R$ 10.5099= R$ 0.99
Request ID for idempotency
Therequest_id field ensures idempotent transaction creation. If you retry a request with the same request_id, you’ll receive the existing transaction instead of creating a duplicate.
Transaction pricing
Each transaction has associated fees and costs:- Fee: Amount charged to the merchant (your revenue)
- Cost: Amount paid to the provider (your cost)
Refunds
You can refund approved transactions partially or fully:Refund rules
- Only
APPROVEDorPARTIALLY_REFUNDEDtransactions can be refunded - Refund amount cannot exceed:
approved_amount - refunded_amount - When a refund is initiated, the transaction status changes to
PENDING_REFUND - Partial refunds change status to
PARTIALLY_REFUNDED - Full refunds change status to
REFUNDED - Balance is checked before processing refunds to ensure sufficient funds
- Only one refund can be pending at a time per transaction
Refund reasons
| Reason | Description |
|---|---|
CUSTOMER_REQUEST | Customer requested refund |
FRAUD | Fraudulent transaction |
BANKING_ERROR | Banking system error |
PIX_WITHDRAWAL_OR_CHANGE_ERROR | PIX withdrawal or change error |
Refund information in transaction response
When you retrieve a transaction with full details, the response includes arefunds array with complete refund information:
- id: Unique refund identifier
- amount: Refund amount in cents
- status: Refund status (
PENDING,PROCESSING,COMPLETED,FAILED) - reason: Reason for the refund
- description: Optional additional description (nullable)
- created_at / updated_at: Timestamps
Refund status handling
When a refund fails, the transaction status is automatically adjusted:- If the failed refund was the only refund attempt, the transaction returns to
APPROVED
Refund status tracking
Rinne automatically monitors pending refunds and updates their status:- Status is automatically updated based on the provider’s response
- If a refund is not found at the provider, it’s marked as
FAILED
Retrieving transactions
Get a specific transaction
You can retrieve a transaction by ID without specifying the merchant ID:List transactions for a specific merchant
List transactions for all merchants (organization)
Filtering and sorting
Transactions support extensive filtering:status: Filter by transaction status (array)payment_method: Filter by payment methodamount_from/amount_to: Filter by amount rangecreated_at_from/created_at_to: Filter by date rangeprovider: Filter by providersort: Sort by fields (e.g.,-created_at,amount)
Transaction metadata
Store custom data with transactions using themetadata field:

