/v1/payment_intentsList payment intents
Scope: payments:read
| Parameter | In | Type | Required |
|---|---|---|---|
limit | query | integer | no |
starting_after | query | string | no |
Responses: 200 400 401 403 404 409 422 429
Todos os endpoints, parâmetros e respostas da ExelPay Merchant API.
A referência da API está disponível em inglês.
ExelPay Merchant API · 2026-09-01
https://api.exelpay.com (Production)https://api.sandbox.exelpay.com (Sandbox)/v1/payment_intentsScope: payments:read
| Parameter | In | Type | Required |
|---|---|---|---|
limit | query | integer | no |
starting_after | query | string | no |
Responses: 200 400 401 403 404 409 422 429
/v1/payment_intentsScope: payments:write
| Parameter | In | Type | Required |
|---|---|---|---|
| | no | |
amount_minor | body | integer | string | yes |
currency | body | string | yes |
terminal_id | body | string | yes |
capture_method | body | automatic | manual | no |
merchant_reference | body | string | no |
customer_id | body | string | no |
metadata | body | object | no |
expires_in_seconds | body | integer | no |
Responses: 201 400 401 403 404 409 422 429
/v1/payment_intents/{id}Scope: payments:read
| Parameter | In | Type | Required |
|---|---|---|---|
id | path | string | yes |
Responses: 200 400 401 403 404 409 422 429
/v1/payment_intents/{id}/cancelCancels an intent that holds no money at a provider. While the authorization is UNKNOWN (processing) the cancellation is recorded and a late approval is reversed automatically; the intent reports `canceled` once the reversal is confirmed. Authorized or captured transactions must be voided or refunded instead (409 invalid_state).
Scope: payments:write
| Parameter | In | Type | Required |
|---|---|---|---|
| | no | |
id | path | string | yes |
Responses: 200 400 401 403 404 409 422 429
/v1/payment_intents/{id}/confirmCreates a transaction and runs authorisation synchronously. The response carries the transaction in its resulting state: captured/authorized, declined, failed, requires_action (complete the 3DS challenge) or processing (UNKNOWN: poll or wait for the webhook).
Scope: payments:write
| Parameter | In | Type | Required |
|---|---|---|---|
| | no | |
id | path | string | yes |
payment_method | body | string | yes |
return_url | body | string | no |
surcharge_disclosure | body | object | no |
order | body | object | no |
Responses: 200 400 401 403 404 409 422 429
/v1/payment_intents/{id}/quote_surchargeReturns the surcharge the cardholder would pay with this card on the intent's terminal, or zero with the gate reason. Display it before the pay button and confirm with `surcharge_disclosure` carrying the same amount and text version; a changed quote refuses the confirm with `surcharge_quote_stale`. A read: nothing is persisted.
Scope: payments:read
| Parameter | In | Type | Required |
|---|---|---|---|
id | path | string | yes |
payment_method | query | string | yes |
Responses: 200 400 401 403 404 409 422 429
/v1/transactionsScope: payments:read
| Parameter | In | Type | Required |
|---|---|---|---|
limit | query | integer | no |
starting_after | query | string | no |
Responses: 200 400 401 403 404 409 422 429
/v1/transactions/{id}Scope: payments:read
| Parameter | In | Type | Required |
|---|---|---|---|
id | path | string | yes |
Responses: 200 400 401 403 404 409 422 429
/v1/transactions/{id}/historyScope: payments:read
| Parameter | In | Type | Required |
|---|---|---|---|
id | path | string | yes |
Responses: 200 400 401 403 404 409 422 429
/v1/transactions/{id}/routingScope: payments:read
| Parameter | In | Type | Required |
|---|---|---|---|
id | path | string | yes |
Responses: 200 400 401 403 404 409 422 429
/v1/transactions/{id}/pricingWhat the transaction was priced with at its first routing decision (FX quote, markup, provider amount, fee estimate) and what was booked on each capture and refund. Immutable: later schedule changes never alter it.
Scope: payments:read
| Parameter | In | Type | Required |
|---|---|---|---|
id | path | string | yes |
Responses: 200 400 401 403 404 409 422 429
/v1/transactions/{id}/captureScope: payments:write
| Parameter | In | Type | Required |
|---|---|---|---|
| | no | |
id | path | string | yes |
amount_minor | body | integer | string | no |
final | body | boolean | no |
Responses: 200 400 401 403 404 409 422 429
/v1/transactions/{id}/voidScope: payments:write
| Parameter | In | Type | Required |
|---|---|---|---|
| | no | |
id | path | string | yes |
reason | body | string | no |
Responses: 200 400 401 403 404 409 422 429
/v1/transactions/{id}/refundScope: refunds:write
| Parameter | In | Type | Required |
|---|---|---|---|
| | no | |
id | path | string | yes |
amount_minor | body | integer | string | no |
reason | body | string | no |
Responses: 200 400 401 403 404 409 422 429
/v1/refunds/{id}Scope: payments:read
| Parameter | In | Type | Required |
|---|---|---|---|
id | path | string | yes |
Responses: 200 400 401 403 404 409 422 429
/v1/customersScope: customers:write
| Parameter | In | Type | Required |
|---|---|---|---|
| | no | |
reference | body | string | no |
Responses: 201 400 401 403 404 409 422 429
Routes that receive card data. Served by the Vault (CDE) under the same hostname; the raw-PAN payment route additionally requires the terminal's raw-PAN channel to be enabled by ExelPay after PCI evidence review (ADR-0014 §5). Hosted fields remain the default integration.
/v1/tokensAuthenticated with a publishable key (`ExelPay-Publishable-Key` header) from an allowed browser origin. Returns a token and the payment method registered for the account; the number is encrypted in the Vault and never returned. Test publishable keys accept published test cards only.
Scope: tokens:write
| Parameter | In | Type | Required |
|---|---|---|---|
| | no | |
card | body | object | yes |
customer_id | body | string | no |
Responses: 201 400 401 403 404 409 422 429
/v1/paymentsServer-to-server payment with the card in the request body. Available only on terminals whose raw-PAN channel ExelPay has enabled (merchants using it are in PCI DSS SAQ D scope, ADR-0014). The Vault tokenizes the card and the platform runs the same pipeline as `POST /v1/payment_intents` + `confirm`; the response carries the transaction plus the token to reuse. A retry with the same Idempotency-Key reuses the minted token and replays the answer.
Scope: payments:write
| Parameter | In | Type | Required |
|---|---|---|---|
| | no | |
amount_minor | body | integer | string | yes |
currency | body | string | yes |
terminal_id | body | string | yes |
capture_method | body | automatic | manual | no |
merchant_reference | body | string | no |
customer_id | body | string | no |
metadata | body | object | no |
return_url | body | string | no |
card | body | object | yes |
Responses: 201 400 401 403 404 409 422 429
/v1/test/payment_methodsAvailable to test-environment credentials only. Rejects any number that is not a provider-published test card; the number is never stored or echoed.
Scope: payments:write
| Parameter | In | Type | Required |
|---|---|---|---|
| | no | |
card | body | object | yes |
customer_id | body | string | no |
Responses: 201 400 401 403 404 409 422 429
/v1/test/transactions/{id}/complete_three_dsScope: payments:write
| Parameter | In | Type | Required |
|---|---|---|---|
| | no | |
id | path | string | yes |
Responses: 200 400 401 403 404 409 422 429
/v1/transactions/{id}/chargebacksScope: payments:read
| Parameter | In | Type | Required |
|---|---|---|---|
id | path | string | yes |
Responses: 200 400 401 403 404 409 422 429
/v1/chargebacks/{id}Scope: payments:read
| Parameter | In | Type | Required |
|---|---|---|---|
id | path | string | yes |
Responses: 200 400 401 403 404 409 422 429
/v1/chargebacks/{id}/acceptCloses the dispute as CLOSED_ACCEPTED; the debit already posted stays. Only RECEIVED chargebacks can be accepted.
Scope: disputes:write
| Parameter | In | Type | Required |
|---|---|---|---|
| | no | |
id | path | string | yes |
reason | body | string | no |
Responses: 200 400 401 403 404 409 422 429
/v1/chargebacks/{id}/evidenceRecords the merchant's representment before `due_at` (stage becomes REPRESENTED). Evidence is a list of document references (object-storage keys, ids, URLs); never upload documents or cardholder data here. Until a connector exposes dispute submission the representment is recorded for manual submission.
Scope: disputes:write
| Parameter | In | Type | Required |
|---|---|---|---|
| | no | |
id | path | string | yes |
evidence | body | object[] | yes |
note | body | string | no |
Responses: 200 400 401 403 404 409 422 429
/v1/webhook_eventsScope: webhooks:read
| Parameter | In | Type | Required |
|---|---|---|---|
type | query | string | no |
after | query | string | no |
limit | query | integer | no |
Responses: 200 400 401 403 404 409 422 429
/v1/webhook_events/{id}Scope: webhooks:read
| Parameter | In | Type | Required |
|---|---|---|---|
id | path | string | yes |
Responses: 200 400 401 403 404 409 422 429