Skip to content

Suggested

API Dashboard

RecipesCreate your first Top-up

Create your first Top-up

You can use payment-attempts or create the payment directly.

Tip

You can use payment-attempts or create the payment directly.

A TOPUP_ACCOUNT transaction funds an internal conomy_hq account. The origin is a payment rail (e.g., ETPAY in Chile, PIX in Brazil) and the destination is an internal ACCOUNT.

01
Create payment

Use an external rail as origin and an internal account as destination.

02
Redirect or authorize

Send the customer to the provider URL when the rail requires it.

03
Capture

Capture the payment after authorization or provider confirmation.

04
Receive webhook

Confirm the state change from webhook delivery or sandbox simulation.

05
Check balance

Verify that the destination account reflects the settled funds.

Create Payment

Creates a top-up using a payment rail as the origin and an internal account as the destination.

The example below uses ETPAY (open banking, Chile). Replace the origins node type and sub-object to use a different rail — see the Nodes page for all available rails.

Request
POST /sandbox/payments HTTP/1.1
Host: api.conomyhq.com
x-api-key: {YOUR_API_KEY}
Authorization: Bearer {ACCESS_TOKEN}
conomyhq-api-version: 24-04-2025
User-Agent: MyApp/1.0
Content-Type: application/json
Accept: application/json

{
  "identityId": "<IDENTITY_ID>",
  "accountNumber": "<ACCOUNT_NUMBER>",
  "product": "CLP:CLP",
  "type": "TOPUP_ACCOUNT",
  "purchaseAmount": "700000",
  "purchaseCurrency": "CLP",
  "currency": "CLP",
  "origins": [
    {
      "type": "ETPAY",
      "currency": "CLP",
      "etpay": {
        "successUrl": "https://yourapp.com/success",
        "failedUrl": "https://yourapp.com/failed",
        "customer": {
          "firstName": "John",
          "email": "john@example.com"
        }
      }
    }
  ],
  "destinations": [
    {
      "type": "ACCOUNT",
      "currency": "CLP",
      "identity": {
        "identityId": "<IDENTITY_ID>"
      },
      "account": {
        "accountNumber": "<ACCOUNT_NUMBER>"
      }
    }
  ]
}
Response
{
  "id": "<PAYMENT_ID>",
  "type": "TOPUP_ACCOUNT",
  "status": "CREATED",
  "product": "CLP:CLP",
  "origins": [
    {
      "type": "ETPAY",
      "etpay": {
        "url": "https://provider.example/authorize"
      }
    }
  ]
}
Note

The response will include origins[0].etpay.url — redirect the customer to that URL to authorize the payment at their bank.

Capture Payment

After the customer completes the bank authorization, capture the funds to reflect them in the account.

Request
POST /sandbox/payments/{PAYMENT_ID}/captured HTTP/1.1
Host: api.conomyhq.com
x-api-key: {YOUR_API_KEY}
Authorization: Bearer {ACCESS_TOKEN}
conomyhq-api-version: 24-04-2025
User-Agent: MyApp/1.0
Accept: application/json
Response
{
  "id": "<PAYMENT_ID>",
  "status": "CAPTURED"
}
Webhook simulation

Simulate a webhook notification to test your payment confirmation handling.

Request
POST /sandboxwebhook/payments/received/payment-provider HTTP/1.1
Host: api.conomyhq.com
x-api-key: {YOUR_API_KEY}
Authorization: Bearer {ACCESS_TOKEN}
conomyhq-api-version: 24-04-2025
User-Agent: MyApp/1.0
Content-Type: application/json
Accept: application/json

{
  "id": "<PAYMENT_ID>"
}
Response
{
  "ok": true
}
Check account balance

Verify that the funds were credited correctly into the account.

Request
GET /sandbox/accounts?accountNumber=<ACCOUNT_NUMBER> HTTP/1.1
Host: api.conomyhq.com
x-api-key: {YOUR_API_KEY}
Authorization: Bearer {ACCESS_TOKEN}
conomyhq-api-version: 24-04-2025
User-Agent: MyApp/1.0
Accept: application/json
Response
{
  "id": "<ACCOUNT_ID>",
  "accountNumber": "<ACCOUNT_NUMBER>",
  "availableFunds": "700000",
  "currency": "CLP",
  "status": "ACTIVE"
}

RegionOrigin typeExample rail
ChileETPAYOpen banking
ChileFINTOCOpen banking
BrazilPIXInstant QR
ArgentinaPCTQR Transfer
ColombiaPSEBank transfer
ColombiaNEQUIWallet