Skip to documentation
YPYakaApp YakaniPay
Menu

API reference

Purchase

Purchase & Reversal API Reference

Use the unified /asm endpoint with different serviceName values to complete or reverse a purchase.

1. Purchase

API_PURCHASECharges the payer's account and completes the payment.

Request structure

Code example
POST /asm
{
  "schemaVersion": "1.0",
  "requestId": "{{$guid}}",
  "timestamp": "{{$timestamp}}",
  "channelName": "WEB",
  "serviceName": "API_PURCHASE",
  "serviceParams": {
    "merchantUid": {{MERCHANT_UID}},
    "apiUserId": {{API_USER_ID}},
    "apiKey": {{API_KEY}},
    "paymentMethod": "MWALLET_ACCOUNT",
    "payerInfo": { "accountNo": "252611111111" },
    "transactionInfo": {
      "referenceId": "{{$randomBankAccount}}",
      "invoiceId": "154",
      "amount": "10",
      "currency": "USD",
      "description": "{{$randomLoremSentence}}"
    }
  }
}

Request parameters

ParameterTypeLengthPresenceDescription
schemaVersionString5ConstantAPI schema version, such as 1.0
requestIdString36 (UUID)RequiredUnique request identifier
timestampString20RequiredRequest date and time
channelNameString3–10ConstantOriginating channel
serviceNameString15–25ConstantAPI_PURCHASE
merchantUidString7–15RequiredMerchant identifier issued during setup
apiUserIdString7–15RequiredMerchant API user identifier
apiKeyString20–40RequiredRequest-authentication key
paymentMethodString5–20RequiredFor example, MWALLET_ACCOUNT
payerInfo.accountNoString10–20RequiredPayer number in full international format
transactionInfo.referenceIdString1–50RequiredUnique merchant transaction or order reference
transactionInfo.invoiceIdString1–50RequiredInvoice ID; may match referenceId
transactionInfo.amountNumberN/ARequiredTransaction amount with up to two decimal places
transactionInfo.currencyString3RequiredISO 4217 code, such as USD, SLSH, or DJF
transactionInfo.descriptionString0–255OptionalTransaction description

Response structure

Code example
{
  "schemaVersion": "1.0",
  "timestamp": "2024-11-05 09:04:44.741",
  "responseId": "12314",
  "responseCode": "2001",
  "errorCode": "0",
  "responseMsg": "RCS_SUCCESS",
  "params": {
    "accountNo": "252611****1111",
    "accountType": "MWALLET_ACCOUNT",
    "state": "APPROVED",
    "merchantCharges": "0.1",
    "referenceId": "1234",
    "transactionId": "1268666",
    "issuerTransactionId": "ISR0011268666",
    "txAmount": "10.0"
  }
}

2. Purchase reversal

API_REVERSALReverses an eligible completed purchase using its original transactionId.

Request structure

Code example
POST /asm
{
  "schemaVersion": "1.0",
  "requestId": "{{$guid}}",
  "timestamp": "{{$timestamp}}",
  "channelName": "WEB",
  "serviceName": "API_REVERSAL",
  "serviceParams": {
    "merchantUid": {{MERCHANT_UID}},
    "apiUserId": {{API_USER_ID}},
    "apiKey": {{API_KEY}},
    "transactionId": "{{transactionId}}",
    "description": "Cancelled"
  }
}

Response structure

Code example
{
  "schemaVersion": "1.0",
  "timestamp": "2024-11-05 09:07:48.786",
  "responseId": "12314",
  "responseCode": "2001",
  "errorCode": "0",
  "responseMsg": "RCS_SUCCESS",
  "params": {
    "description": "success",
    "state": "approved",
    "transactionId": "1268667",
    "referenceId": "1234"
  }
}