# Card Payments

Zūm Rails offers card payment methods designed for ease and efficiency. For example, credit card's can be used for accounts receivable transactions to request funds.&#x20;

`Method: POST`

`Endpoint: {{env}}/api/transaction`&#x20;

**Example**

{% tabs %}
{% tab title="Request" %}

```json
{
  "ZumRailsType": "AccountsReceivable",
  "TransactionMethod": "CreditCard",
  "Amount": 123.45,
  "Memo": "Memo",
  "Comment": "This transaction is just a test from a user to wallet",
  "UserId": "1d431e8b-...85452adb4eee",
  "Authorize": {
    "Capture": false,
    "AutoExpireDays": 5
  }
}
```

{% endtab %}
{% endtabs %}

## **Transaction Events**

<table><thead><tr><th width="152.20001220703125">CreditCard</th><th width="299.4000244140625">CreditCardInvalidRequest</th><th>When transaction has failed due to invalid request</th></tr></thead><tbody><tr><td>CreditCard</td><td>CreditCardRejectedByIssuingBank</td><td>When transaction is rejected by issuing bank</td></tr><tr><td>CreditCard</td><td>CreditCardExpiredCard</td><td>When transaction has failed due to expired card</td></tr><tr><td>CreditCard</td><td>CreditCardSuspectedFraud</td><td>When transaction has failed due to suspected fraud</td></tr><tr><td>CreditCard</td><td>CreditCardTransactionNotPermitted</td><td>When transaction is not permitted</td></tr><tr><td>CreditCard</td><td>CreditCardContactSupport</td><td>When transaction has failed. Contact support</td></tr><tr><td>CreditCard</td><td>CreditCardInvalidMerchantSetUp</td><td>When transaction has failed due to invalid merchant setup</td></tr><tr><td>CreditCard</td><td>CreditCardSecurityViolation</td><td>When transaction has failed due to security violation</td></tr><tr><td>CreditCard</td><td>CreditCardInvalidCardOrDetails</td><td>When transaction has failed due to invalid card or card details</td></tr><tr><td>CreditCard</td><td>CreditCardLostOrStolenCard</td><td>When transaction has failed due to lost ot stolen card</td></tr><tr><td>CreditCard</td><td>CreditCardAccountClosedOrBlocked</td><td>When transaction has failed due to account closed or blocked</td></tr><tr><td>CreditCard</td><td>CreditCardDeemedHighRisk</td><td>When transaction has failed due to deemed high risk</td></tr><tr><td>CreditCard</td><td>CreditCardUnknownResponseFromIssuingBank</td><td>When transaction has failed due to unknown response from issuing bank</td></tr><tr><td>CreditCard</td><td>CreditCardCouldNotLocateOriginalTransaction</td><td>When reversal transaction has failed due to could not locate original transaction</td></tr><tr><td>CreditCard</td><td>CreditCardTransactionAlreadyReversed</td><td>When reversal transaction has failed due to already reversed</td></tr><tr><td>CreditCard</td><td>CreditCardGenericError</td><td>When transaction has failed due to generic error</td></tr><tr><td>CreditCard</td><td>CreditCardServiceUnavailable</td><td>When transaction has failed due to service unavailable</td></tr><tr><td>CreditCard</td><td>CreditCardRetryLater</td><td>When transaction has failed. Retry later</td></tr><tr><td>CreditCard</td><td>CreditCardReversalRejected</td><td>When reversal transaction is rejected</td></tr><tr><td>CreditCard</td><td>CreditCardDuplicateReversal</td><td>When reversal transaction has failed due to duplicated</td></tr><tr><td>CreditCard</td><td>CreditCardTransactionAlreadySettled</td><td>When reversal transaction has failed due to already settled</td></tr><tr><td>CreditCard</td><td>CreditCardTimeoutReversal</td><td>When reversal transaction has failed due to timeout</td></tr><tr><td>CreditCard</td><td>CreditCardDuplicateTransaction</td><td>When transaction has failed due to duplicated</td></tr><tr><td>CreditCard</td><td>CreditCardNotActivated</td><td>When transaction has failed because of inactive card.</td></tr></tbody></table>

## Testing

To simulate an Credit Card transaction failure, include an event name from the list above in the COMMENT field when creating a transaction. If you don't mention an event in the COMMENT, the transaction will change its status to "Completed" in the sandbox environment.

**Examples:**

{% tabs %}
{% tab title="Simulating Success" %}

```json
{
  "ZumRailsType": "AccountsReceivable",
  "TransactionMethod": "CreditCard",
  "Amount": 123.45,
  "Memo": "Memo",
  "Comment": "This transaction will succeed because there's no keyword",
  "UserId": "1d431e8b-...85452adb4eee",
  "WalletId": "8ebd932b-...b92633e14297",
  "PaymentInstrumentId": "92142401-...389ba0d87e75"
}
```

{% endtab %}

{% tab title="Simulating Failure" %}

<pre><code><strong>{  
</strong><strong>  "TransactionMethod": "CreditCard",
</strong>  "Amount": 123.45,
  "Memo": "Memo",
  "Comment": "CreditCardExpiredCard",
  "UserId": "1d431e8b-...85452adb4eee",
  "WalletId": "8ebd932b-...b92633e14297",
  "PaymentInstrumentId": "92142401-...389ba0d87e75"
}
</code></pre>

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.zumrails.com/payments/card-payments.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
