Pre-Orders with QR Integration - API Documentation

Version: 1.0.0 | Last modified: 03/26/2024

Introduction

This document describes the TotalCoin API endpoints for managing pre-orders with QR code generation and processing.

Pre-Order with QR Flow Diagram

Authentication

API access control is implemented using OAuth 2.0 with Bearer Tokens.

Endpoint

POST api/auth/login

Request

{
    "username": "",
    "password": ""
}
Field Type Description Required
username String Username Yes
password String Password Yes

Response (HTTP 200)

{
    "token": "",
    "expires_in": 3600
}
Field Type Description
token String Authentication token
expires_in Number Token validity in seconds

Possible Errors

Code Description
401 Invalid or non-existent credentials
403 Insufficient permissions to access the API
Credentials: Must be requested from the technical department.

Create Pre-Order

Creates a new pre-order and generates a QR code for payment.

Endpoint

POST https://apicobranzastest.totalcoin.com/api/iep/pre-order

Request

        {
            "concept": "test-jpgq",
            "expirationDate": "2025-03-26T17:23:14.099Z",
            "businessUnit": 348,
            "externalReference": "JPGQ_PAYMENT_001",
            "qrAmountType": "closed",
            "amount":10,
            "qrType": "static",
            "resetOnPayment": true,
            "operationId": "ca8964d1-b90b-4583-98da-bfc7f757d6e7",
            "dni": "27594189",
            "companyReferenceToConciliate": "OP:000001110001"
        }
                
Field Type Description Required
concept String A description or identifier for the payment Yes
expirationDate String When the QR code will expire and no longer be valid for payment Yes
businessUnit String Identifier for the business unit receiving the payment Yes
externalReference String External reference ID for tracking/reconciliation Yes
qrAmountType Object Whether amount is fixed ("closed") or variable ("open") Yes
amount String The payment amount in the default currency Yes
qrType String "static" for fixed QR codes, "dynamic" for one-time use Yes
resetOnPayment String If true, QR code can be reused after successful payment Yes
operationId String Merchant Transaction Reference, this is a value provided by Arbet System and indicates the id of this payment in your system Yes
dni String Document number of the payer Yes
companyReferenceToConciliate String Reference used for payment reconciliation Yes

Response (HTTP 201)

                    {
                        "id": 13010,
                        "qrCode": "00020101021143510033com.totalcoin.integracionesqrtest0210000001301050150011307180924815126002200002228000000000577235204490053030325802AR5905ARBET6012Buenos Aires62200116JPGQ_PAYMENT_0016304584D",
                        "expirationDate": "2025-03-26T17:23:14.099Z",
                        "amount": 10.0,
                        "concept": "test-jpgq", 
                        "businessUnitName": "ARBET",
                        "cashier": "ARBET ",
                        "externalReference": "JPGQ_PAYMENT_001",
                        "isEnabled": true
                    }
                
Field Type Description
id String Unique identifier assigned to the preorder
qrCode String The generated QR code string that can be rendered for payment
expirationDate String When the QR code will expire and become invalid
amount String The payment amount in the default currency
concept String Description or identifier for the payment
businessUnitName String Name of the business unit receiving payment
cashier String Name of the cashier/point of sale
externalReference String External reference ID for tracking
isEnabled String Whether the QR code is currently active and usable

Possible Errors

Code Description
400 Invalid request parameters
401 Unauthorized - Invalid or missing token
403 Forbidden - Insufficient permissions

Webhook Notifications

The notification webhook is called when a payment is received either through a transfer, QR payment, or card payment.

It is also called when automatic reconciliation of the pre-order occurs.

Webhook Payload

                    {
                        "Concepto": "1234567890",
                        "Referencia": "0000004053",
                        "Monto": 1000,
                        "MontoNeto": 937.2,
                        "Tarifas": 51.9,
                        "Impuestos": 10.9,
                        "FechaCreacion": "11/19/2020 16:40:20",
                        "FechaConfirmacion": "11/19/2020 16:40:23",
                        "FechaAcreditacion": "04/21/2021 14:34:53", 
                        "Estado": "APROBADO",
                        "MetodoPago": "TARJETA", 
                        "Operacion": "COBRANZA TARJETA",
                        "NombreCompletoEmisor": "TOTAL COIN", 
                        "EmailEmisor":"@totalcoin.com", 
                        "NombreCompletoReceptor": "TOTAL COIN", 
                        "EmailReceptor": "@totalcoin.com", 
                        "CuilCuitEmisor": "11111111",
                        "CuilCuitReceptor": "11111111", 
                        "BarCode": null,
                        "CbuOrigen": "", 
                        "CvuOrigen": null, 
                        "Tarjeta": "VISA",
                        "Cuotas": "02", 
                        "ReferenciaMerchant": null
                    }
                

The most important fields in this body are:

Field Description
Referencia Internal and unique reference number for the Totalcoin transaction
Monto Amount
Estado Latest operation status
ReferenciaMerchant Merchant's Operation ID
Webhook Configuration: Contact the technical department to configure webhook endpoints and define their security.