Artha API
  1. Webhook's
  • Introduction
  • Authentication
  • KYC/KYB Requirements
  • API Setup Guide
  • Card API Integration Flow
  • Customers
    • Create Customer
      POST
    • List Customers
      GET
    • Get Customer
      GET
    • Update Customer
      PATCH
  • Cards
    • Submit KYC/KYB Applicant
      POST
    • Get Applicant KYC Status
      GET
    • Issue Card
      POST
    • Cards List
      GET
    • Get Card
      GET
    • Get Sensitive Card Details
      GET
  • Card Operations
    • Activate Card
      POST
    • Freeze Card
      POST
    • Unfreeze Card
      POST
    • Cancel Card
      POST
    • Replace Card
      POST
    • Set / Reset Card PIN
      POST
    • Get Card Limits
      GET
    • Update Card Limits
      POST
  • Funding
    • Top Up Card
      POST
    • Get Top-Up Status
      GET
    • Get Card Balance
      GET
    • List Top-Up History
      GET
  • Transactions
    • List All Transactions
    • List Card Transactions
    • List Customer Transactions
    • Get Transaction
  • Products
    • List Products
    • Get Product
  • Utilities
    • Upload Documents
  • Webhook's
    • Webhooks
  1. Webhook's

Webhooks

Overview#

This document describes all outgoing webhook event payloads sent by the platform. Webhooks are HTTP POST requests with a Content-Type: application/json header delivered to your configured endpoint URL.

Payload Conventions#

ConventionDetail
FormatJSON
HTTP MethodPOST
Content-Typeapplication/json
Null fieldsIncluded as null (not omitted)
TimestampsISO 8601 — YYYY-MM-DDTHH:mm:ssZ
AmountsDecimal string or number in the currency's minor/major unit as configured

Event Categories#

CategoryEvents
Transactionconsume, refund, reversal, maintain_fee, settlement
Card Holder Applicationcardholder.reviewing, cardholder.approved, cardholder.rejected
Card Actioncard.freeze, card.unfreeze, card.cancel, card.activate, card.set_pin
Card Statuscard.approved, card.rejected, card.under_review
Card TopUptopup.completed, topup.failed

1. Transaction Events#

Applicable event types: consume · refund · reversal · maintain_fee · settlement
These events are fired whenever a transaction lifecycle action occurs on a card.

Payload#

{
  "event": "consume",
  "transaction_id": "txn_001abc",
  "card_id": "card_001abc",
  "customer_id": "cust_001abc",
  "original_transaction_id": "txn_000xyz",

  "local_currency": "INR",
  "local_amount": "1500.00",

  "authorized_amount": "18.25",
  "authorized_currency": "USD",
  "authorization_code": "AUTH123",
  "authorized_at": "2025-06-01T10:30:00Z",

  "fee": "0.50",
  "fee_currency": "USD",

  "crossborder_fee": "0.25",
  "crossborder_fee_currency": "USD",

  "settle_amount": "18.00",
  "settle_currency": "USD",
  "settle_date": "2025-06-02T00:00:00Z",

  "merchant_name": "Amazon IN",
  "merchant_category_code": "5411",
  "merchant_country": "IN",
  "merchant_city": "Mumbai",

  "type": "consume",
  "sub_type": "consume",
  "status": "approved",
  "description": "Grocery purchase"
}

Field Reference#

FieldTypeDescription
eventstringEvent type. One of consume, refund, reversal, maintain_fee, settlement
transaction_idstringUnique identifier of this transaction
card_idstringCard on which the transaction occurred
customer_idstringCustomer who owns the card
original_transaction_idstringReference to the original/parent transaction (relevant for refund, reversal)
local_currencystringISO 4217 currency code of the transaction at the point of sale
local_amountstringAmount in the local currency
authorized_amountstringAmount authorized in the card's billing currency
authorized_currencystringISO 4217 code of the card's billing/wallet currency
authorization_codestringAuthorization code returned by the network
authorized_atstringISO 8601 timestamp when authorization was issued
feestringPlatform or card fee applied
fee_currencystringCurrency of the fee
crossborder_feestringCross-border/FX conversion fee, if applicable
crossborder_fee_currencystringCurrency of the cross-border fee
settle_amountstringPre-settlement amount
settle_currencystringCurrency of the settlement amount
settle_datestringISO 8601 expected or actual settlement date
merchant_namestringName of the merchant
merchant_category_codestringISO 18245 MCC code
merchant_countrystringISO 3166-1 alpha-2 merchant country code
merchant_citystringCity where the merchant is located
typestringTransaction type (mirrors the event)
sub_typestringTransaction sub-type for further classification
statusstringFinal status of the transaction (e.g., approved, declined, pending)
descriptionstringHuman-readable remarks or transaction description

2. Card Holder Application Events#

Applicable event types: cardholder.reviewing · cardholder.approved · cardholder.rejected
These events track the lifecycle of a card holder's application from submission through final decision.

Payload#

{
  "id": "evt_53260e2994bd4d72901036cf21333441",
  "type": "cardholder.approved",
  "createdAt": "2026-04-02T14:26:37.8721433Z",
  "data": {
    "customer_id": "f51b8db9-0bbf-4a91-b5fe-bf9d7b16f070",
    "first_name": "tarun",
    "last_name": "kumar",
    "email": "tarunkumar@yopmail.com",
    "application_status": "cardholder.approved",
    "application_reason": "Approved"
  }
}

Field Reference#

FieldTypeDescription
eventstringEvent type. One of cardholder.reviewing, cardholder.approved, cardholder.rejected
customer_idstringUnique identifier of the customer
product_idstringCard product associated with the application
first_namestringApplicant's first name
last_namestringApplicant's last name
emailstringApplicant's email address
application_statusstringCurrent status of the application (reviewing, approved, rejected)
application_reasonstringHuman-readable reason or message accompanying the status decision

3. Card Topup Events#

Applicable event types: card.topup.completed · card.topup.failed
These events track the lifecycle of a card topup transaction from submission through final decision.
Payload
{
  "id": "evt_cdb5d44b89da4e2e84d0e981b3af5b18",
  "type": "card.topup.completed",
  "createdAt": "2026-04-01T13:27:35.2392299Z",
  "data": {
    "card_id": "b6aa7a4c-ac4f-43ca-9030-9c6936f7913c",
    "amount": 50,
    "currency": "USDT",
    "status": "Pending",
    "transaction_id": "41ac2f77-e2ad-4fac-b4c6-0d54a8bc3e2f",
    "performed_at": "2026-04-01T13:27:35.2278182Z"
  }
}
FieldTypeDescription
eventstringEvent type. One of card.topup.completed, card.topup.failed
card_idstringUnique identifier of the card
amountnumberAmount added to the card
currencystringCurrency used for the topup
statusstringCurrent status of the topup (pending, completed, failed)
transaction_idstringUnique identifier of the topup transaction
performed_atstringTimestamp when the topup was performed

4. Card Action Events#

Applicable event types: card.freeze · card.unfreeze · card.cancel · card.activate · card.set_pin
Fired when an action is performed on an existing card (freeze, unfreeze, cancel, activate, or PIN change). These events include a task_id to allow idempotent tracking of async operations.

Payload#

{
  "id": "evt_3c990d0027974a269d69ecbbc6252934",
  "type": "card.frozen",
  "createdAt": "2026-04-01T12:14:27.8274318Z",
  "data": {
    "cardId": "b6aa7a4c-ac4f-43ca-9030-9c6936f7913c",
    "customerId": "a850b57a-23c8-48f5-846c-a25c8869ffe8",
    "productId": "cab4a136-6f58-467b-8fc0-c99d76fb0712",
    "cardType": "Virtual",
    "action": "freeze",
    "status": "Frozen",
    "message": "Card frozen successfully.",
    "taskId": "d9727b12-9de8-486e-acfc-3bf07c6bc391",
    "performedAt": "2026-04-01T12:14:27.8196246Z"
  }
}

Field Reference#

FieldTypeDescription
eventstringEvent type (e.g., card.frozen)
task_idstringUnique identifier for the async task/operation
customer_idstringUnique identifier of the customer
product_idstringCard product identifier
card_idstringUnique identifier of the card
card_typestringCard type — Virtual or Physical
actionstringThe action performed (e.g., freeze, unfreeze, cancel, activate, set_pin)
statusstringResult of the action (e.g., Frozen, Active, etc.)
messagestringHuman-readable outcome message
performed_atstring (ISO 8601)Timestamp when the action was performed

5. Card Status Events#

Applicable event types: card.approved · card.rejected · card.under_review
Fired when a card's issuance status changes — for example, when a newly requested card is approved, rejected, or placed under review.

Payload#

{
  "id": "evt_5377f5d53323457688ea939284e13406",
  "type": "card.created",
  "createdAt": "2026-04-01T12:07:51.2798593Z",
  "data": {
    "customer_id": "a850b57a-23c8-48f5-846c-a25c8869ffe8",
    "card_id": "b6aa7a4c-ac4f-43ca-9030-9c6936f7913c",
    "card_type": "Virtual",
    "application_status": "card.created",
    "application_reason": "Success"
  }
}

Field Reference#

FieldTypeDescription
eventstringEvent type (e.g., card.created)
customer_idstringUnique identifier of the customer
card_idstringUnique identifier of the card
card_typestringCard type — Virtual or Physical
statusstringApplication status (e.g., card.created)
messagestringHuman-readable status message or reason (e.g., Success)

Status Values Quick Reference#

Transaction Status#

ValueDescription
approvedTransaction was authorized and approved
declinedTransaction was declined by the network or issuer
pendingTransaction is pending settlement
reversedTransaction has been reversed
settledTransaction has been fully settled

Card Holder Application Status#

ValueDescription
reviewingApplication is under review
approvedApplication has been approved
rejectedApplication has been rejected

Card Action & Card Status#

ValueDescription
successAction completed successfully
failedAction failed
pendingAction is being processed asynchronously
approvedCard issuance approved
rejectedCard issuance rejected
under_reviewCard issuance under review

Error Handling#

Your endpoint should return an HTTP 2xx status code to acknowledge receipt. If a non-2xx response is returned or the request times out, the platform may retry delivery with exponential backoff.
ScenarioRecommendation
Duplicate eventsUse transaction_id, task_id, or card_id + event for idempotency
Unknown event typeAcknowledge (200 OK) and ignore gracefully
Processing failureReturn 500 to trigger retry

Modified at 2026-04-02 15:04:10
Previous
Upload Documents
Built with