openapi: 3.0.0
servers:
- url: https://api.monoova.com
description: Production URL#
- url: https://sand-api.monoova.com
description: Sandbox URL
info:
description: |
# Introduction
Monoova's Online Card Payment Service incorporates a next-gen Card Payment Checkout integrated with our expansive Payments API to allow merchants to capture card and mobile wallet payments from your customers online and receive funds into your Monoova account for automated reconciliation and disbursement. To integrate the Card Payment Gateway into your website, all you need is Monoova's <a href="https://github.com/Monoova/merchantSDK" target='_blank'>Merchant Software Development Kit</a> (SDK) hosted on GitHub and a set of straightforward RESTful APIs detailed below. We will continue to update this API documentation as we release additional functionality.
# How to Enable the Card Payment Gateway and Sandbox API’s
>
- If not already a user, register an account in our <a href='https://sandbox.monoova.com' target='_blank'>Sandbox Portal</a>
- Once registered and logged in, navigate to **Manage > API Gateway** and input your API Key (provided to you as part of Portal user registration) to activate API Gateway Access for your mAccount (If you do not know your API Key you will need to roll a new one, this can be done by navigating to **Manage > Accounts**)
- Card Gateway integration requires some additional back-end configuration prior to use by a member of our integration team who will reach out to onboard and confirm access as a final step to enabling your service.
- To notify the integration team of your interest in enabling your account for Online Card Payment Service functionality, please <a href='https://www.monoova.com/contact' target="_blank">Contact us</a> and a member of the team will follow up to guide you through the final steps.
# Integrating Monoova Checkout for Card Payments
Utilizing Monoova's Merchant SDK enables you to deploy a Card Payment Checkout that securely gathers card payment information that complies with PCI standards, without necessitating substantial PCI compliance modifications within your application. The integrated Card Payment Checkout implementation ensures the secure capture of card data and offers complete customization to seamlessly align with your application's appearance and user experience.
## Before you start
>
- Ensure that your mAccount has been properly configured to enable card payments. Please access the Monoova portal or contact Monoova Support to verify this.
- Download the Card Software Development Kit (SDK): https://github.com/Monoova/merchantSDK
## Using the Merchant SDK
To begin, clone the Merchant SDK repository. This repository offers an example implementation of the set of tools for initiating a session with Monoova and presenting the credit card checkout for the collection of card payments. Detailed instructions on how to integrate the credit card checkout are included in the SDK.
## Sample Card Details
The following Card details can be used to test the credit card checkout and end-to-end flow in your Sandbox Account.
<table>
<tr>
<th>Card Type</th>
<th>Card Number</th>
<th>Card Expiry</th>
<th>Card CVV</th>
</tr>
<tr>
<td>VISA</td>
<td>4111 1111 1111 1111</td>
<td>12/31</td>
<td>123</td>
</tr>
<tr>
<td>MASTER CARD</td>
<td>5555 5555 5555 4444</td>
<td>12/31</td>
<td>123</td>
</tr>
</table>
## Customising the Checkout
>
- For those using the provided checkout form, you can make adjustments to the appearance of the checkout by editing the Checkout.html and style.css files to apply host themes.
- To modify the styles within the card iframe, you should edit the CSS associated with the #Checkout-container ID, as host themes do not apply to the card form.
- Refer to our README documentation in the Card Software Development Kit (SDK). It includes programmatic examples, including checkout style and callback details, for the events
* onCheckoutComplete
* onCheckoutFail
version: v1
title: Monoova Card Payments API
contact:
name: Monoova Support
email: support@monoova.com
url: https://www.monoova.com
x-logo:
url: 'https://movdpwebsiteprodae.blob.core.windows.net/images/Monoova-Primary-Logo-Black-RGB.png'
altText: Monoova logo
tags:
- name: Webhooks
description: <p>
In addition to callable reporting endpoints, webhooks will also be available for state changes for payment agreements and funds received.
</p>
</br></br>
- name: Monoova Error Codes
description: <style type="text/css">
.tb { table-layout:auto; width:300px;!important }
.td { overflow:hidden; white-space:nowrap; text-overflow:ellipsis!important}
</style>
<table class="tb">
<tr>
<th> HTTP Status </th>
<th> Error Code </th>
<th> Meaning </th>
</tr>
<tr><td> 400 </td><td> CCM_ACCTID_REQUIRED </td><td> maccount is required </td></tr>
<tr><td> 400 </td><td> CCM_ACC_DISABLED_ERROR </td><td> Card transactions disabled for accountId {0} </td></tr>
<tr><td> 400 </td><td> CCM_ACC_EXISTS </td><td> Failed to create account - account already exists </td></tr>
<tr><td> 400 </td><td> CCM_ACC_LIMIT_REACHED </td><td> transaction amount {0} plus existing transactions {1} exceeds limit {2} </td></tr>
<tr><td> 400 </td><td> CCM_ACC_NOT_FOUND_ERROR </td><td> account not found for accountId {0} </td></tr>
<tr><td> 400 </td><td> CCM_ACC_UID_NOT_UNIQUE </td><td> More than one account {0} is found </td></tr>
<tr><td> 400 </td><td> CCM_ACC_UPDATE_ERROR </td><td> Documents modified {0}. Expected exactly 1 account updated. </td></tr>
<tr><td> 400 </td><td> CCM_AMOUNT_INVALID </td><td> {0} must be between 0 and {1} </td></tr>
<tr><td> 400 </td><td> CCM_AMOUNT_REQUIRED </td><td> {0}.currencyAmount required </td></tr>
<tr><td> 400 </td><td> CCM_BILLADDR_REQUIRED </td><td> {0}.billingAddress required </td></tr>
<tr><td> 400 </td><td> CCM_BUSINESS_RULE_ERROR </td><td> startdate invalid </td></tr>
<tr><td> 400 </td><td> CCM_CARDTYPE_REQUIRED </td><td> {0}.cardType required </td></tr>
<tr><td> 400 </td><td> CCM_CC_GATEWAY_ERROR </td><td> Error returned from CC gateway - {0} </td></tr>
<tr><td> 400 </td><td> CCM_CC_GWM_ERROR </td><td> Error returned from CC Gateway Manager - {0} </td></tr>
<tr><td> 400 </td><td> CCM_COUNTRY_INVALID </td><td> {0}.countryCode must be valid ISO 2 character code </td></tr>
<tr><td> 400 </td><td> CCM_COUNTRY_REQUIRED </td><td> {0}.countryCode required </td></tr>
<tr><td> 400 </td><td> CCM_CRTD_ENDDATE_INVALID </td><td> createdEndDate must be later than createdStartDate </td></tr>
<tr><td> 400 </td><td> CCM_CRTD_STARTDATE_INVALID </td><td> createdStartDate must be past time </td></tr>
<tr><td> 400 </td><td> CCM_CRTD_STARTDATE_REQUIRED </td><td> createdStartDate is mandatory </td></tr>
<tr><td> 400 </td><td> CCM_CUSTOMER_REQUIRED </td><td> customer required </td></tr>
<tr><td> 400 </td><td> CCM_DESC_INVALID </td><td> {0}.description [{PropertyValue}] must match {RegularExpression} </td></tr>
<tr><td> 400 </td><td> CCM_DESC_LENGTH </td><td> {0}.description must not exceed {MaxLength} </td></tr>
<tr><td> 400 </td><td> CCM_DESC_REQUIRED </td><td> {0}.description required </td></tr>
<tr><td> 400 </td><td> CCM_DETAILS_REQUIRED </td><td> paymentDetails required </td></tr>
<tr><td> 400 </td><td> CCM_EMAIL_INVALID </td><td> {0}.emailAddress [{PropertyValue}] must be valid email address </td></tr>
<tr><td> 400 </td><td> CCM_EMAIL_MAXLEN </td><td> {0}.emailAddress cannot exceed {MaxLength} </td></tr>
<tr><td> 400 </td><td> CCM_EMAIL_REQUIRED </td><td> {0}.emailAddress required </td></tr>
<tr><td> 400 </td><td> CCM_EMPTY_BATCH_ID </td><td> Empty BatchId. </td></tr>
<tr><td> 400 </td><td> CCM_EMPTY_SETTLEMENTS_LIST </td><td> Empty settlements list. </td></tr>
<tr><td> 400 </td><td> CCM_EMPTY_SETTLEMENT_DUPLICATE </td><td> Empty settlement duplicate. </td></tr>
<tr><td> 400 </td><td> CCM_EMPTY_SETTLEMENT_ORIGINAL </td><td> Empty settlement original. </td></tr>
<tr><td> 400 </td><td> CCM_EMPTY_TRANSACTION_UNIQUE_REFERENCE </td><td> Empty TransactionUniqueReference. </td></tr>
<tr><td> 400 </td><td> CCM_FIRSTNAME_INVALID </td><td> {0}.{PropertyName} '{PropertyValue}' invalid. Must match {RegularExpression} </td></tr>
<tr><td> 400 </td><td> CCM_FIRSTNAME_LENGTH </td><td> {0}.firstName must not exceed {MaxLength} </td></tr>
<tr><td> 400 </td><td> CCM_FIRSTNAME_REQUIRED </td><td> {0}.firstName required </td></tr>
<tr><td> 400 </td><td> CCM_FUNDS_DECLINED </td><td> Funds reservation failed </td></tr>
<tr><td> 400 </td><td> CCM_JOBID_INVALID </td><td> Async Job Id is not valid Guid - must use the UniqueRequestId returned by the originating call </td></tr>
<tr><td> 400 </td><td> CCM_JOB_EXISTS </td><td> Failed to create AsyncJob - request already exists </td></tr>
<tr><td> 400 </td><td> CCM_JOB_EXPIRED </td><td> Async job failed to complete within a reasonable time </td></tr>
<tr><td> 400 </td><td> CCM_LASTNAME_INVALID </td><td> {0}.{PropertyName} '{PropertyValue}' invalid. Must match {RegularExpression} </td></tr>
<tr><td> 400 </td><td> CCM_LASTNAME_LENGTH </td><td> {0}.lastName must not exceed {MaxLength} </td></tr>
<tr><td> 400 </td><td> CCM_LASTNAME_REQUIRED </td><td> {0}.lastName required </td></tr>
<tr><td> 400 </td><td> CCM_MAPPING_ERROR </td><td> Internal error - property {0} value {1} is invalid - expected one of [{2}]. Please contact Monoova support. </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_ADDR_REQUIRED </td><td> {0}.{PropertyName} required </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_CAT_INVALID </td><td> {0}.{PropertyName} '{PropertyValue}' invalid. Must match {RegularExpression} </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_CAT_REQUIRED </td><td> {0}.{PropertyName} required </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_COUNTRY_NOTFOUND </td><td> {0}.{PropertyName} '{PropertyValue}' is not valid </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_COUNTRY_REQUIRED </td><td> {0}.{PropertyName} required </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_EMAIL_INVALID </td><td> {0}.{PropertyName} '{PropertyValue}' must match {RegularExpression} </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_EMAIL_LENGTH </td><td> {0}.{PropertyName} '{PropertyValue}' must not exceed {MaxLength} </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_EMAIL_REQUIRED </td><td> {0}.{PropertyName} required </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_IND_REQUIRED </td><td> {0}.{PropertyName} required </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_NAME_INVALID </td><td> {0}.{PropertyName} '{PropertyValue}' invalid. Must match {RegularExpression} </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_NAME_LENGTH </td><td> {0}.{PropertyName} must not exceed {MaxLength} </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_NAME_REQUIRED </td><td> {0}.{PropertyName} required </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_PHONE_INVALID </td><td> {0}.{PropertyName} '{PropertyValue}' must match {RegularExpression} </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_PHONE_LENGTH </td><td> {0}.{PropertyName} '{PropertyValue}' must not exceed {MaxLength} </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_POSTCODE_INVALID </td><td> {0}.{PropertyName} '{PropertyValue}' invalid. Must match {RegularExpression} </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_POSTCODE_NOTFOUND </td><td> {0}.PostalCode is not defined for specified country </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_POSTCODE_REQUIRED </td><td> {0}.{PropertyName} required </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_STATE_INVALID </td><td> {0}.{PropertyName} '{PropertyValue}' invalid. Must match {RegularExpression} </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_STATE_NOTFOUND </td><td> {0}.State is not defined for specified country </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_STATE_REQUIRED </td><td> {0}.{PropertyName} required </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_STREET_INVALID </td><td> {0}.{PropertyName} '{PropertyValue}' invalid. Must match {RegularExpression} </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_STREET_LENGTH </td><td> {0}.{PropertyName} must not exceed {MaxLength} </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_STREET_REQUIRED </td><td> {0}.{PropertyName} required </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_SUBURB_INVALID </td><td> {0}.{PropertyName} '{PropertyValue}' invalid. Must match {RegularExpression} </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_SUBURB_LENGTH </td><td> {0}.{PropertyName} must not exceed {MaxLength} </td></tr>
<tr><td> 400 </td><td> CCM_MRCH_SUBURB_REQUIRED </td><td> {0}.{PropertyName} required </td></tr>
<tr><td> 400 </td><td> CCM_PARENTUID_INVALID </td><td> {0}.clientParentTransactionUniqueReference {PropertyValue} must match {RegularExpression} </td></tr>
<tr><td> 400 </td><td> CCM_PARENTUID_REQUIRED </td><td> {0}.clientParentTransactionUniqueReference required </td></tr>
<tr><td> 400 </td><td> CCM_PCT_PREPAID_INVALID </td><td> {0}.{PropertyName} value {PropertyValue} must be between {From} and {To} </td></tr>
<tr><td> 400 </td><td> CCM_PCT_PREPAID_REQUIRED </td><td> {0}.{PropertyName} required </td></tr>
<tr><td> 400 </td><td> CCM_PG_NUM_INVALID </td><td> pageNumber must be greater than zero </td></tr>
<tr><td> 400 </td><td> CCM_PG_SZ_INVALID </td><td> pageSize must be between 1 and {0} </td></tr>
<tr><td> 400 </td><td> CCM_POSTCODE_INVALID </td><td> {0}.{PropertyName} '{PropertyValue}' invalid. Must match {RegularExpression} </td></tr>
<tr><td> 400 </td><td> CCM_POSTCODE_LENGTH </td><td> {0}.postalCode must not exceed {MaxLength} </td></tr>
<tr><td> 400 </td><td> CCM_POSTCODE_REQUIRED </td><td> {0}.postalCode required </td></tr>
<tr><td> 400 </td><td> CCM_PPDAYS_INVALID </td><td> {0}.{PropertyName} value {PropertyValue} cannot be less than {ComparisonValue} </td></tr>
<tr><td> 400 </td><td> CCM_PPDAYS_REQUIRED </td><td> {0}.{PropertyName} required </td></tr>
<tr><td> 400 </td><td> CCM_REASON_INVALID </td><td> {0}.refundReason [{PropertyValue}] must match {RegularExpression} </td></tr>
<tr><td> 400 </td><td> CCM_REFUND_LIMIT_EXCEEDED </td><td> refundAmount {0} exceeds available amount {1} </td></tr>
<tr><td> 400 </td><td> CCM_REFUND_REJECTED </td><td> "Refund rejected by payment processor
400,CCM_REF_EXISTING,existing refund status {0} is not yet finalised""" </td></tr>
<tr><td> 400 </td><td> CCM_REF_INVALID_STATUS </td><td> parent transaction status {0} invalid for refund </td></tr>
<tr><td> 400 </td><td> CCM_REF_TOO_LATE </td><td> the allowable refund period has expired for this transaction </td></tr>
<tr><td> 400 </td><td> CCM_REQUEST_EMPTY </td><td> request payload is empty </td></tr>
<tr><td> 400 </td><td> CCM_REQ_BODY_INVALID </td><td> Error parsing badly formed request message - {0} </td></tr>
<tr><td> 400 </td><td> CCM_STATE_INVALID </td><td> {0}.{PropertyName} '{PropertyValue}' invalid. Must match {RegularExpression} </td></tr>
<tr><td> 400 </td><td> CCM_STATE_LENGTH </td><td> {0}.state must not exceed {MaxLength} </td></tr>
<tr><td> 400 </td><td> CCM_STATE_REQUIRED </td><td> {0}.state required </td></tr>
<tr><td> 400 </td><td> CCM_STATUS_INVALID </td><td> Status {PropertyValue} is invalid - must be one of [{0}] </td></tr>
<tr><td> 400 </td><td> CCM_STREET_INVALID </td><td> {0}.{PropertyName} '{PropertyValue}' invalid. Must match {RegularExpression} </td></tr>
<tr><td> 400 </td><td> CCM_STREET_LENGTH </td><td> {0}.street must not exceed maximum length 37 for Amex or 60 for Visa/Mastercard </td></tr>
<tr><td> 400 </td><td> CCM_STREET_MAX_LINES </td><td> {0}.street cannot exceed 2 lines </td></tr>
<tr><td> 400 </td><td> CCM_STREET_MIN_LINES </td><td> {0}.street must contain at least 1 line </td></tr>
<tr><td> 400 </td><td> CCM_STREET_REQUIRED </td><td> {0}.street required </td></tr>
<tr><td> 400 </td><td> CCM_SUBURB_INVALID </td><td> {0}.{PropertyName} '{PropertyValue}' invalid. Must match {RegularExpression} </td></tr>
<tr><td> 400 </td><td> CCM_SUBURB_LENGTH </td><td> {0}.suburb must not exceed {MaxLength} </td></tr>
<tr><td> 400 </td><td> CCM_SUBURB_REQUIRED </td><td> {0}.suburb required </td></tr>
<tr><td> 400 </td><td> CCM_TRN_EXISTS </td><td> Failed to create CreditCardTransaction - transaction already exists </td></tr>
<tr><td> 400 </td><td> CCM_UID_INVALID </td><td> {0}.clientTransactionUniqueReference {PropertyValue} must match {RegularExpression} </td></tr>
<tr><td> 400 </td><td> CCM_UID_REQUIRED </td><td> {0}.clientTransactionUniqueReference required </td></tr>
<tr><td> 400 </td><td> CCM_VALIDATION_ERROR </td><td> Error validating request message - {0} </td></tr>
<tr><td> 404 </td><td> CCM_ACC_NOT_FOUND_ERROR </td><td> account not found for accountId {0} </td></tr>
<tr><td> 404 </td><td> CCM_JOB_NOT_FOUND_ERROR </td><td> AsyncJob with RequestId {0} not found </td></tr>
<tr><td> 404 </td><td> CCM_LINK_NOT_FOUND_ERROR </td><td> CreditCardTransaction not found for PaymentGateway {0} / GatewayTransactionId {1} </td></tr>
<tr><td> 404 </td><td> CCM_TRNUID_NOT_FOUND_ERROR </td><td> CreditCardTransaction not found for TransactionUniqueReference {0} </td></tr>
<tr><td> 404 </td><td> CCM_TRN_NOT_FOUND_ERROR </td><td> CreditCardTransaction not found for Account {0} / clientTransactionUniqueReference {1} </td></tr>
<tr><td> 500 </td><td> CCM_ACC_CREATE_ERROR </td><td> Failed to create account in repository </td></tr>
<tr><td> 500 </td><td> CCM_DUPLICATED_SETTLEMENT_CREATE_ERROR </td><td> Failed to create duplicated settlement in repository </td></tr>
<tr><td> 500 </td><td> CCM_FAILED_TRANSACTION_CREATE_ERROR </td><td> Failed to create failed transaction in repository </td></tr>
<tr><td> 500 </td><td> CCM_INVALID_DATE_ONLY_STRING </td><td> {0} Invalid DateOnly string {1}. Expected yyyy-MM-dd </td></tr>
<tr><td> 500 </td><td> CCM_JOB_CREATE_ERROR </td><td> Failed to create AsyncJob in repository </td></tr>
<tr><td> 500 </td><td> CCM_JOB_UPDATE_ERROR </td><td> Documents modified {0}. Expected exactly 1 AsyncJob updated. </td></tr>
<tr><td> 500 </td><td> CCM_TRNUID_NOT_UNIQUE </td><td> More than one TransactionUniqueReference {0} is found </td></tr>
<tr><td> 500 </td><td> CCM_TRN_CREATE_ERROR </td><td> Failed to create transaction in repository </td></tr>
<tr><td> 500 </td><td> CCM_TRN_NOT_UNIQUE </td><td> More than one AccountId {0} / clientTransactionUniqueReference {1} is found </td></tr>
<tr><td> 500 </td><td> CCM_TRN_UPDATE_ERROR </td><td> Documents modified {0}. Expected exactly 1 CreditCardTransaction updated. </td></tr>
<tr><td> 500 </td><td> CCM_UID_CREATE_ERROR </td><td> Failed to allocate transaactionUniqueReference </td></tr>
<tr><td> 500 </td><td> CCM_UNEXPECTED_ERROR </td><td> Internal server error. Please contact Monoova support. </td></tr>
<tr><td> 504 </td><td> CCM_CC_GATEWAY_TIMEOUT </td><td> Timeout from CC gateway </td></tr>
<tr><td> 504 </td><td> CCM_CC_GWM_TIMEOUT </td><td> Timeout from CC Gateway Manager </td></tr>
</table>
x-tagGroups:
- name: ''
tags:
- Generate a Bearer Token
- Generate a Client Session
- Get Transaction By Id
- Get Transaction By Date Range
- Request Refund Transaction
- Get Async Request Status
- Create Payment Using Token
- Get Payment Method Token Details
- Update Payment Method Token Status
- Webhooks
- Monoova Error Codes
security:
- BearerAuth: []
paths:
# Generate Client Session
'/au/card/ccm/CreditCardTransaction/token':
post:
tags:
- Generate a Client Session
summary: Generate a Client Session
description: This endpoint is used to generate a client session token which is required to render the payment screen. All the fields are mandatory and will be passed on to the issuer while creating payments.</br>
operationId: generate-clientSession
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateClientSessionDto'
example:
clientTransactionUniqueReference: '6aac85b115c7405180e6c7a7735c9f3c'
customer:
billingAddress:
firstName: 'Joseph'
lastName: 'Blogs'
street: ['1 Walker St']
suburb: 'North Sydney'
state: 'NSW'
postalCode: '2000'
countryCode: 'AU'
emailAddress: 'joe.blogs@monoova.com'
customerId: '12345678'
firstName: 'Joseph'
lastName: 'Blogs'
paymentDetails:
cardType: 'Visa'
description: 'sample token create'
saveOnSuccess: true
clientPaymentTokenUniqueReference: 'my-visa-card'
capturePayment: true
applySurcharge: false
amount:
currencyAmount: 100.00
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/GenerateClientSessionResponse'
'400':
description: Error
content:
application/json:
example:
{
'traceId': '0d4518e0-8934-489c-b303-1f82323f2595',
'errors':
[
{
'errorCode': 'CCM_ACC_LIMIT_REACHED',
'errorMessage': 'transaction amount 100.00 plus existing transactions 100.00 exceeds limit 50'
}
]
}
'500':
description: Error
content:
application/json:
example:
{
'traceId': 'fb2d673d-3c5a-408e-8d3c-76f7c4ac2aca',
'errors':
[
{
'errorCode': 'CCM_UNEXPECTED_ERROR',
'errorMessage': 'Internal server error. Please contact Monoova support.'
}
]
}
#Create Payment Using Token
'/au/card/ccm/CreditCardTransaction/payment':
post:
tags:
- Create Payment Using Token
summary: Create a Payment using Token
description: This endpoint is used to create payments using tokens.
operationId: createPayment
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePaymentRequest'
example:
clientTransactionUniqueReference: '6aac85b115c7405180e6c7a7735c9f3c'
customer:
customerId: '12345678'
billingAddress:
firstName: 'Joseph'
lastName: 'Blogs'
street:
- '1 Walker St'
suburb: 'North Sydney'
state: 'NSW'
postalCode: '2000'
countryCode: 'AU'
emailAddress: 'joe.blogs@monoova.com'
paymentDetails:
clientPaymentTokenUniqueReference: 'Token123'
description: 'sample token create'
amount:
currencyAmount: 100.00
responses:
'201':
description: Accepted by gateway
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentResponse'
example:
traceId: '1dabfaa9-abe8-4d2d-a69a-b723079d84ed'
clientTransactionUniqueReference: 'DCCCC5DE-CC48-4942-A419-F1B84EC122C4'
clientPaymentTokenUniqueReference: 'TOKEN123'
status: 'Pending Settlement'
'200':
description: Declined by gateway
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentResponse'
example:
traceId: '1dabfaa9-abe8-4d2d-a69a-b723079d84ed'
clientTransactionUniqueReference: 'DCCCC5DE-CC48-4942-A419-F1B84EC122C4'
clientPaymentTokenUniqueReference: 'TOKEN123'
status: 'Declined'
statusReasonCode: 'reasonCode'
statusReasonDescription: 'reasonDescription'
'400':
description: Invalid request
content:
application/json:
example:
traceId: '0d4518e0-8934-489c-b303-1f82323f2595'
errors:
- errorCode: 'CCM_ACC_LIMIT_REACHED'
errorMessage: 'transaction amount 100.00 plus existing transactions 100.00 exceeds limit 50'
# Get Transaction By Id
'/au/card/ccm/CreditCardTransaction/{clientTransactionUniqueReference}':
get:
tags:
- Get Transaction By Id
summary: Get Transaction By Id
description: This endpoint can be used to get details of payments and refunds. clientTransactionUniqueReference used to initiate these transactions can be used to get details.</br>
operationId: get-transaction-by-id
parameters:
- name: clientTransactionUniqueReference
in: path
required: true
schema:
type: string
description: ClientTransactionUniqueReference must be associated with a payment that was initiated using <a href='/cards#tag/Generate-a-Client-Session/operation/generate-clientSession'> Generate a Client Session</a> <br/>
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CreditCardTransactionDetailsResponse'
example:
{
'creditCardTransactionDetails':
{
'clientTransactionUniqueReference': 'b6ec1fb0-e862-4dcd-a951-de6ebd91e7fc',
'transactionId': 'TX7891011',
'customerId': 'C123456',
'creationDateTime': '2023-03-02T06:29:20.175Z',
'transactionInitiationDateTime': '2023-03-02T06:29:26.175Z',
'amount': { 'currencyAmount': 10.0 },
'surchargeAmount': { 'currencyAmount': 1.0 },
'paymentDetails':
{
'cardType': 'Visa',
'description': 'sample token create',
'clientPaymentTokenUniqueReference': 'T12345678',
'saveOnSuccess': true
},
'transactionType': 'Payment',
'status': 'Authorized',
'statusReasonCode': '00',
'statusReasonDescription': 'Transaction completed successfully',
'refundStatus': 'Not Applicable',
'settlementDateTime': '2023-03-04T04:02:27.061Z',
'settlementBatchId': 'SB12345',
'clientParentTransactionUniqueReference': 'b6ec1fb0-e862-4dcd-a951-de6ebd91e7fd',
'refundTransactions':
[
{
'clientTransactionUniqueReference': 'r6ec1fb0-e862-4dcd-a951-de6ebd91e7f1',
'clientParentTransactionUniqueReference': 'b6ec1fb0-e862-4dcd-a951-de6ebd91e7fc',
'transactionId': 'TX7891012',
'creationDateTime': '2023-03-05T08:00:00.000Z',
'transactionInitiationDateTime': '2023-03-03T04:02:27.061Z',
'settlementDateTime': '2023-03-03T04:02:27.061Z',
'amount': { 'currencyAmount': 50.25 },
'surchargeAmount': { 'currencyAmount': 0.5 },
'paymentDetails':
{
'cardType': 'Visa',
'description': 'Refund for coffee shop purchase'
},
'transactionType': 'Refund',
'status': 'Pending',
'statusReasonCode': '01',
'statusReasonDescription': 'Refund in process',
'settlementBatchId': 'SB12346'
}
],
'cardDetails':
{
'expirationMonth': '12',
'expirationYear': '2026',
'last4Digits': '1111',
'first6Digits': '407220',
'cardholderName': 'Jane Doe',
'cardType': 'VISA',
'issuerCountryCode': 'AU',
'issuerName': 'ANZ'
}
},
'authenticationDetails':
{ 'responseCode': 'AUTH_SUCCESS', 'challengeIssued': true },
'riskDetails':
{ 'preAuthorizationResult': 'FAILED', 'postAuthorizationResult': 'ACCEPT' },
'traceId': 'cb9facce-0239-46bd-a823-16fa4191f87e'
}
'400':
description: Error
# --- truncated at 32 KB (118 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/monoova/refs/heads/main/openapi/monoova-cc.yml