OpenAPI specification
Release: ActiveSingle operation + dependencies. Includes the request, responses, and referenced schemas for this API—not the full product specification.
Submit funds transaction.
/ch/v1/funds/transactMoves funds for a party. Set transactionDetails.operationType and send only the fields for your use case:
The request is accepted synchronously. The final status is sent to your webhook.
Showing 4 of 4 top-level parameters (12 total fields) for Buyer refund (CREDIT)
payeeRequiredobjectOnboarded party whose wallet is credited, topped up, or paid out from. Send partyId only. New buyer to onboard with this CREDIT. Do not send partyId; it is assigned during onboarding. Recipient of a payout who is not onboarded. Do not send partyId; identify the recipient with platform.merchantPartyId and describe the person in owners.
merchantDetailsRequiredobjectMerchant and terminal identifiers for the transaction.
transactionDetailsRequiredobjectTransaction details for a CREDIT. Transaction details for a TOP_UP. Transaction details for a PAYOUT.
amountRequiredobjectAmount object to support the request for payment.
Request
Buyer refund (CREDIT)Response
Continue with notifications
Explore the notification steps and callback examples for this request.
curl --request POST 'https://connect-cert.fiservapis.net/ch/v1/funds/transact' \
--header 'Client-Request-Id: <Client-Request-Id>' \
--header 'Timestamp: <Timestamp>' \
--header 'Auth-Token-Type: HMAC' \
--header 'Authorization: YOUR_BASE64_HMAC_SIGNATURE' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
"payee": {
"partyId": "101517000004623"
},
"merchantDetails": {
"merchantId": "10400000000011",
"terminalId": "10000001"
},
"transactionDetails": {
"merchantOrderId": "MKT-ORDER-71720684",
"merchantTransactionId": "MKT-REFUND-71720684-01",
"operationType": "CREDIT"
},
"amount": {
"total": 55,
"currency": "USD"
}
}'| HTTP | Description |
|---|---|
| 400 | The request cannot be validated. |
| 401 | The request was unauthorized. |
| 404 | The requested resource does not exist. |
| 408 | The request was timed out due to not receiving the request in time. |
| 415 | The media type is not supported. |
| 425 | The request was sent too early. |
| 429 | Too many request were sent. |
| 500 | An unexpected internal server error occurred. |
| 503 | The service was unavailable. |
| 504 | The request timed out while waiting for a response. |
Asynchronous events the platform delivers to your registered webhook endpoint after this operation is accepted. Follow the documented delivery contract and acknowledge with the expected response. Request-authentication headers do not establish the callback signing contract.
{clientWebhookUrl}
Notify the merchant-configured webhook when a transaction status changes.
Notification Hub resolves the final webhook URL from merchant configuration and delivers this asynchronous event to the client-provided endpoint.
CREDIT_STATUS_CHANGED - APPROVED notification
{
"gatewayResponse": {
"transactionType": "CREDIT_STATUS_CHANGED",
"transactionState": "APPROVED",
"transactionProcessingDetails": {
"transactionTimestamp": "2026-09-28T20:11:38.37599174Z",
"apiTraceId": "b06bb86095b248c8ac105d72de04d5ef",
"transactionId": "0200b06bb86095b248c8ac105d72de04d5ef"
}
},
"paymentReceipt": {
"approvedAmount": {
"total": 100,
"currency": "USD"
},
"processorResponseDetails": {
"approvalStatus": "APPROVED",
"referenceNumber": "b06bb86095b248c8ac105d72de04d5ef",
"processor": "COMMERCEHUB_NATIVE",
"responseCode": "000",
"responseMessage": "APPROVED",
"localTimestamp": "2026-09-28T20:11:37.993802347Z"
}
},
"transactionDetails": {
"merchantTransactionId": "c12ab04917503d1bfdc22bc03da5e9b6",
"retrievalReferenceNumber": "b06bb86095b248c8ac105d72de04d5ef",
"operationType": "CREDIT"
},
"payee": {
"partyId": "106336000004243"
}
}CREDIT_STATUS_CHANGED - DECLINED notification
{
"event": {
"gatewayResponse": {
"transactionType": "CREDIT_STATUS_CHANGED",
"transactionState": "DECLINED",
"transactionProcessingDetails": {
"transactionTimestamp": "2026-10-06T20:59:21.389342598Z",
"apiTraceId": "7835a2515588429599297e082b5fa353",
"transactionId": "02007835a2515588429599297e082b5fa353"
}
},
"paymentReceipt": {
"processorResponseDetails": {
"approvalStatus": "DECLINED",
"processor": "COMMERCEHUB_NATIVE",
"responseCode": "006",
"responseMessage": "DECLINED",
"hostResponseCode": "006",
"hostResponseMessage": "Credit transactions not allowed; Transaction exceeds cumulative credit limit of 5000.00"
}
},
"transactionDetails": {
"merchantTransactionId": "ee0c7848dd15470d8979b744fe6aef41",
"operationType": "CREDIT"
},
"payee": {
"partyId": "106336000011065"
}
},
"eventTimestamp": "2026-10-06T20:59:21",
"type": "FundsTransactResponse"
}Single operation + dependencies. Includes the request, responses, and referenced schemas for this API—not the full product specification.
No Postman workflow is mapped to this operation. No product-wide collection is substituted.
QA collections: Configure your environment and credentials before running. Some requests create resources or move funds.