Artha API
  1. Webhook's
  • Introduction
  • Authentication
  • KYC/KYB Requirements
  • API Setup Guide
  • Customers
    • Create Customer
      POST
    • List Customers
      GET
    • Get Customer
      GET
    • Update Customer
      PATCH
  • Cards
    • Submit KYC/KYB Applicant
      POST
    • 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 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

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#

{
  "event": "cardholder.approved",
  "customer_id": "cust_001abc",
  "product_id": "prod_001abc",
  "first_name": "Ravi",
  "last_name": "Kumar",
  "email": "ravi.kumar@example.com",
  "application_status": "approved",
  "application_reason": "All checks passed"
}

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 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#

{
  "event": "card.freeze",
  "task_id": "task_001abc",
  "customer_id": "cust_001abc",
  "product_id": "prod_001abc",
  "card_id": "card_001abc",
  "card_type": "virtual",
  "action": "freeze",
  "status": "success",
  "message": "Card has been frozen successfully"
}

Field Reference#

FieldTypeDescription
eventstringEvent type. One of card.freeze, card.unfreeze, card.cancel, card.activate, card.set_pin
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., success, failed, pending)
messagestringHuman-readable outcome message

4. 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#

{
  "event": "card.approved",
  "customer_id": "cust_001abc",
  "product_id": "prod_001abc",
  "card_id": "card_001abc",
  "card_type": "physical",
  "status": "approved",
  "message": "Card has been approved and is ready for use"
}

Field Reference#

FieldTypeDescription
eventstringEvent type. One of card.approved, card.rejected, card.under_review
customer_idstringUnique identifier of the customer
product_idstringCard product identifier
card_idstringUnique identifier of the card
card_typestringCard type — virtual or physical
statusstringIssuance status (approved, rejected, under_review)
messagestringHuman-readable status message or reason

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-02-18 10:05:31
Previous
Upload Documents
Built with