# Make a Payment

**Payment API - Make Payments -** **API specifications** by tokenizing card or check bank data, or by inputting card or check bank data, or create a recurring contract, and processing a payment with details operations and response formats.&#x20;

**API Overview:**

* **API Version:** v1
* **Endpoints:** [`/api/tokenize`](/welcome-to-our-payment-api/api-references/test-payment-api-features/tokenization.md#post-api-tokenize) or [`/api/tokenizeAch`](/welcome-to-our-payment-api/api-references/test-payment-api-features/tokenization.md#post-api-tokenizeach) or [`/api/paymentToken`](/welcome-to-our-payment-api/api-references/test-payment-api-features/each-api-reference-specifics/payments.md#post-api-paymenttoken) or [`/api/recurringProfile`](/welcome-to-our-payment-api/api-references/test-payment-api-features/each-api-reference-specifics/recurring-contracts.md#post-api-recurringprofile) or [`/api/paymentAch`](/welcome-to-our-payment-api/api-references/test-payment-api-features/each-api-reference-specifics/payments.md#post-api-paymentach) or [`/api/payment`](/welcome-to-our-payment-api/api-references/test-payment-api-features/payment.md#post-api-payment) &#x20;
* **Method:** POST
* **Purpose:** Facilitates payment transactions.

**Key Parameters for Payment:**

* **Optional Parameters:**
  * **CharityId**, **ProcessorGuid**: Identifiers for the charity organization and processor.
    * Search for your Charity here: [Search for a Charity for your Donation](/welcome-to-our-payment-api/api-references/search-for-a-charity-for-your-donation.md)
    * ProcessorGuid will be provided by FrontStream.
  * **Card details**: Credit card number, type, expiration date, CVV, and name on card (optional).
  * **Billing and Shipping details**: Address, email, city, state, zip, etc.
  * **Transaction and Fee Details**: Includes transaction amounts, tip, commission rate overrides, and fees.
* **Required Parameters:**
  * **Email**, **IpAddress**, **NameOnCard**, **Transactions** (mandatory for each payment).

**Response Details:**

* A successful transaction will return information including:
  * **Successful**: A boolean indicating if the payment was successful.
  * **Message**: General response message.
  * **TransactionId**: Unique identifier for the transaction.
  * **PaymentGuid**: Unique payment GUID.
  * **Transaction Status**: Indicates if the payment is successful, pending, or failed.
  * **Fees**: Transaction-related fee details.

**Schemas:**

* The API uses several schemas to define the request and response structures, such as:
  * **PaymentRequest**: Defines the required fields for initiating a payment.
  * **PaymentResponse**: Defines the expected response structure, including success flags, messages, transaction IDs, and fees.
  * **FeeResponse**: Details the various fees, including card processing and commission rates.
  * **BrokenRule**: Used for error handling, containing error codes and messages.

**Transaction Breakdown:**

* Multiple transaction items can be submitted in a single payment request, each with its own fee, amount, and type (e.g., donation fee, peer-to-peer fee, ticket fee).

**Payment Method Types:**

* Supported payment methods include credit cards (AMEX, Visa, Mastercard, etc.), Google Pay, Apple Pay, ACH, and Stripe.

**Error Handling:**

* **400 (Bad Request)**: If payment creation fails, an array of errors is returned detailing why the request failed.

This API is designed to handle complex payments with options for fee coverage, transaction splitting, and integration with external systems (e.g., ticketing or donation platforms).

### Payment Example

See how to make a Payment here:

{% content-ref url="/pages/2GwjMbuPyTm2n5fnpv6S" %}
[Payment](/welcome-to-our-payment-api/api-references/test-payment-api-features/payment.md)
{% endcontent-ref %}

### Also Make Payments by Tokens

See how to tokenize card and bank data and use created tokens to make payments here:

{% content-ref url="/pages/64usJLEpxXWiahIQ83vE" %}
[Tokenization](/welcome-to-our-payment-api/api-references/test-payment-api-features/tokenization.md)
{% endcontent-ref %}

### Interested in creating Recurring Payments?

We also support creating, updating, and processing Recurring Contracts supporting your billing frequency needs. Our webhook notifications if configured will also notify when contracts are processed. Please see further details here:

{% content-ref url="/pages/e888bb0f44675dc3392898d81f6682a1b8cd7aa8" %}
[Recurring Contracts](/welcome-to-our-payment-api/api-references/test-payment-api-features/each-api-reference-specifics/recurring-contracts.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.frontstream.com/welcome-to-our-payment-api/api-references/make-a-payment.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
