Payment Gateway - Credit Card API

Tribe Payments Gateway Credit Card API (v3) for merchants processing credit and debit card e-commerce (ECOM) transactions - sale, authorization, capture, refund, and void - organized around REST with JSON. Card-transaction and callback specifications harvested verbatim from the Tribe developer portal.

OpenAPI Specification

tribe-payments-trb-cc-api-merchant-api-credit-card-v3.json Raw ↑
{
    "openapi": "3.0.0",
    "info": {
        "title": "Merchant API Credit Card",
        "version": "3.0.0"
    },
    "servers": [
        {
            "url": "http://127.0.0.1:10010/v3"
        }
    ],
    "paths": {
        "/sale": {
            "post": {
                "tags": [
                    "Sale"
                ],
                "summary": "",
                "operationId": "postsale",
                "requestBody": {
                    "description": "To charge the card directly, make a Sale transaction. Upon successful Sale transaction,\n                funds are transferred from the cardholder to the merchant, and a transaction record is created.\n                In some cases, a 3DS authentication procedure is required to successfully complete such an action.\n                For more details, please refer to [`3DS required`](#webhooks--3ds-authentication-required).\n                After processing the request, a webhook will be sent to your URL specified in the Processing Account setup.\n                For more details, refer to the [`Sale`](#webhooks--sale) webhook.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Sale"
                            }
                        }
                    }
                },
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseSuccess"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseError"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseUnauthorized"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseForbidden"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/authorize": {
            "post": {
                "tags": [
                    "Authorize"
                ],
                "summary": "",
                "operationId": "postauthorize",
                "requestBody": {
                    "description": "To authorize an amount and charge the card later, make an Authorize transaction.\n                Upon successful Authorize, funds are reserved in the cardholder's account, and a transaction record is created.\n                In some cases, a 3DS authentication procedure is required to successfully complete such an action.\n                For more details, please refer to [`3DS required`](#webhooks--3ds-authentication-required).\n                To charge the authorized amount, make a Capture transaction by providing the initial Authorize transaction ID.\n                See [`Capture`](#actions--capture) for details.\n                After the request is processed, a webhook will be sent to your URL specified in the Processing Account setup.\n                For more details, refer to the [`Authorize`](#webhooks--authorize) webhook.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Authorize"
                            }
                        }
                    }
                },
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseSuccess"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseError"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseUnauthorized"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseForbidden"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/pre-authorize": {
            "post": {
                "tags": [
                    "Pre authorize"
                ],
                "summary": "",
                "operationId": "postpre-authorize",
                "requestBody": {
                    "description": "To authorize an amount and have the ability to authorize an additional amount later, make a Pre authorize transaction.\n                Upon successful Pre authorize, funds are reserved on the cardholder's account and a transaction is created.\n                In some cases, a 3DS authentication procedure is required to successfully complete such an action.\n                For more details, please refer to [`3DS required`](#webhooks--3ds-authentication-required).\n                To authorize an additional amount, make an [`Incremental authorize`](#actions--incremental-authorize) transaction by providing the Pre authorize transaction ID.\n                To charge this authorized amount, make a Capture transaction by providing the Pre authorize transaction ID.\n                See [`Capture`](#actions--capture) for details.\n                After processing the request, a webhook will be sent to your URL specified in the Processing Account setup.\n                For more details, refer to the [`Pre authorize`](#webhooks--pre-authorize) webhook.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PreAuthorize"
                            }
                        }
                    }
                },
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseSuccess"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseError"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseUnauthorized"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseForbidden"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/credit": {
            "post": {
                "tags": [
                    "Credit"
                ],
                "summary": "",
                "operationId": "postcredit",
                "requestBody": {
                    "description": "To move funds from the merchant's account to the cardholder's account, make a Credit transaction.\n                    After processing the request, a webhook will be sent to your URL specified in the Processing Account setup.\n                    For more details, refer to the [`Credit`](#webhooks--authorize--registeredcreditaddress) webhook.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Credit"
                            }
                        }
                    }
                },
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseSuccess"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseError"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseUnauthorized"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseForbidden"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/process": {
            "post": {
                "tags": [
                    "Process"
                ],
                "summary": "",
                "operationId": "postprocess",
                "requestBody": {
                    "description": "To process a transaction without cardholder details, use card hash received in the webhook response of any previous API call.\n                Depending on the provided operationType, three actions can be done: [`Authorize`](#actions--authorize), [`Sale`](#actions--sale) or [`Credit`](#actions--credit) request.\n                In some cases, a 3DS authentication procedure is required to successfully complete such an action.\n                For more details, please refer to [`3DS required`](#webhooks--3ds-authentication-required).\n                After processing the request, a webhook will be sent to your URL specified in the Processing Account setup.\n                For more details, refer to the [`Process`](#webhooks--process) webhook.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Process"
                            }
                        }
                    }
                },
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseSuccess"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseError"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseUnauthorized"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseForbidden"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/p2p": {
            "post": {
                "tags": [
                    "P2P"
                ],
                "summary": "",
                "operationId": "postp2p",
                "requestBody": {
                    "description": "To transfer funds from one cardholder's account to another cardholder's account, make a P2P transaction.\n                Person-to-person (also known as Peer-to-Peer or P2P) transactions are electronic funds transfers from one person to another through an intermediary,\n                typically referred to as a P2P payment application.\n                After processing the request, a webhook will be sent to your URL specified in the Processing Account setup.\n                For more details, refer to the [`P2P`](#webhooks--p2p) webhook.\n                In some cases, a 3DS authentication procedure is required to successfully complete such an action.\n                For more details, please refer to [`3DS required`](#webhooks--3ds-authentication-required).",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/P2p"
                            }
                        }
                    }
                },
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseSuccess"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseError"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseUnauthorized"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseForbidden"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/cancel": {
            "post": {
                "tags": [
                    "Cancel"
                ],
                "summary": "",
                "operationId": "postcancel",
                "requestBody": {
                    "description": "To release the authorized amount reserved on the cardholder's account, make a Cancel transaction by providing the transaction ID of the initial\n                    [`Authorize`](#actions--authorize) or [`Pre Authorize`](#actions--pre-authorize) request.\n                    You can also perform multiple cancellations for authorizations with partial amounts.\n                    After processing the request, a webhook will be sent to your URL specified in the Processing Account setup.\n                     For more details, refer to the [`Cancel`](#webhooks--authorize--registeredcanceladdress) webhook.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Cancel"
                            }
                        }
                    }
                },
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseSuccess"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseError"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseUnauthorized"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseForbidden"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/cancel-recurring": {
            "post": {
                "tags": [
                    "Cancel recurring"
                ],
                "summary": "",
                "operationId": "postcancel-recurring",
                "requestBody": {
                    "description": "To cancel a recurring transaction which was initiated with the\n                    [`Authorize`](#actions--authorize) or [`Sale`](#actions--sale) request,\n                    make the Cancel Recurring request by providing the initial transaction ID of a previous [`Authorize`](#actions--authorize) or [`Sale`](#actions--sale) request.\n                    After processing the request, a webhook will be sent to your URL specified in the Processing Account setup.\n                    For more details, refer to the [`Cancel recurring`](#webhooks--authorize--registeredcancelrecurringaddress) webhook.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CancelRecurring"
                            }
                        }
                    }
                },
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseSuccess"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseError"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseUnauthorized"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseForbidden"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/capture": {
            "post": {
                "tags": [
                    "Capture"
                ],
                "summary": "",
                "operationId": "postcapture",
                "requestBody": {
                    "description": "To charge the authorized amount reserved on the cardholder's account,\n                    make a Capture transaction by providing the transaction ID created with a previous [`Authorize`](#actions--authorize) or [`Pre authorize`](#actions--pre-authorize) request.\n                    Upon successful Capture, funds are transferred from the cardholder to the merchant. You can charge the specified amount either partially or fully.\n                    After processing the request, a webhook will be sent to your URL specified in the Processing Account setup.\n                    For more details, refer to the [`Capture`](#webhooks--authorize--registeredcaptureaddress) webhook.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Capture"
                            }
                        }
                    }
                },
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseSuccess"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseError"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseUnauthorized"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseForbidden"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/incremental-authorize": {
            "post": {
                "tags": [
                    "Incremental authorize"
                ],
                "summary": "",
                "operationId": "postincremental-authorize",
                "requestBody": {
                    "description": "To authorize an additional amount later, make an Incremental authorize transaction.\n                    Upon successful Incremental authorize, additional funds are reserved on the cardholder\\s account, and a transaction is created.\n                    To charge the authorized amount, make a Capture transaction by providing the Pre authorize transaction ID. See [`Capture`](#actions--capture) for details.\n                    After processing the request, a webhook will be sent to your URL specified in the Processing Account setup.\n                    For more details, refer to the [`Incremental authorize`](#webhooks--authorize--registeredincrementalauthorizeaddress) webhook.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/IncrementalAuthorize"
                            }
                        }
                    }
                },
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseSuccess"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseError"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseUnauthorized"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseForbidden"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/refund": {
            "post": {
                "tags": [
                    "Refund"
                ],
                "summary": "",
                "operationId": "postrefund",
                "requestBody": {
                    "description": "To refund up to the amount of the received payment,\n                    make a Refund transaction by providing the transaction ID created with a previous [`Capture`](#actions--capture) or [`Sale`](#actions--sale) request.\n                    After processing the request, a webhook will be sent to your URL specified in the Processing Account setup.\n                    For more details, refer to the [`Refund`](#webhooks--authorize--registeredrefundaddress) webhook.",
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Refund"
                            }
                        }
                    }
                },
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseSuccess"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseError"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseUnauthorized"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/responseForbidden"
                         

# --- truncated at 32 KB (152 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tribe-payments/refs/heads/main/openapi/tribe-payments-trb-cc-api-merchant-api-credit-card-v3.json