Skip to content

Perform Transaction ​

Creates an A2C transaction and sends funds to the selected user card.

Endpoint ​

http
POST {BASE_URL}/merchant/a2c/performTransaction/

Headers ​

http
Authorization: Bearer <ACCESS_TOKEN>
Content-Type: application/json

Request Body ​

FieldTypeRequiredDescription
amountInTiyinintegerYesTransfer amount in tiyin
userIdstringYesUser ID declared by the merchant
cardIdstringYesCard ID created in the Paylov system
externalIdstringNoMerchant-side external transaction ID
json
{
  "amountInTiyin": 2500000,
  "userId": "string",
  "cardId": "string",
  "externalId": "string"
}

Success Response ​

json
{
  "transactionId": "9bd1a92b-5cce-47c8-a2df-99a20836ab9e",
  "status": "0",
  "statusText": "SUCCESS"
}
FieldTypeDescription
transactionIdstringA2C transaction ID
statusstringTransaction status code
statusTextstringHuman-readable transaction status

Error Response ​

json
{
  "result": null,
  "error": {
    "code": "insufficient_funds",
    "message": "There are insufficient funds on the card."
  }
}

Error codes ​

Processing errors are returned as specific, unified codes (e.g. insufficient_funds, card_expired, card_not_active, limit_exceeded, card_is_not_supported) with an English message. Raw processing-center codes/text are not exposed.

A2C-specific:

  • permission_denied — the merchant is not allowed to use A2C (or A2C by PAN — requires uses_a2c_by_pan).
  • card_not_found, card_not_active, phone_not_match, insufficient_deposit.
  • Identity checks (when is_myid_required / is_pinfl_required is enabled): official_profile_required, merchant_user_myid_not_verified, pinfl_check_required, pinfl_not_match.
  • card_temporarily_blocked — blocked by anti-fraud; data.blocked_until, data.reason.

See the full Error Codes reference.