# Payment Execution API



<Callout>
  The following endpoints are managed by the dedicated Payment Execution service in order to facilitate [PCI-Compliance ](https://listings.pcisecuritystandards.org/assessors_and_solutions/vpa_agreement). Please review Socotra's [PCI Compliance Statement](/features/security/pci-compliance-statement) for more information.
</Callout>

<EndpointIndex
  names={[
  	'fetchPaymentProviderConfigurations',
  	'fetchPaymentProviderConfiguration',
  	'addPaymentProviderConfiguration',
  	'updatePaymentProviderConfiguration',
  	'inactivatePaymentProviderConfiguration',
  	'fetchPaymentExecutionConfigurationForFinancialInstrument',
  	'addPaymentExecutionConfigurationForFinancialInstrument',
  	'updatePaymentExecutionConfigurationForFinancialInstrument',
  ]}
/>

Providers [#providers]

Fetch Payment Provider Configurations [#fetch-payment-provider-configurations]

<ApiEndpoint name="fetchPaymentProviderConfigurations" />

<ApiSchema name="ListPageResponsePaymentProvider" />

Fetch Payment Provider Configuration [#fetch-payment-provider-configuration]

<ApiEndpoint name="fetchPaymentProviderConfiguration" />

Add Payment Provider Configuration [#add-payment-provider-configuration]

<ApiEndpoint name="addPaymentProviderConfiguration" />

Update Payment Provider Configuration [#update-payment-provider-configuration]

<ApiEndpoint name="updatePaymentProviderConfiguration" />

<ApiSchema name="BraintreeConfigurationRequest" />

<ApiSchema name="StripeConfigurationRequest" />

Inactivate Payment Provider Configuration [#inactivate-payment-provider-configuration]

<ApiEndpoint name="inactivatePaymentProviderConfiguration" />

<ApiSchema name="PaymentProvider" />

Financial Instruments [#financial-instruments]

Fetch Payment Execution Configuration For Financial Instrument [#fetch-payment-execution-configuration-for-financial-instrument]

<ApiEndpoint name="fetchPaymentExecutionConfigurationForFinancialInstrument" />

Add Payment Execution Configuration For Financial Instrument [#add-payment-execution-configuration-for-financial-instrument]

<ApiEndpoint name="addPaymentExecutionConfigurationForFinancialInstrument" />

Update Payment Execution Configuration For Financial Instrument [#update-payment-execution-configuration-for-financial-instrument]

<ApiEndpoint name="updatePaymentExecutionConfigurationForFinancialInstrument" />

<ApiSchema name="FinancialInstrumentConfigurationRequest" />

<ApiSchema name="FinancialInstrumentConfigurationResponse" />

See Also [#see-also]

* [Payments API](./payments)
* [Payment Execution Service](/features/billing/payment-execution-service)
* [Autopay](/features/billing/autopay)


## API Reference

GET /payment-execution/{tenantLocator}/paymentProviders/list — fetchPaymentProviderConfigurations
Tags: payment-provider-controller
Permissions: list
Parameters:
  tenantLocator (uuid, path, required)
  paymentServiceProvider (Enum braintree | braintreeSandbox | stripe | stripeTest, query)
  offset (integer, query)
  count (integer, query)
Responses:
  200 — OK

GET /payment-execution/{tenantLocator}/paymentProviders/{locator} — fetchPaymentProviderConfiguration
Tags: payment-provider-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
Responses:
  200 — OK

POST /payment-execution/{tenantLocator}/paymentProviders — addPaymentProviderConfiguration
Tags: payment-provider-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
Request body (oneOf<BraintreeConfigurationRequest,StripeConfigurationRequest>):
Responses:
  200 — OK

PATCH /payment-execution/{tenantLocator}/paymentProviders/{locator} — updatePaymentProviderConfiguration
Tags: payment-provider-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
Request body (oneOf<BraintreeConfigurationRequest,StripeConfigurationRequest>):
Responses:
  200 — OK

PATCH /payment-execution/{tenantLocator}/paymentProviders/{locator}/inactivate — inactivatePaymentProviderConfiguration
Tags: payment-provider-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
Responses:
  200 — OK

GET /payment-execution/{tenantLocator}/financialInstruments/{financialInstrumentLocator} — fetchPaymentExecutionConfigurationForFinancialInstrument
Tags: financial-instruments-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  financialInstrumentLocator (ulid, path, required)
Responses:
  200 — OK

POST /payment-execution/{tenantLocator}/financialInstruments/{financialInstrumentLocator} — addPaymentExecutionConfigurationForFinancialInstrument
Tags: financial-instruments-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  financialInstrumentLocator (ulid, path, required)
Request body (FinancialInstrumentConfigurationRequest):
Responses:
  200 — OK

PATCH /payment-execution/{tenantLocator}/financialInstruments/{financialInstrumentLocator} — updatePaymentExecutionConfigurationForFinancialInstrument
Tags: financial-instruments-controller
Permissions: write
Parameters:
  tenantLocator (uuid, path, required)
  financialInstrumentLocator (ulid, path, required)
Request body (FinancialInstrumentConfigurationRequest):
Responses:
  200 — OK

ListPageResponsePaymentProvider
Properties:
  listCompleted (boolean, required)
  items (PaymentProvider[], required)

BraintreeConfigurationRequest
Properties:
  paymentServiceProvider (Enum braintree | braintreeSandbox | stripe | stripeTest, required)
  paymentProviderState (Enum active | inactive, required)
  merchantId (string, required)
  publicKey (string, required)
  privateKey (string, required)

StripeConfigurationRequest
Properties:
  paymentServiceProvider (Enum braintree | braintreeSandbox | stripe | stripeTest, required)
  paymentProviderState (Enum active | inactive, required)
  secretKey (string, required)

PaymentProvider
Properties:
  locator (ulid, required)
  paymentServiceProvider (Enum braintree | braintreeSandbox | stripe | stripeTest, required)
  paymentProviderState (Enum active | inactive, required)

FinancialInstrumentConfigurationRequest
Properties:
  paymentProviderLocator (ulid, required)
  offlinePaymentToken (string, required)
  externalAccountNumber (string)

FinancialInstrumentConfigurationResponse
Properties:
  paymentInstrumentLocator (ulid, required)
  paymentProviderLocator (ulid, required)
  externalAccountNumber (string)