Transaction builder

Build any valid POST /payments payload from user intent, currency pair, and rail availability.

circle-info

This builder is dynamic: it uses GET /payments/available-products to discover rails and required fields per identity and currency at runtime.

circle-check

If the ConomyHQ Transaction Builder integration is installed in your space, use this block to select values and generate payloads.

Transaction Builder

Build and validate POST /payments payloads, then copy generated JSON or cURL (no execution).

spinner

2. Builder inputs

Input
Description

User intent

TOPUP_ACCOUNT, WITHDRAWAL_ACCOUNT, REMITTANCE, PURCHASE

Amount

purchaseAmount

Source currency

purchaseCurrency

Settlement currency

currency

Identity

identityId

3. Resolve products and rails (dynamic step)

Use this endpoint first. It defines what the user can build for each currency.

Get available products

get

Returns all payment products available for a given identity, organized by currency. Each currency entry includes available pay-in methods with their products and pay-out (withdrawal) methods with their products. Use this endpoint to discover what payment rails are enabled for an account before building a payment flow.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
identityIdstringOptional

Identity ID to retrieve available products for.

currenciesstringOptional

Comma-separated list of currency codes to filter results (e.g., ARS,CLP).

Header parameters
x-api-keystringRequired

The API key used for authentication when making requests to the API Gateway.

User-AgentstringRequired

Identifies the application making the request.

Responses
chevron-right
200

Request processed successfully.

application/json

Available payment products for an identity, organized by currency.

supportedPaymentCurrenciesstring[]Required

Currencies for which pay-in products are available.

supportedPayoutCurrenciesstring[]Required

Currencies for which pay-out products are available.

get
/payments/available-products

Use:

  • byCurrency[].payin.paymentMethods to render origin choices.

  • byCurrency[].payout.withdrawalMethods to render destination choices.

  • requiredFields and requiredFieldTypes to build and validate node inputs.

  • validOrigins and validDestinations to enforce allowed combinations.

4. Route rules by intent

User intent

type

Origin rule

Destination rule

Load internal account

TOPUP_ACCOUNT

Any pay-in rail from paymentMethods

ACCOUNT

Withdraw from internal account

WITHDRAWAL_ACCOUNT

ACCOUNT

Any pay-out rail from withdrawalMethods

Cross-border transfer

REMITTANCE

ACCOUNT or pay-in rail

Any valid pay-out rail

Checkout / customer charge

PURCHASE

Any pay-in rail

ACCOUNT

5. Request shape

circle-exclamation

6. Generate JSON/cURL in the API playground

Use the POST /payments block below to fill the request body and copy the generated request code.

  1. Click Try it in the block.

  2. Complete type, currencies, product, origins, and destinations.

  3. Use the code preview to copy cURL or JSON.

  4. Do not send the request if you only want request generation.

Create Payment

post

When creating a transaction, this endpoint provides a payment method and a provider system to process the payment.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Header parameters
x-api-keystringRequired

The API key used for authentication when making requests to the API Gateway.

User-AgentstringRequired

Identifies the application making the request.

Body
externalIdstringRequired

External reference identifier for integrations.

identityIdstringRequired

Identifier linking the transaction to a specific user or organization.

identityExternalIdstringOptional

External reference identifier for the identity associated with the transaction.

accountNumberstringRequired

The account number involved in the transaction.

totalAmountstringRequired

The total amount of the transaction.

currencystringRequired

Specifies the currency used, following the ISO 4217 standard for fiat currencies (e.g., CLP, ARS, MXN). Go to the currencies page for the complete list of supported values.

descriptionstringOptional

A brief description of the transaction.

typestring · enumRequired

Indicates the purpose of the payment. This field defines how the payment should be processed within the system, based on its intent—such as funding an account, withdrawing funds, transferring between users, collecting funds, or applying fees. Go to the payment types page for the complete list of supported values.

Possible values:
purchaseAmountstringOptional

The amount paid in the transaction.

purchaseCurrencystringOptional

Specifies the currency used, following the ISO 4217 standard for fiat currencies (e.g., CLP, ARS, MXN). Go to the currencies page for the complete list of supported values.

expiresAtstringOptional

Timestamp indicating when the transaction expires, if applicable.

Responses
chevron-right
200

Request processed successfully.

application/json

Schema representing a financial transaction, including details about the transaction's origins, destinations, amounts, fees, and status.

idstringRequired

Unique identifier for the internal service.

externalIdstringRequired

External reference identifier for integrations.

identityIdstringRequired

Identifier linking the transaction to a specific user or organization.

identityExternalIdstringOptional

External reference identifier for the identity associated with the transaction.

accountNumberstringRequired

The account number involved in the transaction.

totalAmountstringRequired

The total amount of the transaction.

currencystringRequired

Specifies the currency used, following the ISO 4217 standard for fiat currencies (e.g., CLP, ARS, MXN). Go to the currencies page for the complete list of supported values.

descriptionstringOptional

A brief description of the transaction.

productstringOptional

The product or service related to the transaction. purchaseCurrency:Currency

statusstringRequired

The current status of the transaction (e.g., PENDING, AUTHORIZED, CAPTURED, ATTEMPT, REFUNDED).

typestring · enumRequired

Indicates the purpose of the payment. This field defines how the payment should be processed within the system, based on its intent—such as funding an account, withdrawing funds, transferring between users, collecting funds, or applying fees. Go to the payment types page for the complete list of supported values.

Possible values:
purchaseAmountstringOptional

The amount paid in the transaction.

purchaseCurrencystringOptional

Specifies the currency used, following the ISO 4217 standard for fiat currencies (e.g., CLP, ARS, MXN). Go to the currencies page for the complete list of supported values.

createdAtstringRequired

Timestamp indicating when the transaction was created.

updatedAtstringRequired

Timestamp indicating the last update to the transaction.

expiresAtstringOptional

Timestamp indicating when the transaction expires, if applicable.

capturedAtstringOptional

Timestamp indicating when the transaction was captured.

authorizedAtstringOptional

Timestamp indicating when the transaction was authorized.

refundedAtstringOptional

Timestamp indicating when the transaction was refunded, if applicable.

settlementstringOptional

Settlement period for the transaction.

post
/payments

7. Common route presets

type: TOPUP_ACCOUNT product: ARS:ARS origin: CVU destination: ACCOUNT

8. Builder validation rules

  1. type controls which origin/destination families are valid.

  2. product must match purchaseCurrency:currency.

  3. For single origin and single destination, amount per node is optional.

  4. For split flows, each node must include amount, and all sums must match the payment amount.

  5. Keep only the node object that matches origins[].type or destinations[].type.

9. Builder checklist

  • Confirm the user goal (TOPUP_ACCOUNT, WITHDRAWAL_ACCOUNT, REMITTANCE, PURCHASE).

  • Confirm source currency (purchaseCurrency) and settlement currency (currency).

  • Call GET /payments/available-products for the target identity.

  • Select a rail that appears in paymentMethods/withdrawalMethods.

  • Render only the fields listed in requiredFields.

  • Generate and copy cURL/JSON.

Last updated