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