Skip to content

🚀 HG.Cash Transaction API

Modern REST API for users to create outbound transactions from their accounts.

🧾 How it works

  • We assign accounts to your user in HG.Cash
  • When these accounts have transactions (inbound or outbound), HG.Cash will notify your backend using the webhook URL you configure in the HG.Cash dashboard
  • To create cash-outs (money leaving your accounts), you must call the Cash Out endpoint: Create Transaction Request (Cash Out) (POST /transactions)

📊 Getting Started

  1. Generate your API token in the account settings page
  2. Test endpoints using the interactive documentation below
  3. Implement in your backend services (never expose tokens in frontend)
  4. Monitor your integration and handle errors appropriately

🔐 Authentication

This API uses Bearer Token authentication. Include your user API token in the Authorization header:

Authorization: Bearer cash_your_token_here

⚠️ Important Security Notes

  • Never share or expose your user API authentication token
  • Store tokens securely on your backend servers only
  • All API calls must be made from secure backend services
  • Contact administrators immediately if your token is compromised
Download OpenAPI description
Overview
HG.Cash API Support
License
Languages
Servers
Mock server
https://docs.hg.cash/_mock/openapi
Production server
https://hg.cash/api/v1
Development server
http://dev.hg.cash/api/v1

Transaction Management - Create and manage transactions in the HG.Cash system. All transaction endpoints require authentication.

Operations

Accounts - Retrieve account information and balances for the authenticated user. All account endpoints require authentication.

Operations

Reference Data - Get reference data like transaction statuses and types. These endpoints require authentication.

Operations

Webhooks - Event notifications sent to your HTTP endpoint.

Webhooks

Transaction Request Status UpdatedWebhook

Request

HG.Cash will send this webhook when a transaction request status changes. The request body contains the request details and current status. You can provide a webhookUrl in the create request payload, or configure a default in user settings.

Security
bearerAuth
Bodyapplication/jsonrequired
idstring(uuid)required

Internal transaction ID

Example: "789e0123-e89b-12d3-a456-426614174999"
externalIDstringrequired

External ID provided when creating the transaction

Example: "TXN-2024-001234"
amountstringrequired

Transaction amount as a decimal string

Example: "15000.50"
currencystring^[A-Z]{3}$required

ISO 4217 currency code

Example: "ARS"
directionstringrequired

Transaction direction

Enum"Inbound""Outbound"
Example: "Inbound"
statusstringrequired

Current transaction request status

Enum"PENDING""PROCESSING""DONE""ERROR"
Example: "PENDING"
typestringrequired

Type of notification. Always "request" for transaction requests

Example: "request"
accountIdstring(uuid)required

HG.Cash account ID associated with the transaction

Example: "550e8400-e29b-41d4-a716-446655440123"
datestring(date-time)required

Transaction local date-time in the provided timezone

Example: "2024-06-19T10:30:00"
timezonestringrequired

IANA timezone identifier used to interpret date

Example: "America/Argentina/Buenos_Aires"
errorstring

Optional error message when status is ERROR

Example: "Insufficient funds on destination account"
errorCodestring

Machine-readable error code when status is ERROR

Enum"INSUFFICIENT_BALANCE""DESTINATION_ERROR"
Example: "INSUFFICIENT_BALANCE"
fromNamestring

Name of the sender

Example: "Juan Pérez"
toNamestring

Name of the recipient

Example: "María García"
fromCBUstring^\d{22}$

Sender CBU (22-digit). Sent as string.

Example: "1700015400000000000010"
toCBUstring^\d{22}$

Recipient CBU (22-digit). Sent as string.

Example: "1100015400000000000021"
toCVUstring^\d{22}$

Recipient CVU (22-digit). Sent as string.

Example: "0000003100012345678901"
fromCUITstring^\d{11}$

Sender CUIT/CUIL (11-digit). Sent as string.

Example: "20123456789"
toCUITstring^\d{11}$

Recipient CUIT/CUIL (11-digit). Sent as string.

Example: "27987654321"
conceptstring

Transaction concept or description

Example: "Payment for services"
coelsaCodestring

Coelsa transaction code

Example: "COELSA123456"
application/json
{ "id": "789e0123-e89b-12d3-a456-426614174999", "externalID": "REQ-2024-001234", "amount": "15000.50", "currency": "ARS", "direction": "Inbound", "status": "PENDING", "type": "request", "accountId": "550e8400-e29b-41d4-a716-446655440123", "date": "2024-06-19T10:30:00", "timezone": "America/Argentina/Buenos_Aires", "fromName": "Juan Pérez", "toName": "María García", "fromCBU": "1700015400000000000010", "toCBU": "1100015400000000000021", "error": "Insufficient funds on destination account", "fromCUIT": "20123456789", "toCUIT": "27987654321", "concept": "Payment for services", "coelsaCode": "COELSA123456" }

Request

HG.Cash will send this webhook whenever money moves in or out of one of your accounts. The request body contains the movement details.

Use this to keep your internal balances and ledgers in sync with HG.Cash.

Security
bearerAuth
Bodyapplication/jsonrequired
idstring(uuid)required

Internal movement ID

externalIDstringrequired

Provider- or bank-level external identifier for the movement

amountstringrequired

Movement amount as a decimal string

currencystring^[A-Z]{3}$required

ISO 4217 currency code

directionstringrequired

Movement direction relative to your account

Enum"Inbound""Outbound"
statusstringrequired

Current status of the movement

typestringrequired

Type of movement (for example inbound or outbound)

accountIdstring(uuid)required

HG.Cash account ID associated with the movement

datestring(date-time)required

Movement local date-time in the provided timezone

timezonestringrequired

IANA timezone identifier used to interpret date

fromNamestring

Name of the sender

toNamestring

Name of the recipient

fromCBUstring^\d{22}$

Sender CBU (22-digit). Sent as string.

toCBUstring^\d{22}$

Recipient CBU (22-digit). Sent as string.

fromCUITstring^\d{11}$

Sender CUIT/CUIL (11-digit). Sent as string.

toCUITstring^\d{11}$

Recipient CUIT/CUIL (11-digit). Sent as string.

coelsaCodestring

Coelsa transaction code

application/json
{ "id": "040eac5b-a998-4879-9d8a-05fd2a08c625", "externalID": "E-67REZ8NPQDQ460QK94KVGO-2026-01-14 09:17:21", "amount": "12000", "currency": "ARS", "direction": "Inbound", "status": "hecha", "type": "inbound", "date": "2026-01-14T09:17:21", "timezone": "America/Argentina/Buenos_Aires", "fromName": "Jose Angel Gallucci", "toName": "MUNDO OFERTA IMPORTACIONES S.A", "fromCBU": "0000003100117987328844", "toCBU": "0000151500037626120131", "fromCUIT": "20125680667", "toCUIT": "30718891813", "coelsaCode": "67REZ8NPQDQ460QK94KVGO", "accountId": "843d9d8b-6db8-47a2-8c22-23b198e99c15" }