Transactions
#
OverviewAt Zūm Rails, there are 4 ways to create transactions, when using the portal or via API. When creating a transaction via API, the transaction type “ZumRailsType” must be specified.
There are four transaction types (ZumRailsType):
- FundZumWallet
- WithdrawZumWallet
- AccountsPayable
- AccountsReceivable
note
- Zūm Rails allows money to be sent to a user from your virtual wallet or from your funding source.
- Zūm Rails allows money to be collected from a user to your virtual wallet or to your funding source.
- If you want to send money from your Funding Source to Zūm Wallet, use
ZumRailsType FundZumWallet and inform:
- FundingSourceId
- WalletId
- If you want to withdraw money from Zūm Wallet to your Funding Source,
use ZumRailsType WithdrawZumWallet and inform:
- FundingSourceId
- WalletId
- If you want to send money (accounts payable) from your Zūm Wallet to a
User, use ZumRailsType AccountsPayable and inform:
- UserId
- WalletId
- If you want to send money (accounts payable) from your Funding Source to
a User, use ZumRailsType AccountsPayable and inform:
- UserId
- FundingSourceId
- If you want to withdraw money (accounts receivable) from a User to your
Zūm Wallet, use ZumRailsType AccountsReceivable and inform:
- UserId
- WalletId
- If you want to withdraw money (accounts receivable) from a User to your
Funding Source, use ZumRailsType AccountsReceivable and inform:
- UserId
- FundingSourceId
info
- For accounts payable use-case, Zūm Rails recommend you to first Fund the Zūm Wallet, so that the money can be quickly moved.
info
- For accounts receivable use-case Zūm Rails, recommend you to move funds from the User to the Zūm Wallet, then set up an automatic daily withdrawal at the end of each day to your funding source.
info
- Credit Card transactions are settled directly into the merchant account.
Hence, it is not required to specify the
WalletId
orFundingSourceId
while creating a credit card transaction
#
Creating a new transactionUse this endpoint if you want to add a new transaction.
Method: POST
Endpoint: {{env}}/api/transaction
- EFT
- Visa Direct
- Interac
- Credit Card
- Response
Input parameters
Parameter | Type | Mandatory | Description |
---|---|---|---|
ZumRailsType | string | yes | Transaction type |
TransactionMethod | string | yes | Transaction method |
Amount | decimal | yes | Transaction amount |
Memo | string | yes | Memo description. If customer transaction description type is "PerTransaction", this will be shown at the bank statements. Maximum of 15 characters. Only letters, numbers, dash, space and underscore are allowed |
Comment | string | no | Internal comment you might want to add. Interac transactions will display the comment on the request. |
FundingSourceId | guid | no | Funding Source Id |
WalletId | guid | no | Wallet Id |
UserId | guid | no | User Id |
User | User input | no | It's possible to create a transaction without adding a user first. Simply pass the user object (instead of the UserId) into the transaction body. For reference, check the payload example of the user object here and pass this when you create a transaction (check interac transaction payload example). Only available for EFT and interac transaction methods |
AuthCode | string | no | Processor clients can use this to securely send user information in the transaction creation API. |
ScheduledStartDate | date | no | The date when the transaction will be sent to the financial institution, in the format YYYY-MM-DD . Must be greater than today. |
ClientTransactionId | string | no | This field can be used to store the Transaction id created in your system when the Transaction is initiated |
3D Secure | - | - | Only needed for 3D secure - Visa Direct and Credit Card |
CardEci | string | no | Received from 3D secure, required if using 3D Secure but optional for Visa Direct Accounts Payable transactions |
CardXid | string | no | Received from 3D secure, required if using 3D Secure but optional for Visa Direct Accounts Payable transactions |
CardCavv | string | no | Received from 3D secure, required if using 3D Secure but optional for Visa Direct Accounts Payable transactions |
Interac Fields | - | - | Only needed for Interac transactions |
UseInteracANR | boolean | no | Indicates whether a transaction will be deposited directly to the user's saved account. (This works only for Interac account payable). Read more about Interac ANR here. |
InteracHasSecurityQuestionAndAnswer | boolean | no | Indicate if there will be a question and answer for Interac |
InteracSecurityQuestion | string | yes | The question for the user to process the interac request. Required if InteracHasSecurityQuestionAndAnswer is true. Pattern accepted: String [ 5 .. 40 ] characters ^[^\s]([a-zA-Z0-9àâäèéêëîïôœùûüÿçÀÂÄÈÉÊËÎÏÔŒÙÛÜŸÇ -.\?!,#]+)[^\s]$ |
InteracSecurityAnswer | string | yes | The answer for the user to process the interac request. Required if InteracHasSecurityQuestionAndAnswer is true. Pattern accepted: String [ 3 .. 25 ] characters [a-zA-Z0-9àâäèéêëîïôœùûüÿçÀ ÄÈÉÊËÎÏÔŒÙÛÜŸÇ]+$... |
SessionFingerprint | string | yes | A unique identifier for this sender, we recommend using fingerprintjs. Required if peer-to-peer Interac transactions are enabled. |
SessionIpAddress | string | yes | The IP address of the UserId, the sender, of the funds. Required if Accounts Payable with Interac, and peer-to-peer enabled. |
Authorize | - | no | Only needed for authorized hold credit card transactions |
Capture | boolean | no | The field is required for authorized hold credit card transactions. Capture can be set to true or false |
AutoExpireDays | number | no | The field is required for authorized hold credit card transactions. AutoExpireDays should be an number between 1 to 5. |
info
Either a memo or comment is mandatory for Interac transactions. If both are specified, the comment will be presented on the Interac request.
Response
Parameter | Type | Description |
---|---|---|
Id | guid | Transaction id |
ZumRailsType
Type | Description |
---|---|
FundZumWallet | Send money to your Zūm Wallet |
WithdrawZumWallet | Withdraw from your Zūm Wallet |
AccountsPayable | Execute accounts payable AP |
AccountsReceivable | Execute accounts receivable AR |
TransactionMethod
Type |
---|
Eft |
Interac |
VisaDirect |
CreditCard |
- Success
- Failure
danger
In a sandbox environment, real bank operations are not performed. It provides a way to simulate success, failures and review situations.
caution
To simulate a failure, use one of the keywords to simulate failure (shown below) in the field COMMENT while creating a transaction. If no keyword is informed, or something else is informed, the transaction will eventually change status to "Completed". This service is executed every minute.
caution
Interac transactions in sandbox will be simulated like the real flow. Hence, emails will be sent out to the user email mentioned when the transaction is created. Make sure to use a real email address to be able to simulate this flow and complete the transaction.
caution
Occasionally, Interac flags transactions believed to be possible fraud cases. When Zum Rails is notified, the status of the transaction is changed to "Under Review". To simulate this situation (only available for interac for now), create a transaction with the keyword "UnderReview" in the COMMENT field. Transactions can be flagged "Under Review" for two other scenarios: Scenario 1: It could happen that a transaction was flagged as in "Under Review" but before an action was taken it "Completed". Simulate such transactions using the keyword "stopatunderreview" in the COMMENT field. Scenario 2: It could also happen that the transaction was "completed" and then later a fraud alert email was received and hence was flagged as in "Under Review". Simulate such transactions using the keyword "latefraudalert" in the COMMENT field. There is a service which runs every minute that will update the transaction status to Under Review in the first execution. The next time the service runs, it will Complete the transaction. These fraud alerts only apply to certain accounts*
info
When a transaction is created with a scheduled start date (delay transaction initiation), it won't be dispatched right away. This transaction will be prepared to be sent to the financial institution according to its scheduled start date.
Keywords to simulate a transaction failure
Eft | VisaDirect | Interac | CreditCard |
---|---|---|---|
EftFailedValidationRejection | VisaDirectGenericError | InteracFailedRecipientContactInfoMissing | CreditCardDeclined |
EftFailedInsufficientFunds | VisaDirectDoNotHonor | InteracFailedInvalidEmailFormat | CreditCardError * |
EftFailedCannotLocateAccount | VisaDirectInsufficientFunds | InteracFailedInvalidPhoneNumber | CreditCardHeldForReview * |
EftFailedStopPayment | VisaDirectNotPermittedToCardHolderInformed | InteracFailedMultipleTransferLevelErrors | CreditCardGenericError * |
EftFailedAccountClosed | VisaDirectAmountLimitNotAuthorized | InteracFailedRevoked | CreditCardUnknownResponse * |
EftFailedNoDebitAllowed | VisaDirectRejectedAmlOrFraud | InteracFailedBulkCancellationRequest | CreditCardHoldCallOrPickUpCard * |
EftFailedFundsNotFree | VisaDirectRejectedAccountLimitExceeded | InteracFailedRecipientRejected | CreditCardSecViolation * |
EftFailedCurrencyAccountMismatch | VisaDirectReenterTransaction | InteracFailedAuthentication | CreditCardServNotAllowed * |
EftFailedPayorPayeeDeceased | VisaDirectInvalidTransaction | InteracFailedReachedCancellationCutOff | CreditCardCvvMismatch * |
EftFailedFrozenAccount | VisaDirectInvalidCardNumber | InteracFailedNotificationDeliveryFailure | CreditCardInvalidMerchantId * |
EftFailedInvalidErrorAccountNumber | VisaDirectIssuerOrSwitchInoperative | InteracFailedAmountGreaterThanMax | CreditCardAmountExceeded * |
EftFailedErrorPayorPayeeName | VisaDirectUnsupportedCardType | InteracFailedDebtorRejected | CreditCardRefundAmountExceeded * |
EftFailedRefusedNoAgreement | VisaDirectInvalidExpiryDate | InteracFailedFundsDepositFailed | CreditCardCashbackNotApp * |
EftFailedNotInAccountAgreementP | VisaDirectInvalidPIN | InteracFailedClientEmailedToRequestCancellation | CreditCardExpiredCard * |
EftFailedNotInAccountAgreementE | VisaDirectInvalidSecret | InteracFailedGenericError | CreditCardNoAccountFound * |
EftFailedAgreementRevoked | InteracFailedNameMismatch | CreditCardNotPermittedToCardHolderInformed * | |
EftFailedDefaultByAFinancialInstitution | InteracFailedInvalidAccountNumber | CreditCardInvalidCardNumber * | |
EftFailedTransactionNotAllowed | InteracFailedRequestBlockedByUser | CreditCardRejectedAmlOrFraud * | |
CreditCardTypeNotAccepted * | |||
CreditCardDomesticDebitDeclined * | |||
CreditCardClosedAccount * |
* Not available for all credit card customers
note
You can simulate late failures (Failure after transaction completion) by using a comment: (event name), Latefailure. This feature is only available for EFT transaction error. If the string is incorrect, the transaction will fail with the event specified within it.
#
Creating a new transaction - Interac peer-to-peerinfo
This endpoint is not available for all Zūm Rails customers, if you need to use it, make sure to talk with our team.
If you have an environment with Zūm Rails that support Interac peer-to-peer, you will be authorized to create transactions Accounts Receivables (pull) and Accounts Payable (push) only.
The main difference in Interac peer-to-peer is the fact that you have to inform two different users. UserId (from) and TargetUserId (to), the payload will be like:
Method: POST
Endpoint: {{env}}/api/transaction
- Accounts Receivable - pull - payload
- Accounts Payable - push - payload
In case you are doing an Accounts Payable - push - transaction, it's important that you call the endpoint Interac - Send Funds options to determine the options available for the target user. This endpoint will return if the user needs security question or not, as well tell if the user is eligible for Account Routing Number - ANR deposits.
The definition of all input parameters for this endpoint can be found here. The definition for all output parameters returned in this endpoint, can be found here.
info
If your Zūm Rails account is configured to user Interac peer-to-peer, you will only be authorized to do Interac transactions. If you need to use other rails, a new Zūm Rails environment will be needed.
info
When using Interac peer-to-peer, the email the TargetUserId will receive from
Interac will be coming from UserId and not from your Zūm Rails environment. For
example, when you do Accounts Payable from a user John, to another user Mary,
the email will say: John is sending funds to Mary
. This setup provides a lot
of flexibility.
Without peer-to-peer, the email would say:
<Your company name> is sending funds to Mary
.
#
Get a specific transactionUse this endpoint if you want to get all the information for a specific transaction. The transaction id is informed in the url.
Method: GET
Endpoint: {{env}}/api/transaction/{transaction_id}
- Response
Response
Parameter | Type | Description |
---|---|---|
Id | guid | Transaction id |
CreatedAt | datetime | When the transaction was created |
Memo | string | Transaction memo |
Comment | string | Transaction comment |
Amount | decimal | Transaction amount |
ZumRailsType | string | Transaction type |
TransactionStatus | string | Indicate the status of the transaction |
RecurrentTransactionId | guid | The id of the recurrent transaction that created this transaction (null if inexistent) |
FailedTransactionEvent | string | If the transaction has failed, the transaction event that caused it (null otherwise) |
ScheduledStartDate | date | The date transaction will be sent to the financial institution. |
ClientTransactionId | string | The Transaction id you informed in the creation of this transaction |
InteracUrl | string | The interac URL to complete the transaction, if available |
InteracDebtorInstitutionNumber | string | The Financial Institution used to complete the Interac Request money. |
InteracDebtorFullName | string | The Full Name used to complete the Interac Request money. This information not yet 100% accurate, often is the same name sent. Gradually each Institution is improving and sending this information for Zūm Rails. |
UseInteracANR | boolean | Indicates whether a transaction will be deposited directly to the user's saved account. (This works only for account payable transactions from wallet to user) |
From | string | From description for the transaction |
To | string | To description for the transaction |
IsRefundable | boolean | Indicates if the transaction is IsRefundable |
FailedAt | datetime | When the transaction was failed (null otherwise) |
AuthorizedHoldExpiredAt | datetime | When the transaction was the authorized hold credit card transaction (null otherwise) |
Customer | Basic Customer data | |
CompanyName | string | Company Name |
Id | guid | Id for the related customer |
User | If transaction has a user - * Not all information from a user is returned in this endpoint | |
Id | guid | The user id |
First Name | string | User first name |
Last Name | string | User last name |
Company Name | string | User company name |
IsActive | boolean | Indicates if the user is active or not |
Wallet | If transaction has a wallet * Not all information from a user is returned in this endpoint | |
Id | guid | The wallet id |
Type | string | The wallet type |
FundingSource | If transaction has a funding source * Not all information from a user is returned in this endpoint | |
Id | guid | The funding source id |
Institution | string | The institution name |
InstitutionNumber | string | The institution number |
TransitNumber | string | The transit number |
AccountNumber | string | The account number |
TargetWallet | If transaction has a target wallet | |
Id | guid | The target wallet id |
Type | string | The target wallet type |
TransactionHistory | List of transaction history events | |
CreatedAt | datetime | When the transaction event happened |
Event | string | The event happened |
EventDescription | string | The event description |
#
Status and eventsZūm Rails offers 6 main statuses for transactions:
Transaction Status
Type | Description |
---|---|
InProgress | Indicates the transaction is being processed |
Completed | Indicates the transaction is completed, this is a permanent status for Interac, Visa Direct and Credit Card. For EFT, a completed transaction might still fail up to 90 days after it's completion. |
Failed | Indicates the transaction has failed, this is a permanent status. |
Cancelled | Indicates the transaction has canceled, this is a permanent status. |
Scheduled | Indicates the transaction is scheduled. |
InReview | Indicates the transaction is under review. As of now, only Interac transactions uses this status. Once a transaction is "Under Review" you need to "Take Action" on the transaction from within the portal or via API implementation to guide Interac on how you want to treat this transaction. It could also happen that "Completed" transactions are flagged as "Under Review". This is when Interac requires a response from the Merchant stating if the transactions is legit/fraud/scam. Click here to read more. A transaction might be under review up to 7 days, after that our system will automatically cancel it. |
Transaction Events
Zūm Rails also offers a more detailed transaction event, to indicate every step the transaction passed. Depending on the transaction methods, the events will change.
Method | Event | Description |
---|---|---|
All | Started | When the transaction started |
All | Succeeded | When the transaction succeeds, when it finishes without any error |
All | WalletFunded | When the transaction funds a wallet |
All | WalletWithdrawn | When the transaction withdrawn a wallet |
------- | ------- | ------- |
Eft | EFTFileCreated | When an EFT file is created. One transaction might have up to 2 files |
Eft | EFTFileUploaded | When an EFT file is uploaded |
Eft | EFTAnswerReceived | When an EFT file response is received |
Eft | EFTAnswerProcessed | When an EFT file is processed |
Eft | EftFailedValidationRejection | When EFT could not be created, due an invalid information provided |
Eft | EftFailedInsufficientFunds | When transaction is rejected, due non sufficient funds available |
Eft | EftFailedCannotLocateAccount | When account is not located, account, transit or institution numbers are invalid |
Eft | EftFailedStopPayment | Account do not allow EFT |
Eft | EftFailedAccountClosed | When account is closed |
Eft | EftFailedNoDebitAllowed | Account do not allow EFT |
Eft | EftFailedFundsNotFree | When transaction is rejected, due non sufficient funds available |
Eft | EftFailedCurrencyAccountMismatch | When the currency of the transaction does not match the currency of the account |
Eft | EftFailedPayorPayeeDeceased | Account do not allow EFT |
Eft | EftFailedFrozenAccount | Account do not allow EFT |
Eft | EftFailedInvalidErrorAccountNumber | When account is not located, account numbers are invalid |
Eft | EftFailedErrorPayorPayeeName | When account is not located, first, last or company name (business) mismatch |
Eft | EftFailedRefusedNoAgreement | Account do not allow EFT |
Eft | EftFailedNotInAccountAgreementP | Account do not allow EFT |
Eft | EftFailedNotInAccountAgreementE | Account do not allow EFT |
Eft | EftFailedAgreementRevoked | Account do not allow EFT |
Eft | EftFailedDefaultByAFinancialInstitution | Generic error provided by the financial institution |
Eft | EftFailedCustomerInitiatedReturnCreditOnly | When the payee has requested the credit to be returned |
Eft | EftFailedTransactionNotAllowed | When the bank account is banned |
Eft | EftFailedCustomerInitiatedReturnCreditOnly | When the payee has requested the credit to be returned |
Eft | EftFailedNoPrenotificationP1 | No Confirmation/Pre-Notification – Personal |
Eft | EftFailedNoPrenotificationP2 | No Confirmation/Pre-Notification – Business |
Eft | EFTFileCreated | When the EFT file is created |
Eft | EFTAnswerReceived | When the EFT answer is received |
Eft | EFTAnswerProcessed | When the EFT answer is processed |
Eft | NotEnoughBalanceInWalletError | When the wallet has not balance enough |
------- | ------- | ------- |
VisaDirect | VisaDirectGenericError | When a generic error happened in the network |
VisaDirect | VisaDirectDoNotHonor | When the information provided was inconsistent, such as address or name on card |
VisaDirect | VisaDirectInsufficientFunds | When not sufficient funds available in the card |
VisaDirect | VisaDirectNotPermittedToCardHolderInformed | When the card holder did not authorize the transaction or the card is restricted for this usage |
VisaDirect | VisaDirectAmountLimitNotAuthorized | When the limit informed invalid, too high or exceeds the withdrawal frequency limit, too many transactions for this card in the current period |
VisaDirect | VisaDirectRejectedAmlOrFraud | When visa identified this transaction as AML or potential fraud |
VisaDirect | VisaDirectWaitingSettlementIntoClientsAccounts | Waiting for funds to be settled into client's account |
VisaDirect | VisaDirectSettledIntoClientsAccount | When visa funds are settled into client's account |
VisaDirect | VisaDirectInvalidCardNumber | When the card has an invalid number |
VisaDirect | VisaDirectChargeback | When the card number is invalid |
VisaDirect | VisaDirectReenterTransaction | When an error happened. Retry creating the transaction |
VisaDirect | VisaDirectInvalidTransaction | When transaction was considered invalid by visa direct |
VisaDirect | VisaDirectIssuerOrSwitchInoperative | When issuer or switch is inoperative |
VisaDirect | VisaDirectUnsupportedCardType | When a type card is not supported |
VisaDirect | VisaDirectRejectedAccountLimitExceeded | When an account limit reaches the exceed amount |
VisaDirect | VisaDirectInvalidExpiryDate | When a VisaDirect transaction due to invalid expiration dates |
VisaDirect | VisaDirectInvalidPIN | When a VisaDirect transaction due to invalid pin |
VisaDirect | VisaDirectInvalidSecret | When a VisaDirect transaction due to invalid secret |
VisaDirect | VisaDirectTimeoutLimitReachedError | When a VisaDirect transaction timeout limit reached |
------- | ------- | ------- |
Interac | InteracSent | When the transaction is sent to interac |
Interac | InteracAcknowledgedCredit | When a credit transaction is received by interac |
Interac | InteracAcknowledgedDebit | When a debit transaction is received by interac |
Interac | InteracFailedRecipientContactInfoMissing | Need to add recipient email or mobile phone number |
Interac | InteracFailedInvalidEmailFormat | If the email provided is not valid. * We minimize this error by validating it before |
Interac | InteracFailedInvalidPhoneNumber | If the phone number provided is not valid |
Interac | InteracFailedMultipleTransferLevelErrors | If there is more than one error in the file |
Interac | InteracFailedRevoked | When the transaction is revoked |
Interac | InteracFailedBulkCancellationRequest | When the transaction was cancelled by request |
Interac | InteracFailedRecipientRejected | When the transaction was cancelled due to recipient having declined receipt of funds |
Interac | InteracFailedAuthentication | Transfer cancelled due to maximum number of unsuccessful attempts to answer the security question by the recipient |
Interac | InteracFailedReachedCancellationCutOff | Transfer cancelled due to expiry |
Interac | InteracFailedNotificationDeliveryFailure | Transfer cancelled due to maximum number of failed email notification attempts reached |
Interac | InteracFailedAmountGreaterThanMax | If the transaction amount exceeds the maximum allowed |
Interac | InteracFailedDebtorRejected | The debtor rejected the request |
Interac | InteracFailedFundsDepositFailed | The funds deposit failed |
Interac | InteracFailedClientEmailedToRequestCancellation | Client emailed to request cancellation |
Interac | InteracFailedGenericError | When Interac Network is unavailable - * We have never seen this |
Interac | InteracWaitingSettlementIntoWallet | Waiting for funds to be settled into wallet |
Interac | InteracSettledIntoWallet | When Interac funds are settled into wallet |
Interac | InteracFailedNameMismatch | When the debtor name used to fulfill the Interac is different than the name on file |
Interac | InteracFraudAlertResponded | When a fraud alert responded for that transaction |
Interac | InteracFundsHeldForValidation | User needs to contact their Financial Institution to validate the transfer and release of funds |
Interac | InteracFailedInvalidAccountNumber | When the account number provided is invalid |
Interac | InteracFailedRequestBlockedByUser | When the transaction failed since the user has blocked some or all Interac requests coming to their email |
------- | ------- | ------- |
CreditCard | CreditCardDeclined | Transaction declined by the issuing bank |
CreditCard | CreditCardError | The card information, address, CVV is not correct |
CreditCard | CreditCardHeldForReview | Transaction is pre-approved, it might take a few hours to approve completely. This is rare |
CreditCard | CreditCardGenericError | The credit card network is unavailable |
CreditCard | CreditCardUnknownResponse | No clear response from the issuing bank |
CreditCard | CreditCardHoldCallOrPickUpCard | Credit card is considered lost or stolen by the issuing bank |
CreditCard | CreditCardSecViolation | Restrictions were placed on the credit card by the issuing bank possibly due to a security violation |
CreditCard | CreditCardServNotAllowed | The merchant account or credit card processor is not set up for this operation |
CreditCard | CreditCardCvvMismatch | Transaction rejected since CVV provided is invalid |
CreditCard | CreditCardInvalidMerchantId | The account is not approved for credit card transactions |
CreditCard | CreditCardAmountExceeded | The amount exceeds the maximum allowed by the credit card provider |
CreditCard | CreditCardRefundAmountExceeded | Transaction amount exceeds refund limit |
CreditCard | CreditCardCashbackNotApp | Cashback not applicable on card |
CreditCard | CreditCardExpiredCard | Transaction rejected since the card has expired |
CreditCard | CreditCardNoAccountFound | Transaction rejected since the account was not found |
CreditCard | CreditCardNotPermittedToCardHolderInformed | The card holder did not authorize the transaction or the card is restricted for this usage |
CreditCard | CreditCardInvalidCardNumber | Transaction rejected since card number provided is invalid |
CreditCard | CreditCardRejectedAmlOrFraud | Transaction is identified as AML or potential fraud |
CreditCard | CreditCardTypeNotAccepted | Card type not accepted for the transaction |
CreditCard | CreditCardDomesticDebitDeclined | Domestic debits are not allowed on the card |
CreditCard | CreditCardClosedAccount | Transaction rejected since the account has been closed |
#
Search a transactionUse this endpoint if you want the search for a specific transaction.
This endpoint will return transactions based on the filters provided. Transactions are returned with pagination, which means that if you need to retrieve all transactions you need to call the same endpoint incrementing the CurrentPage.
Method: POST
Endpoint: {{env}}/api/transaction/filter
- Payload
- Response
Input parameters
Parameter | Type | Mandatory | Description |
---|---|---|---|
Id | guid | no | Transaction id |
GenericSearch | string | no | Filter transactions by user name, user email, client transaction id, transaction id and memo |
ZumRailsType | string | no | Transaction type |
TransactionMethod | string | no | The transaction method |
TransactionStatus | string | no | Transaction status |
FailedTransactionEvent | string | no | Transaction event (column Event from the "Transaction Events" table) |
DateType | string | no | The type of date on which the date-filter applies. |
CreatedAtFrom | datetime | no | Start date (This field is only used when the operator is between) |
CreatedAtTo | datetime | no | End date (This field is only used when the operator is between) |
CreatedAt | datetime | no | Created date |
CreatedAtOperator | string | no | Operator to filter with CreatedAt properties |
UserId | string | no | User id |
ClientTransactionId | string | no | The Transaction id you informed in the creation of the transaction |
Memo | string | no | Memo field |
Comment | string | no | Comment field |
FraudAlertActionTaken | boolean | no | Filter transactions for which the fraud alert action was taken |
FraudAlertReported | boolean | no | Filter transactions that were reported for fraud through internal analysis |
Pagination | no | ||
PageNumber | number | no | The respective page, starting at 1 |
Date Operators
Type | Description |
---|---|
IsInTheLast | Filter records on or after |
ExactlyMatches | Filter records with exact date |
IsBetween | Filters records in range |
IsAfter | Filter records after date |
IsOnOrAfter | Filter records on or after |
IsBefore | Filter records before date |
IsBeforeOrOn | Filter records before or on date |
Date Types
Type | Description |
---|---|
CreatedAt | Filter records based on date when transactions were created |
CompletedAt | Filter records based on date when transactions were completed |
CancelledAt | Filters records based on date when transactions were cancelled |
FailedAt | Filter records based on date when transactions were failed |
Response
Parameter | Type | Description | |
---|---|---|---|
CurrentPage | number | The current page | |
PageSize | number | The amount of rows returned in the current page | |
TotalCount | number | The total rows the filter returns | |
Items | List of transactions | ||
Id | guid | Transaction id | |
CreatedAt | datetime | When the transaction was created | |
Memo | string | Transaction memo | |
Comment | string | Transaction comment | |
Amount | decimal | Transaction amount | |
ZumRailsType | string | Transaction type | |
TransactionMethod | string | Transaction method | |
TransactionStatus | string | Indicate the status of the transaction | |
RecurrentTransactionId | guid | The id of the recurrent transaction that created this transaction (null if inexistent) | |
FailedTransactionEvent | string | If the transaction has failed, the transaction event that caused it (null otherwise) | |
ScheduledStartDate | date | The date transaction will be sent to the financial institution | |
ClientTransactionId | string | The Transaction id you informed in the creation of the transaction |
tip
If you need to search for a specific transaction, we recommend for you to retrieve the transaction id and then use the GET specific transaction endpoint to retrieve the detailed information about the transaction.
#
Delete a transactionUse this endpoint if you want to delete or cancel a specific transaction
Method: DELETE
Endpoint: {{env}}/api/transaction/{transaction_id}
- Response
info
- For EFT, transactions can only be deleted and cancelled if it's not transmitted to the financial institution. We send transactions to the financial institution multiple times a day.
- For Interac, the transactions are not canceled right away since we need to wait for the providers’ response. We will return 200 (OK) meaning that the cancellation request was successful. Also, transactions can only be deleted and cancelled if the end-user has not yet initiated the payment by opening the email/sms.
- For Visa Direct / Credit card, transactions cannot be deleted/cancelled. If needed you can call the endpoint to Reverse a Transaction
#
Refund a TransactionWith Zūm Rails, it is easy to refund Credit Card transactions. Currently we support whole/partial refunds of initial transactions. When you create a new refund, you must specify the transaction ID that you wish to refund. Creating a new refund will refund a transaction that has previously been created but not yet refunded. Funds will be refunded to the credit card that was originally charged. Read more about refunds here.
Method: POST
Endpoint: {{env}}/api/transaction/{transaction_id}/Refund
- Response
- Payload
Response
Same response details of get transaction API.
caution
To simulate a Partial refund transaction in Sandbox, use the word PartialRefundTest in the field COMMENT while creating a Credit Card transaction. If the word PartialRefundTest is not informed, or something else is informed, you will not be able to simulate multiple Partial Refunds for this transaction.
#
Retrieve a refundTo retrieve the details of an existing refund, use the get transaction API.
#
List all refundsReturns a list of all refunds you’ve previously created. The refunds are returned in sorted order, with the most recent refunds appearing first. For convenience, the 10 most recent refunds will be returned by default. To get a list of all refunds, use the filter transaction API.
#
Take Action for Interac TransactionsThis end point is used if you have "Under Review" Interac transactions and want to take appropriate action. The action you can take per transaction : Confirmed legitimate, Presumed legitimate, Confirmed fraud or Scam.
Method: PUT
Endpoint: {{env}}/api/transaction/takeaction/{transaction_id}
- Payload
- Response
Input parameters
Parameter | Type | Mandatory | Description |
---|---|---|---|
TransactionInReviewActionChosen | string | yes | In Review Action (column Type from the "In Review Actions" table) |
#
In Review ActionsZūm Rails offers 4 main actions for transactions in review:
In Review Actions
Type | Description |
---|---|
ConfirmedLegitimate | Confirm the transaction is legitimate. |
PresumedLegitimate | Presume the transaction is legitimate. |
ConfirmedFraud | Confirm the transaction is fraud. |
Scam | Confirm the transactions is scam. |