> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.mercoa.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.mercoa.com/_mcp/server.

# Get

GET https://api.mercoa.com/paymentMethod/schema/{schemaId}

Get custom payment method schema

Reference: https://docs.mercoa.com/embedded-ap-ar/api-reference/custom-payment-method-schema/get

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Request

### Path parameters

- `schemaId` (string, required)

## Response

### 200

- `id` (string, required)
- `name` (string, required)
- `isSource` (boolean, required) — This payment method can be used as a payment source for an invoice
- `isDestination` (boolean, required) — This payment method can be used as a payment destination for an invoice
- `supportedCurrencies` (list of enum, required) — List of currencies that this payment method supports.
  - Allowed values: `AED`, `AFN`, `ALL`, `AMD`, `ANG`, `AOA`, `ARS`, `AUD`, `AWG`, `AZN`, `BAM`, `BBD`, `BDT`, `BGN`, `BHD`, `BIF`, `BMD`, `BND`, `BOB`, `BOV`, `BRL`, `BSD`, `BTN`, `BWP`, `BYN`, `BZD`, `CAD`, `CDF`, `CHE`, `CHF`, `CHW`, `CLF`, `CLP`, `COP`, `COU`, `CRC`, `CUC`, `CUP`, `CVE`, `CZK`, `DJF`, `DKK`, `DOP`, `DZD`, `EGP`, `ERN`, `ETB`, `EUR`, `FJD`, `FKP`, `GBP`, `GEL`, `GHS`, `GIP`, `GMD`, `GNF`, `GTQ`, `GYD`, `HKD`, `HNL`, `HTG`, `HUF`, `IDR`, `ILS`, `INR`, `IQD`, `IRR`, `ISK`, `JMD`, `JOD`, `JPY`, `KES`, `KGS`, `KHR`, `KMF`, `KPW`, `KRW`, `KWD`, `KYD`, `KZT`, `LAK`, `LBP`, `LKR`, `LRD`, `LSL`, `LYD`, `MAD`, `MDL`, `MGA`, `MKD`, `MMK`, `MNT`, `MOP`, `MRU`, `MUR`, `MVR`, `MWK`, `MXN`, `MXV`, `MYR`, `MZN`, `NAD`, `NGN`, `NIO`, `NOK`, `NPR`, `NZD`, `OMR`, `PAB`, `PEN`, `PGK`, `PHP`, `PKR`, `PLN`, `PYG`, `QAR`, `RON`, `RSD`, `CNY`, `RUB`, `RWF`, `SAR`, `SBD`, `SCR`, `SDG`, `SEK`, `SGD`, `SHP`, `SLE`, `SLL`, `SOS`, `SRD`, `SSP`, `STN`, `SVC`, `SYP`, `SZL`, `THB`, `TJS`, `TMT`, `TND`, `TOP`, `TRY`, `TTD`, `TWD`, `TZS`, `UAH`, `UGX`, `USD`, `USN`, `UYI`, `UYU`, `UYW`, `UZS`, `VED`, `VES`, `VND`, `VUV`, `WST`, `XAF`, `XAG`, `XAU`, `XBA`, `XBB`, `XBC`, `XBD`, `XCD`, `XDR`, `XOF`, `XPD`, `XPF`, `XPT`, `XSU`, `XTS`, `XUA`, `XXX`, `YER`, `ZAR`, `ZMW`, `ZWL`
- `fields` (list of object, required)
  - `name` (string, required)
  - `type` (enum, required)
    - Allowed values: `text`, `number`, `select`, `date`, `phone`, `email`, `url`, `dynamicUrl`, `embeddedUrl`, `address`, `usBankRoutingNumber`, `usBankAccountNumber`
  - `optional` (boolean, required) — Indicates whether this field is optional
  - `displayName` (string, optional)
  - `useAsAccountName` (boolean, optional) — Indicates whether this field should be used as the name of the payment method. Only one field can be used as the name. Will set the accountName field of the payment method to the value of this field.
  - `useAsAccountNumber` (boolean, optional) — Indicates whether this field should be used as the account number of the payment method. Only one field can be used as the account number. Will set the accountNumber field of the payment method to the value of this field.
  - `options` (list of string, optional) — When type is 'select', provide options that can be selected
- `estimatedProcessingTime` (integer, required) — Estimated time in days for this payment method to process a payments. 0 is an same-day payment methods, -1 is unknown processing time.
- `createdAt` (datetime, required)
- `updatedAt` (datetime, required)
- `maxAmount` (double, optional) — The maximum amount that can be transferred from this payment method in a single transaction.
- `minAmount` (double, optional) — The minimum amount that can be transferred from this payment method in a single transaction. Default is 1.

## Errors

### 400 Bad Request

- `errorName` ("BadRequest", required)
- `content` (string, required)

### 401 Unauthorized

- `errorName` ("Unauthorized", required)
- `content` (string, required)

### 403 Forbidden

- `errorName` ("Forbidden", required)
- `content` (string, required)

### 404 Not Found

- `errorName` ("NotFound", required)
- `content` (string, required)

### 409 Conflict

- `errorName` ("Conflict", required)
- `content` (string, required)

### 500 Internal Server Error

- `errorName` ("InternalServerError", required)
- `content` (string, required)

### 501 Unimplemented

- `errorName` ("Unimplemented", required)
- `content` (string, required)

## Examples

**Response**

```json
{
  "id": "cpms_14f78dcd-4614-426e-a37a-7af262431d41",
  "name": "Check",
  "isSource": false,
  "isDestination": true,
  "supportedCurrencies": [
    "USD"
  ],
  "fields": [
    {
      "name": "payToTheOrderOf",
      "type": "text",
      "optional": false,
      "displayName": "Pay To The Order Of"
    },
    {
      "name": "accountNumber",
      "type": "usBankAccountNumber",
      "optional": false,
      "displayName": "Account Number",
      "useAsAccountNumber": true
    },
    {
      "name": "routingNumber",
      "type": "usBankRoutingNumber",
      "optional": false,
      "displayName": "Routing Number"
    },
    {
      "name": "address",
      "type": "address",
      "optional": false,
      "displayName": "Address"
    }
  ],
  "estimatedProcessingTime": 7,
  "createdAt": "2021-01-01T00:00:00Z",
  "updatedAt": "2021-01-01T00:00:00Z",
  "maxAmount": 50000,
  "minAmount": 1
}
```

**SDK Code**

```python Default
import requests

url = "https://api.mercoa.com/paymentMethod/schema/cpms_14f78dcd-4614-426e-a37a-7af262431d41"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```typescript Default
import { MercoaClient } from "@mercoa/javascript";

const client = new MercoaClient({ token: "YOUR_TOKEN" });
await client.customPaymentMethodSchema.get("cpms_14f78dcd-4614-426e-a37a-7af262431d41");

```

```go Default
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.mercoa.com/paymentMethod/schema/cpms_14f78dcd-4614-426e-a37a-7af262431d41"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Default
require 'uri'
require 'net/http'

url = URI("https://api.mercoa.com/paymentMethod/schema/cpms_14f78dcd-4614-426e-a37a-7af262431d41")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Default
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.mercoa.com/paymentMethod/schema/cpms_14f78dcd-4614-426e-a37a-7af262431d41")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Default
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.mercoa.com/paymentMethod/schema/cpms_14f78dcd-4614-426e-a37a-7af262431d41', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Default
using RestSharp;

var client = new RestClient("https://api.mercoa.com/paymentMethod/schema/cpms_14f78dcd-4614-426e-a37a-7af262431d41");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Default
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.mercoa.com/paymentMethod/schema/cpms_14f78dcd-4614-426e-a37a-7af262431d41")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```