Transactions represent payment operations processed through the Rinne platform. Each transaction is linked to a merchant, processed through a provider affiliation, and can support various payment methods.Documentation Index
Fetch the complete documentation index at: https://docs.rinne.com.br/llms.txt
Use this file to discover all available pages before exploring further.
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
PIX guidelines
- Installments: Must be 1 for PIX (defaults to 1 if not sent).
- When
pix_data.due_dateis provided:consumeris required withfull_name,document_number, anddocument_type. Useexpiration_in_days_after_due_date; do not sendexpiration_in_seconds. - When
pix_data.due_dateis not provided: Useexpiration_in_seconds; do not sendexpiration_in_days_after_due_date.
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.BolePix transaction
BolePix is a hybrid payment method that generates both a boleto (bank slip) and a PIX QR code. Customers can pay using either method.BolePix requirements
- Minimum amount: 500 cents (R$ 5.00)
- Maximum amount: 1,500,000,000 cents (R$ 15,000,000.00)
- Installments: Must be 1 (no installment support)
- Consumer: Required with
full_name,document_type,document_number, and full address includingstreet_number
BolePix-specific fields
due_date: Payment due date in YYYY-MM-DD format (required, must be today or later)expiration_in_days_after_due_date: Days after due date before expiration (0-59, default: 0)discount: Optional discount configurationamount: Fixed discount amount in cents (for FIXED modality)percentage: Discount percentage (for PERCENTAGE modality)modality:FIXEDorPERCENTAGEuntil_date: Date until which discount applies (must be before or equal to due_date)
fine_percentage: Fine percentage applied after due date (0.01-100%)monthly_interest_percentage: Monthly interest divided by 30 and applied per day after due date (0.01-100%)
The minimum amount after discount is applied must be at least 500 cents (R$ 5.00).
Card transaction
Use Card transactions, Wallet transactions, and 3D Secure authentication for production-ready implementation details.
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)cardholder_name: Name of the cardholder as it appears on the cardlast_digits: Last 4 digits of the card number (exactly 4 digits)cryptogram: Required for authenticated/tokenized 3DS flows (directly or injected fromthree_d_secure_session_id)authentication_type: Currently only3DSis supported
3DS challenge strategy flags
Card transaction creation supports two optional flags:require_3ds: Forces immediateAWAITING_3DSstatus and defers provider authorization until/authenticateis called with an authenticated 3DS session.refuse_on_challenge: Refuses challenge-triggered paths immediately (REFUSED) instead of moving toAWAITING_3DS.
- Use
require_3dsto enforce 3DS while staying in a pure transaction-first flow (no separate session-first policy path required). - Use
refuse_on_challengeto fail fast when you intentionally do not support challenge handling for a merchant or transaction segment.
refuse_on_challenge blocks a challenge-triggered path, the transaction uses:
status:REFUSEDstatus_reason:CHALLENGE_NOT_ALLOWED
refuse_on_challenge is enabled, non-challenge transactions still follow normal provider processing.
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) |
AWAITING_3DS | Awaiting 3DS authentication |
AUTHORIZED | Payment authorized but not captured |
APPROVED | Payment successfully processed |
REFUSED | Payment declined by provider/acquirer for a business reason |
FAILED | Provider HTTP call errored (4xx/5xx, timeout, network error) |
EXPIRED | Payment window expired |
PENDING_REFUND | Refund is being processed |
REFUNDED | Fully refunded |
PARTIALLY_REFUNDED | Partially refunded |
CHARGEDBACK | Disputed and reversed |
PENDING_CANCELLATION | Cancellation in progress (BOLEPIX only) |
CANCELLED | Transaction cancelled before payment (BOLEPIX only) |
REFUSED vs FAILED:
REFUSED means the provider explicitly declined the transaction for a
business reason (e.g., insufficient funds, invalid card). FAILED means the HTTP call to the
provider errored (4xx/5xx, timeout, network failure). Both are terminal states.REFUSED outcomes, status_reason can include values such as PROVIDER, ACQUIRER,
ANTIFRAUD, NO_ACQUIRER, ACQUIRER_TIMEOUT, and CHALLENGE_NOT_ALLOWED.
Cancelling BOLEPIX transactions
You can cancel BOLEPIX transactions that are inWAITING_PAYMENT status before the customer pays:
Cancellation behavior
When you cancel a BOLEPIX transaction:- The transaction status changes to
PENDING_CANCELLATION - A cancellation request is sent to the provider
- If successful, the status changes to
CANCELLED - If the provider times out, the status remains
PENDING_CANCELLATION
Non-terminal cancellation: The cancellation may be non-terminal. If the provider times out, the transaction remains in
PENDING_CANCELLATION. Final reconciliation to CANCELLED is performed asynchronously when the provider sends the bolepix.cancelled webhook. Poll the transaction or subscribe to the transaction.status-changed webhook rather than assuming immediate finality.Cancellation requirements
- Payment method: Only BOLEPIX transactions can be cancelled
- Status: Transaction must be in
WAITING_PAYMENTstatus - Permissions: Requires
transaction.cancelormerchant.transaction.cancelpermission
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
Minimum amount validation
Transaction amounts must be greater than the calculated fee. When creating a transaction, the system validates that the amount covers the fee based on the merchant’s fee policy. If the amount is insufficient, the API returns a validation error:constraints object provides:
minimumAmount: The minimum amount required for the transaction (calculated fee + 1 cent)calculatedFee: The total fee that would be charged for this transaction
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.
Automatic anticipation
Each transaction includes anautomatic_anticipation boolean field, set at creation time based on the affiliation’s anticipation_type. When the affiliation uses AUTOMATIC anticipation, this field is true; otherwise it is false. The value is immutable after creation.
This field can be used as a condition in pricing rules to apply different fee rates depending on whether a transaction is automatically anticipated.
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 PIX, credit card, and debit card transactions partially or fully through the same endpoint. The request body is identical regardless of payment method:Supported payment methods
| Payment method | Refund support |
|---|---|
PIX | Full and partial; multiple refunds allowed up to the remaining refundable amount |
CREDIT_CARD / DEBIT_CARD | One successful refund per transaction. Full any day; partial only from D+1 onward (see warnings below) |
BOLEPIX | Not supported |
Refund rules
- BOLEPIX transactions do not support refunds.
- 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 the transaction status to
PARTIALLY_REFUNDED; full refunds change it toREFUNDED. - Only one refund can be in progress at a time per transaction (
PENDING,PROCESSING, orTIMEOUTstatus). - Card transactions accept only one successful refund. Once a
CREDIT_CARDorDEBIT_CARDtransaction has anyCOMPLETEDrefund, it is treated as terminally refunded and any further refund request is rejected synchronously withHTTP 400. PIX transactions are not subject to this rule. - Balance is checked before processing refunds to ensure sufficient funds.
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 processing semantics
The refund response always includes the current refund status. How that status is determined depends on the payment method.PIX refunds
PIX refunds are processed asynchronously to improve reliability:- A refund record is created with
PENDINGstatus. - The transaction status changes to
PENDING_REFUND. - The system attempts to process the refund with the provider.
- On success, the refund status updates to
COMPLETED. - On timeout, the refund status updates to
TIMEOUTand is queried again later. - On other transient errors, the refund stays
PENDINGfor automatic retry.
For PIX, transient provider errors (timeout, insufficient balance, etc.) cause the refund to be automatically retried until it succeeds or is manually cancelled.
Card refunds
Card refunds resolve as far as possible on the same API call:- A definitive provider response (success or rejection) returns synchronously with the refund already in its terminal state —
COMPLETEDfor a successful cancel,FAILEDfor a definitive rejection (for example, an acquirer business decline).FAILEDcard refunds are terminal and not retried; submit a new refund request to try again. - An uncertain outcome (acquirer 5xx or network timeout) triggers an inline status query against the acquirer. If that query resolves the outcome, you still get
COMPLETEDorFAILEDon the same call. Otherwise the refund moves toTIMEOUTand is reconciled asynchronously. - A
PENDING_REFUNDresponse on a card transaction means the request reached us but did not produce a definitive answer; we will retry the (idempotent) cancel.
Cancelling a pending refund
You can cancel a refund that is inPENDING status:
- The refund status changes to
CANCELLED - The transaction status reverts based on remaining refunds:
APPROVEDif no other completed refunds existPARTIALLY_REFUNDEDif other completed refunds exist
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,TIMEOUT,CANCELLED) - reason: Reason for the refund
- description: Optional additional description (nullable)
- provider_refund_identification: Provider-specific identifier for the refund, such as E2E ID for PIX or ARN for cards (nullable)
- metadata: Optional custom key-value pairs for tracking and integration (nullable)
- created_at / updated_at: Timestamps
Refund status lifecycle
| Status | Description |
|---|---|
PENDING | Refund created, awaiting processing or retry |
PROCESSING | Refund is being processed by the provider |
COMPLETED | Refund successfully processed |
FAILED | Refund failed permanently |
TIMEOUT | Provider request timed out, will be retried |
CANCELLED | Refund was manually cancelled |
Automatic refund processing
Rinne automatically monitors and processes refunds through background jobs:- Pending refunds: Processed every 30 minutes. PENDING refunds older than 2 minutes are retried with the provider.
- Timeout refunds: Checked every 5 minutes. TIMEOUT refunds are queried at the provider to sync their status. If not found, they revert to PENDING for reprocessing.
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:
Transaction receipts
Generate PDF receipts for completed PIX transactions, including both original payments and refunds.Receipt eligibility
Receipts are available for transactions that meet these requirements:- Status:
APPROVED,REFUNDED, orPARTIALLY_REFUNDED - Payment method: PIX only (currently supported)
- Payer information: Transaction must have payer data
- End-to-end ID: Transaction must have a valid PIX end-to-end identifier
Receipt types
- PAYMENT: Receipt for the original transaction payment
- REFUND: Receipt for each completed refund with a provider identification
Generating receipts
Receipt response
The response includes a list of receipts (payment and any refunds):Payer/receiver direction
- Payment receipts: Payer is the customer, receiver is the merchant
- Refund receipts: Payer is the merchant, receiver is the customer (reversed)
CPF documents are masked for privacy (e.g.,
***.456.789-**), while CNPJ documents are shown in full.Next steps
rinne-js SDK
Accept Apple Pay & Google Pay on the web
PIX Payments
Learn how to process PIX transactions
Webhooks
Receive transaction status updates
API Reference
Explore transaction endpoints

