Payments / RailsPCT
PCT
Argentina's interoperable QR transfer standard. Used for pay-in in Argentina.
Rail overview
Use PCT when the payer should complete an Argentine transfer through a QR or interoperable transfer experience.
Conomy creates the payment instruction, returns the rail data to present to the payer, and advances the payment once the provider confirms the transfer.
Pair PCT with TOPUP_ACCOUNT or PURCHASE when the user is actively present and can complete the transfer immediately.
PCT QR pay-in is not a CVU flow. Do not call GET /payment-origins, do not send cvu.code, and do not capture the generated QR payment in the Postman flow.
- Create the payment with
POST /payments, usingPCTas the origin andACCOUNTas the destination. - Use the
totalAmountamount mode withcurrency: "ARS". Do not includepurchaseAmountorpurchaseCurrencyin the same request. - Read the payment with
GET /payments/{id}and storeorigins[0].pct.qrCode.
{ "identityId": "<IDENTITY_ID>", "accountNumber": "<ACCOUNT_NUMBER>", "product": "ARS:ARS", "type": "TOPUP_ACCOUNT", "totalAmount": "10000.00", "currency": "ARS", "origins": [ { "name": "PCT", "type": "PCT", "currency": "ARS", "pct": { "successUrl": "https://yourapp.com/success", "failedUrl": "https://yourapp.com/failed", "customer": { "phoneNumber": "1155551234", "phoneNumberPrefix": "54", "email": "usuario@example.com" } } } ], "destinations": [ { "type": "ACCOUNT", "currency": "ARS", "identity": { "identityId": "<IDENTITY_ID>" }, "account": { "accountNumber": "<ACCOUNT_NUMBER>" } } ]}Required fields
Section titled “Required fields”| Field | Type | Description |
|---|---|---|
type | string | Must be "PCT" |
currency | string | Must be "ARS" |
pct.customer.phoneNumber | string | Payer’s phone number (digits only) |
pct.customer.phoneNumberPrefix | string | Country code (e.g., "54" for Argentina) |
pct.customer.email | string | Payer’s email |
pct.successUrl | string | Redirect URL on success |
pct.failedUrl | string | Redirect URL on failure |
Example
Section titled “Example”{ "type": "PCT", "currency": "ARS", "pct": { "successUrl": "https://yourapp.com/success", "failedUrl": "https://yourapp.com/failed", "customer": { "phoneNumber": "1155551234", "phoneNumberPrefix": "54", "email": "usuario@example.com" } }}Response fields
Section titled “Response fields”| Field | Description |
|---|---|
pct.qrCode | QR code payload. Production: EMVCo string ready to encode into a scannable QR image. Sandbox / staging: URL to Conomy’s QR simulator (see Sandbox behavior). |
In production, render the qrCode value as a QR image. Your end user can scan it with Mercado Pago, BBVA, Galicia, Naranja X, or any other PCT-compatible app.
Sandbox behavior
Section titled “Sandbox behavior”In sandbox and staging, pct.qrCode is not an EMVCo string — it is an HTTPS URL pointing to Conomy’s QR simulator. The simulator replaces the real PCT payer app so you can drive the payment lifecycle from a browser without scanning anything.
- How to use it: open the
qrCodeURL in any browser. The simulator page lets you approve or reject the payment manually. Approving advances the transaction through the same status sequence (CREATED → CAPTURED → RECEIVED → SETTLED) you will see in production. - Detect the environment client-side: check whether
pct.qrCodestarts withhttps://— if it does, you are in sandbox/staging and should render a clickable link instead of a QR image. - No change in production: when your integration goes live against
api.conomyhq.com(no/sandboxsegment),pct.qrCodeis always the real EMVCo string from the provider.
Valid destinations
Section titled “Valid destinations”When PCT is used as origin, the valid destinations are:
| Node | Description |
|---|---|
ACCOUNT | Internal platform account |
Object
Section titled “Object”The QR code string that can be rendered or scanned for interoperable transfer payments in Argentina under the BCRA's PCT (Transfer QR) standard.
Information on who pays the transaction
idstringUnique identifier for the internal service.
firstNamestringrequiredPayer's name
emailstringPayer's email
lastNamestringPayer's last name
phoneNumberstringPayer's phone number without prefix
phoneNumberPrefixstringPhone number prefix (e.g., +57)
documentTypestringDocumeny type of the entity (e.g., RUT, CURP, CURL). Go to the Supported Identity document types page for the complete list of supported values.
documentNumberstringThe document number associated with the documentType
addressobjectThe entity’s address information.
administrativeAreaLevel1stringThe first-level administrative division.
administrativeAreaLevel2stringThe second-level administrative division.
administrativeAreaLevel3stringThe third-level administrative division.
streetstringThe name of the street.
streetNumberstringThe street number.
optionalAddressstringAdditional address details.
countrystringCountry of operations for the entity, specified using the ISO 3166-1 alpha-3 standard (e.g., CHL, USA, MEX). Go to the countries page for the complete list of supported values.
zipcodestringZipcode f the address
Redirect url in case of success
Redirect url in case of failure