Skip to main content

Overview

PC Fix supports cryptocurrency payments using USDT (Tether) through Binance. The platform automatically syncs USDT/ARS exchange rates and provides customers with payment instructions for direct transfers.
Crypto payments are manual transfers that require admin approval after receipt upload. This is different from automated payment gateways like MercadoPago.

Payment Methods

PC Fix supports two crypto payment methods:
  • BINANCE: Direct transfer via Binance Pay or P2P
  • TRANSFERENCIA: Traditional bank transfer (included here for comparison)

Environment Configuration

The crypto payment system requires these configuration fields in the database:

Configuration Storage

Store Binance payment details in your system configuration:

USDT Price Synchronization

Automatic Sync

PC Fix automatically syncs USDT prices every 4 hours using a cron job:

CryptoService Implementation

The CryptoService fetches live rates from Binance API:

Manual Sync Endpoint

Admins can manually trigger a price update:

Creating Sales with Crypto

When creating a sale, customers can select BINANCE as the payment method:
1

Create Sale Request

2

Price Calculation

Crypto payments receive an 8% discount compared to MercadoPago:
3

Sale Creation

The sale is created with PENDIENTE_PAGO status:

Payment Workflow

1

Customer Selects Crypto Payment

Customer chooses BINANCE as payment method during checkout.
2

View Payment Instructions

Customer receives payment instructions showing:
  • Total amount in ARS
  • Equivalent amount in USDT (calculated using cotizacionUsdt)
  • Binance Pay alias or CBU
  • Sale ID for reference
3

Customer Makes Transfer

Customer transfers USDT through:
  • Binance Pay (using alias)
  • Binance P2P (using CBU)
  • Direct wallet transfer
4

Upload Receipt

Customer uploads proof of payment:
5

Admin Approval

After receipt upload, sale status changes to PENDIENTE_APROBACION. Admin reviews and approves:
6

Status Update

Admin updates status to APROBADO to confirm payment:

API Endpoints

Updating Payment Method

Customers can switch between payment methods before completing payment:

Price Recalculation

When switching payment methods, prices are recalculated:

Sale Status Workflow

Crypto payments follow this status progression:

Status Descriptions

  • PENDIENTE_PAGO: Waiting for customer to make payment
  • PENDIENTE_APROBACION: Receipt uploaded, awaiting admin verification
  • APROBADO: Payment confirmed by admin
  • RECHAZADO: Payment rejected (invalid receipt or amount mismatch)
  • ENVIADO: Order shipped to customer
  • ENTREGADO: Order delivered
  • CANCELADO: Order cancelled by customer or admin

Calculating USDT Amount

To display the USDT equivalent to customers:

Alternative: CriptoYa Integration

The platform also includes an alternative sync method using CriptoYa API:

Frontend Integration Example

Best Practices

Price Sync Frequency: USDT prices are synced every 4 hours. For volatile markets, consider increasing frequency.
Always verify the transferred USDT amount matches the expected amount before approving orders. Use the cotizacionUsdt at the time of sale creation.

Security Considerations

  • Store Binance credentials securely in database, never in code
  • Validate receipt images before storing
  • Implement rate limiting on sync endpoints
  • Log all payment status changes for audit trail
  • Verify USDT amounts manually before approval

User Experience

  • Display real-time USDT rates during checkout
  • Show clear payment instructions with copy buttons
  • Provide receipt upload with image preview
  • Send email notifications at each status change
  • Include payment deadline (e.g., 24 hours)

Troubleshooting

USDT price not syncing:
  • Check Binance API availability
  • Verify cron job is running
  • Check server timezone settings
  • Review error logs for API issues
Receipt upload fails:
  • Check file upload middleware configuration
  • Verify storage path exists and is writable
  • Check file size limits
  • Ensure correct file types are accepted
Amount mismatches:
  • Always use the USDT rate at sale creation time
  • Store rate in sale record for reference
  • Display rate used when showing payment instructions
  • Account for Binance fees in calculations

Additional Resources