### GET /v1/products/search Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Search products by various criteria ```markdown ### Parameters - **name** (string, query, optional): Filter by product name - **active** (boolean, query, optional): Filter by active status - **shippable** (boolean, query, optional): Filter by shippable status - **page** (integer, query, optional): Page number for pagination - **per_page** (integer, query, optional): Number of items per page (max 100) ### Responses #### 200 - Successful search response Empty response body #### 401 - Unauthorized Unauthorized ### Example Usage ```bash curl -X GET "https://api.framepayments.com/v1/products/search?name=string&active=true&shippable=true&page=0&per_page=0" ``` ``` -------------------------------- ### GET /v1/customers/search Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Search customers by various criteria ```markdown ### Parameters - **q** (string, query, optional): Search query (email, name, phone) - **email** (string, query, optional): Filter by email address - **created_after** (string, query, optional): Filter customers created after this date - **page** (integer, query, optional): Page number for pagination - **per_page** (integer, query, optional): Number of items per page (max 100) ### Responses #### 200 - Successful search response Empty response body #### 401 - Unauthorized Unauthorized ### Example Usage ```bash curl -X GET "https://api.framepayments.com/v1/customers/search?q=string&email=string&created_after=string&page=0&per_page=0" ``` ``` -------------------------------- ### GET /v1/products/{id} Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Retrieve a specific product by ID ```markdown ### Parameters - **id** (string, path, required): Product ID ### Responses #### 200 - Successful response Empty response body #### 401 - Unauthorized Unauthorized #### 404 - Product not found Product not found ### Example Usage ```bash curl -X GET "https://api.framepayments.com/v1/products/{id}" ``` ``` -------------------------------- ### GET /v1/subscriptions/search Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Search subscriptions by various criteria ```markdown ### Parameters - **customer** (string, query, optional): Filter by customer ID - **status** (string, query, optional): Filter by subscription status: * `active` * `cancelled` * `past_due` - **page** (integer, query, optional): Page number for pagination - **per_page** (integer, query, optional): Number of items per page (max 100) ### Responses #### 200 - Successful search response Empty response body #### 401 - Unauthorized Unauthorized ### Example Usage ```bash curl -X GET "https://api.framepayments.com/v1/subscriptions/search?customer=string&status=string&page=0&per_page=0" ``` ``` -------------------------------- ### GET /v1/products Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Retrieve a paginated list of products for the authenticated merchant ```markdown ### Parameters - **page** (integer, query, optional): Page number for pagination - **per_page** (integer, query, optional): Number of items per page (max 100) ### Responses #### 200 - Successful response Empty response body #### 401 - Unauthorized Unauthorized ### Example Usage ```bash curl -X GET "https://api.framepayments.com/v1/products?page=0&per_page=0" ``` ``` -------------------------------- ### GET /v1/customers Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Retrieve a paginated list of customers for the authenticated merchant ```markdown ### Parameters - **page** (integer, query, optional): Page number for pagination - **per_page** (integer, query, optional): Number of items per page (max 100) - **email** (string, query, optional): Filter by customer email ### Responses #### 200 - Successful response Empty response body #### 401 - Unauthorized Unauthorized ### Example Usage ```bash curl -X GET "https://api.framepayments.com/v1/customers?page=0&per_page=0&email=string" ``` ``` -------------------------------- ### GET /v1/payment_methods Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Retrieve a paginated list of payment methods for the authenticated merchant ```markdown ### Parameters - **page** (integer, query, optional): Page number for pagination - **per_page** (integer, query, optional): Number of items per page (max 100) ### Responses #### 200 - Successful response Empty response body #### 401 - Unauthorized Unauthorized ### Example Usage ```bash curl -X GET "https://api.framepayments.com/v1/payment_methods?page=0&per_page=0" ``` ``` -------------------------------- ### GET /v1/subscriptions Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Retrieve a paginated list of subscriptions for the authenticated merchant ```markdown ### Parameters - **page** (integer, query, optional): Page number for pagination - **per_page** (integer, query, optional): Number of items per page (max 100) ### Responses #### 200 - Successful response Empty response body #### 401 - Unauthorized Unauthorized ### Example Usage ```bash curl -X GET "https://api.framepayments.com/v1/subscriptions?page=0&per_page=0" ``` ``` -------------------------------- ### GET /v1/charge_intents Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Retrieve a paginated list of charge intents for the authenticated merchant ```markdown ### Parameters - **page** (integer, query, optional): Page number for pagination - **per_page** (integer, query, optional): Number of items per page (max 100) ### Responses #### 200 - Successful response Empty response body #### 401 - Unauthorized Unauthorized ### Example Usage ```bash curl -X GET "https://api.framepayments.com/v1/charge_intents?page=0&per_page=0" ``` ``` -------------------------------- ### GET /v1/invoices Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Retrieve a paginated list of invoices for the authenticated merchant ```markdown ### Parameters - **page** (integer, query, optional): Page number for pagination - **per_page** (integer, query, optional): Number of items per page (max 100) ### Responses #### 200 - Successful response Empty response body #### 401 - Unauthorized Unauthorized ### Example Usage ```bash curl -X GET "https://api.framepayments.com/v1/invoices?page=0&per_page=0" ``` ``` -------------------------------- ### GET /v1/customers/{id} Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Retrieve a specific customer by ID ```markdown ### Parameters - **id** (string, path, required): Customer ID ### Responses #### 200 - Successful response Empty response body #### 401 - Unauthorized Unauthorized #### 404 - Customer not found Customer not found ### Example Usage ```bash curl -X GET "https://api.framepayments.com/v1/customers/{id}" ``` ``` -------------------------------- ### GET /v1/invoices/{id} Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Retrieve a specific invoice by ID ```markdown ### Parameters - **id** (string, path, required): Invoice ID ### Responses #### 200 - Successful response Empty response body #### 401 - Unauthorized Unauthorized #### 404 - Invoice not found Invoice not found ### Example Usage ```bash curl -X GET "https://api.framepayments.com/v1/invoices/{id}" ``` ``` -------------------------------- ### GET /v1/subscriptions/{id} Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Retrieve a specific subscription by ID ```markdown ### Parameters - **id** (string, path, required): Subscription ID ### Responses #### 200 - Successful response Empty response body #### 401 - Unauthorized Unauthorized #### 404 - Subscription not found Subscription not found ### Example Usage ```bash curl -X GET "https://api.framepayments.com/v1/subscriptions/{id}" ``` ``` -------------------------------- ### GET /v1/payment_methods/{id} Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Retrieve a specific payment method by ID ```markdown ### Parameters - **id** (string, path, required): Payment method ID ### Responses #### 200 - Successful response Empty response body #### 401 - Unauthorized Unauthorized #### 404 - Payment method not found Payment method not found ### Example Usage ```bash curl -X GET "https://api.framepayments.com/v1/payment_methods/{id}" ``` ``` -------------------------------- ### GET /v1/charge_intents/{id} Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Retrieve a specific charge intent by ID ```markdown ### Parameters - **id** (string, path, required): Charge intent ID ### Responses #### 200 - Successful response Empty response body #### 401 - Unauthorized Unauthorized #### 404 - Charge intent not found Charge intent not found ### Example Usage ```bash curl -X GET "https://api.framepayments.com/v1/charge_intents/{id}" ``` ``` -------------------------------- ### POST /v1/products Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Create a new product for the authenticated merchant ```markdown ### Request Body **Content-Type:** application/json - **name** (string) (required): Product name - **description** (string): Product description - **default_price** (integer): Default price in cents - **purchase_type** (string (one_time|recurring)): Purchase type ("one_time"|"recurring") - **shippable** (boolean): Whether the product requires shipping - **url** (string): Product URL - **recurring_interval** (string (month|year)): Recurring interval for recurring products ("month"|"year") - **billing_credits** (integer): Billing credits for the product - **metadata** (object): Additional custom metadata for the product ### Responses #### 201 - Product created successfully **Product** - **id** (string) (required): Unique identifier for the product - **name** (string) (required): Product name - **description** (string): Product description - **object** (string) (required): Object type identifier - **created** (integer) (required): Unix timestamp of creation - **updated** (integer): Unix timestamp of last update - **livemode** (boolean) (required): Whether this is a live mode product - **active** (boolean): Whether the product is active - **metadata** (object): Additional metadata #### 400 - Bad request - validation errors **Error** - **type** (string) (required): Error type - **message** (string) (required): Human-readable error message - **data** (object): Additional error data #### 401 - Unauthorized **AuthError** - **status** (integer) (required): HTTP status code - **error** (string) (required): Error message ### Example Usage ```bash curl -X POST "https://api.framepayments.com/v1/products" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "description": "string", "default_price": "0", "purchase_type": "one_time", "shippable": "true", "url": "string", "recurring_interval": "month", "billing_credits": "0", "metadata": "value" }' ``` ``` -------------------------------- ### Schema: Product Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Schema definition for Product ```markdown ## Schema: Product Schema definition for Product **Type:** object - **id** (string) (required): Unique identifier for the product - **name** (string) (required): Product name - **description** (string): Product description - **object** (string) (required): Object type identifier - **created** (integer) (required): Unix timestamp of creation - **updated** (integer): Unix timestamp of last update - **livemode** (boolean) (required): Whether this is a live mode product - **active** (boolean): Whether the product is active - **metadata** (object): Additional metadata ``` -------------------------------- ### POST /v1/customers Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Create a new customer for the authenticated merchant ```markdown ### Request Body **Content-Type:** application/json - **email** (string (email)) (required): Customer email address - **name** (string): Customer full name - **phone** (string): Customer phone number - **metadata** (object): Additional custom metadata for the customer ### Responses #### 200 - Customer created successfully **Customer** - **id** (string) (required): Unique identifier for the customer - **email** (string (email)) (required): Customer email address - **name** (string): Customer full name - **phone** (string): Customer phone number - **created_at** (string (date-time)) - **updated_at** (string (date-time)) #### 400 - Bad request - validation errors **Error** - **type** (string) (required): Error type - **message** (string) (required): Human-readable error message - **data** (object): Additional error data #### 401 - Unauthorized **AuthError** - **status** (integer) (required): HTTP status code - **error** (string) (required): Error message ### Example Usage ```bash curl -X POST "https://api.framepayments.com/v1/customers" \ -H "Content-Type: application/json" \ -d '{ "email": "user@example.com", "name": "string", "phone": "string", "metadata": "value" }' ``` ``` -------------------------------- ### API Overview: Frame Payments Public API Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml External-facing API endpoints for Frame Payments merchant integration ```yaml # Frame Payments Public API # Version: v1 External-facing API endpoints for Frame Payments merchant integration # Base URL: https://api.framepayments.com ``` -------------------------------- ### Security: PublishableKey Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Use your publishable API key (pk_live_... or pk_test_...) ```markdown ## Security: PublishableKey **Description:** Use your publishable API key (pk_live_... or pk_test_...) **Type:** http **Scheme:** bearer **Bearer Format:** JWT ``` -------------------------------- ### POST /v1/subscriptions Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Create a new subscription for the authenticated merchant ```markdown ### Parameters - **customer** (string, query, required): Customer ID - **payment_method** (string, query, required): Payment method ID - **product** (string, query, required): Product ID - **default_payment_method** (string, query, required): Default payment method ID - **currency** (string, query, required): Currency code - **billing_interval** (string, query, optional): Billing interval: * `month` * `year` - **trial_period_days** (integer, query, optional): Trial period in days - **metadata** (string, query, optional): JSON string of additional custom metadata ### Responses #### 200 - Subscription created successfully **Subscription** - **id** (string) (required): Unique identifier for the subscription - **object** (string) (required): Object type identifier - **customer** (string) (required): ID of the customer - **status** (string) (required): Current status of the subscription - **created** (integer) (required): Unix timestamp of creation - **updated** (integer): Unix timestamp of last update - **livemode** (boolean) (required): Whether this is a live mode subscription - **current_period_start** (integer): Start of current billing period - **current_period_end** (integer): End of current billing period - **metadata** (object): Additional metadata #### 400 - Bad request - validation errors **Error** - **type** (string) (required): Error type - **message** (string) (required): Human-readable error message - **data** (object): Additional error data #### 401 - Unauthorized **AuthError** - **status** (integer) (required): HTTP status code - **error** (string) (required): Error message ### Example Usage ```bash curl -X POST "https://api.framepayments.com/v1/subscriptions?customer=string&payment_method=string&product=string&default_payment_method=string¤cy=string&billing_interval=string&trial_period_days=0&metadata=string" ``` ``` -------------------------------- ### POST /v1/invoices/{id}/issue Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Issue an invoice to make it ready for payment ```markdown ### Parameters - **id** (string, path, required): Invoice ID ### Responses #### 200 - Invoice finalized successfully Empty response body #### 400 - Bad request Bad request #### 401 - Unauthorized Unauthorized #### 404 - Invoice not found Invoice not found ### Example Usage ```bash curl -X POST "https://api.framepayments.com/v1/invoices/{id}/issue" ``` ``` -------------------------------- ### Schema: Customer Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Schema definition for Customer ```markdown ## Schema: Customer Schema definition for Customer **Type:** object - **id** (string) (required): Unique identifier for the customer - **email** (string (email)) (required): Customer email address - **name** (string): Customer full name - **phone** (string): Customer phone number - **created_at** (string (date-time)) - **updated_at** (string (date-time)) ``` -------------------------------- ### Schema: Wallet Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Schema definition for Wallet ```markdown ## Schema: Wallet Schema definition for Wallet **Type:** object - **id** (string) (required): Unique identifier for the wallet - **object** (string) (required): Object type identifier - **balance** (integer) (required): Current balance in cents - **currency** (string) (required): Three-letter ISO currency code - **available_balance** (integer): Available balance in cents - **pending_balance** (integer): Pending balance in cents - **created** (integer) (required): Unix timestamp of creation - **updated** (integer): Unix timestamp of last update - **livemode** (boolean) (required): Whether this is a live mode wallet - **last_transaction_at** (integer): Last transaction timestamp ``` -------------------------------- ### POST /v1/payment_methods Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Create a new payment method for the authenticated merchant ```markdown ### Parameters - **type** (string, query, required): Payment method type: * `card` * `bank_account` - **customer** (string, query, optional): Customer ID to attach this payment method to - **card_number** (string, query, optional): Card number (for card type) - **exp_month** (integer, query, optional): Expiration month (for card type) - **exp_year** (integer, query, optional): Expiration year (for card type) - **cvc** (string, query, optional): Card security code (for card type) - **account_number** (string, query, optional): Bank account number (for bank_account type) - **routing_number** (string, query, optional): Bank routing number (for bank_account type) - **account_type** (string, query, optional): Bank account type ### Responses #### 200 - Payment method created successfully **PaymentMethod** - **id** (string) (required): Unique identifier for the payment method - **object** (string) (required): Object type identifier - **type** (string) (required): Type of payment method - **status** (string) (required): Status of the payment method - **created** (integer) (required): Unix timestamp of creation - **updated** (integer): Unix timestamp of last update - **livemode** (boolean) (required): Whether this is a live mode payment method - **customer_id** (string): Associated customer ID - **card** (object): Card details if card payment method - **brand** (string): Card brand - **last_four** (string): Last four digits - **exp_month** (string): Expiration month - **exp_year** (string): Expiration year - **billing** (object): Billing address #### 401 - Unauthorized **AuthError** - **status** (integer) (required): HTTP status code - **error** (string) (required): Error message #### 422 - Bad request - validation errors - **status** (integer) (required) - **error** (string) (required) - **code** (string) (required) - **error_details** (string) ### Example Usage ```bash curl -X POST "https://api.framepayments.com/v1/payment_methods?type=string&customer=string&card_number=string&exp_month=0&exp_year=0&cvc=string&account_number=string&routing_number=string&account_type=string" ``` ``` -------------------------------- ### POST /v1/invoices Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Create a new invoice for the authenticated merchant ```markdown ### Parameters - **customer** (string, query, required): Customer ID - **collection_method** (string, query, required): How payment is collected - **due_date** (string, query, optional): Invoice due date - **description** (string, query, optional): Invoice description - **currency** (string, query, optional): Currency code (e.g., 'usd') - **net_terms** (integer, query, optional): Payment terms in days - **memo** (string, query, optional): Invoice memo ### Responses #### 201 - Invoice created successfully **Invoice** - **id** (string) (required): Unique identifier for the invoice - **object** (string) (required): Object type identifier - **customer_id** (string): ID of the customer - **amount_due** (integer): Amount due in cents - **amount_paid** (integer): Amount paid in cents - **currency** (string) (required): Three-letter ISO currency code - **status** (string) (required): Current status of the invoice - **created** (integer) (required): Unix timestamp of creation - **updated** (integer) (required): Unix timestamp of last update - **livemode** (boolean) (required): Whether this is a live mode invoice - **due_date** (string (date-time)): Invoice due date in ISO 8601 format - **finalized_at** (integer): When the invoice was finalized - **paid_at** (integer): When the invoice was paid - **metadata** (object) (required): Additional metadata #### 401 - Unauthorized **AuthError** - **status** (integer) (required): HTTP status code - **error** (string) (required): Error message #### 422 - Unprocessable Entity - validation errors **NotFoundError** - **status** (integer) (required): HTTP status code - **error** (string) (required): Error message - **code** (string) (required): Error code ### Example Usage ```bash curl -X POST "https://api.framepayments.com/v1/invoices?customer=string&collection_method=string&due_date=string&description=string¤cy=string&net_terms=0&memo=string" ``` ``` -------------------------------- ### Schema: Subscription Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Schema definition for Subscription ```markdown ## Schema: Subscription Schema definition for Subscription **Type:** object - **id** (string) (required): Unique identifier for the subscription - **object** (string) (required): Object type identifier - **customer** (string) (required): ID of the customer - **status** (string) (required): Current status of the subscription - **created** (integer) (required): Unix timestamp of creation - **updated** (integer): Unix timestamp of last update - **livemode** (boolean) (required): Whether this is a live mode subscription - **current_period_start** (integer): Start of current billing period - **current_period_end** (integer): End of current billing period - **metadata** (object): Additional metadata ``` -------------------------------- ### Schema: ChargeIntent Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Schema definition for ChargeIntent ```markdown ## Schema: ChargeIntent Schema definition for ChargeIntent **Type:** object - **id** (string) (required): Unique identifier for the charge intent - **amount** (integer) (required): Amount to be charged in cents - **currency** (string) (required): Three-letter ISO currency code - **status** (string) (required): Current status of the charge intent - **livemode** (boolean) (required): Whether this is a live mode charge intent - **object** (string) (required): Object type identifier - **created** (integer) (required): Unix timestamp of creation - **client_secret** (string): Client secret for frontend integration - **authorization_mode** (string): Authorization mode - **description** (string): Description of the charge - **failure_description** (string): Failure description if applicable - **customer** (object): Customer object if associated - **payment_method** (object): Payment method object if associated - **subscription** (object): Subscription if applicable - **invoice** (object): Invoice if applicable - **latest_charge** (object): Latest charge object - **shipping** (object): Shipping address - **metadata** (object): Additional metadata ``` -------------------------------- ### POST /v1/payment_methods/{id}/attach Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Attach a payment method to a specific customer ```markdown ### Parameters - **id** (string, path, required): Payment method ID - **customer** (string, query, required): Customer ID to attach the payment method to ### Responses #### 200 - Payment method attached successfully Empty response body #### 400 - Bad request Bad request #### 401 - Unauthorized Unauthorized #### 404 - Payment method not found Payment method not found ### Example Usage ```bash curl -X POST "https://api.framepayments.com/v1/payment_methods/{id}/attach?customer=string" ``` ``` -------------------------------- ### PATCH /v1/products/{id} Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Update a specific product ```markdown ### Parameters - **id** (string, path, required): Product ID - **name** (string, query, optional): Product name - **description** (string, query, optional): Product description - **default_price** (integer, query, optional): Default price in cents - **purchase_type** (string, query, optional): Purchase type: * `one_time` * `recurring` - **shippable** (boolean, query, optional): Whether the product requires shipping - **url** (string, query, optional): Product URL - **recurring_interval** (string, query, optional): Recurring interval for recurring products - **billing_credits** (integer, query, optional): Billing credits for the product ### Responses #### 200 - Product updated successfully Empty response body #### 401 - Unauthorized Unauthorized #### 404 - Product not found Product not found ### Example Usage ```bash curl -X PATCH "https://api.framepayments.com/v1/products/{id}?name=string&description=string&default_price=0&purchase_type=string&shippable=true&url=string&recurring_interval=string&billing_credits=0" ``` ``` -------------------------------- ### POST /v1/charge_intents Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Create a new charge intent for the authenticated merchant ```markdown ### Request Body **Content-Type:** application/json - **amount** (integer) (required): Amount to charge in cents - **currency** (string) (required): Currency code (e.g., 'usd') - **customer** (string): Customer ID - **payment_method** (string): Payment method ID - **description** (string): Description of the charge - **capture** (boolean): Whether to automatically capture the charge - **confirmation_method** (string (automatic|manual)): Confirmation method ("automatic"|"manual") - **metadata** (object): Additional custom metadata for the charge intent ### Responses #### 200 - Charge intent created successfully **ChargeIntent** - **id** (string) (required): Unique identifier for the charge intent - **amount** (integer) (required): Amount to be charged in cents - **currency** (string) (required): Three-letter ISO currency code - **status** (string) (required): Current status of the charge intent - **livemode** (boolean) (required): Whether this is a live mode charge intent - **object** (string) (required): Object type identifier - **created** (integer) (required): Unix timestamp of creation - **client_secret** (string): Client secret for frontend integration - **authorization_mode** (string): Authorization mode - **description** (string): Description of the charge - **failure_description** (string): Failure description if applicable - **customer** (object): Customer object if associated - **payment_method** (object): Payment method object if associated - **subscription** (object): Subscription if applicable - **invoice** (object): Invoice if applicable - **latest_charge** (object): Latest charge object - **shipping** (object): Shipping address - **metadata** (object): Additional metadata #### 400 - Bad request - validation errors **Error** - **type** (string) (required): Error type - **message** (string) (required): Human-readable error message - **data** (object): Additional error data #### 401 - Unauthorized **AuthError** - **status** (integer) (required): HTTP status code - **error** (string) (required): Error message ### Example Usage ```bash curl -X POST "https://api.framepayments.com/v1/charge_intents" \ -H "Content-Type: application/json" \ -d '{ "amount": "0", "currency": "string", "customer": "string", "payment_method": "string", "description": "string", "capture": "true", "confirmation_method": "automatic", "metadata": "value" }' ``` ``` -------------------------------- ### Schema: PaymentMethod Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Schema definition for PaymentMethod ```markdown ## Schema: PaymentMethod Schema definition for PaymentMethod **Type:** object - **id** (string) (required): Unique identifier for the payment method - **object** (string) (required): Object type identifier - **type** (string) (required): Type of payment method - **status** (string) (required): Status of the payment method - **created** (integer) (required): Unix timestamp of creation - **updated** (integer): Unix timestamp of last update - **livemode** (boolean) (required): Whether this is a live mode payment method - **customer_id** (string): Associated customer ID - **card** (object): Card details if card payment method - **brand** (string): Card brand - **last_four** (string): Last four digits - **exp_month** (string): Expiration month - **exp_year** (string): Expiration year - **billing** (object): Billing address ``` -------------------------------- ### Security: BearerAuth Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Use your secret API key (sk_live_... or sk_test_...) ```markdown ## Security: BearerAuth **Description:** Use your secret API key (sk_live_... or sk_test_...) **Type:** http **Scheme:** bearer **Bearer Format:** JWT ``` -------------------------------- ### Schema: Invoice Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Schema definition for Invoice ```markdown ## Schema: Invoice Schema definition for Invoice **Type:** object - **id** (string) (required): Unique identifier for the invoice - **object** (string) (required): Object type identifier - **customer_id** (string): ID of the customer - **amount_due** (integer): Amount due in cents - **amount_paid** (integer): Amount paid in cents - **currency** (string) (required): Three-letter ISO currency code - **status** (string) (required): Current status of the invoice - **created** (integer) (required): Unix timestamp of creation - **updated** (integer) (required): Unix timestamp of last update - **livemode** (boolean) (required): Whether this is a live mode invoice - **due_date** (string (date-time)): Invoice due date in ISO 8601 format - **finalized_at** (integer): When the invoice was finalized - **paid_at** (integer): When the invoice was paid - **metadata** (object) (required): Additional metadata ``` -------------------------------- ### POST /v1/charge_intents/{id}/confirm Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Confirm a charge intent to process the payment ```markdown ### Parameters - **id** (string, path, required): Charge intent ID ### Responses #### 200 - Charge intent confirmed successfully Empty response body #### 400 - Bad request Bad request #### 401 - Unauthorized Unauthorized #### 404 - Charge intent not found Charge intent not found ### Example Usage ```bash curl -X POST "https://api.framepayments.com/v1/charge_intents/{id}/confirm" ``` ``` -------------------------------- ### DELETE /v1/products/{id} Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Delete a specific product ```markdown ### Parameters - **id** (string, path, required): Product ID ### Responses #### 200 - Product deleted successfully Empty response body #### 401 - Unauthorized Unauthorized #### 404 - Product not found Product not found ### Example Usage ```bash curl -X DELETE "https://api.framepayments.com/v1/products/{id}" ``` ``` -------------------------------- ### Schema: InvoiceLineItem Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Schema definition for InvoiceLineItem ```markdown ## Schema: InvoiceLineItem Schema definition for InvoiceLineItem **Type:** object - **id** (string) (required): Unique identifier for the line item - **object** (string) (required): Object type identifier - **description** (string) (required): Line item description - **quantity** (integer) (required): Quantity of the item - **unit_amount_cents** (integer) (required): Unit amount in cents - **unit_amount_currency** (string) (required): Unit amount currency - **created** (integer) (required): Unix timestamp of creation - **updated** (integer) (required): Unix timestamp of last update ``` -------------------------------- ### Schema: AuthError Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Schema definition for AuthError ```markdown ## Schema: AuthError Schema definition for AuthError **Type:** object - **status** (integer) (required): HTTP status code - **error** (string) (required): Error message ``` -------------------------------- ### POST /v1/charge_intents/{id}/capture Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Capture a previously authorized charge intent ```markdown ### Parameters - **id** (string, path, required): Charge intent ID ### Responses #### 200 - Charge intent captured successfully Empty response body #### 400 - Bad request Bad request #### 401 - Unauthorized Unauthorized #### 404 - Charge intent not found Charge intent not found ### Example Usage ```bash curl -X POST "https://api.framepayments.com/v1/charge_intents/{id}/capture" ``` ``` -------------------------------- ### Schema: Error Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Schema definition for Error ```markdown ## Schema: Error Schema definition for Error **Type:** object - **type** (string) (required): Error type - **message** (string) (required): Human-readable error message - **data** (object): Additional error data ``` -------------------------------- ### Schema: NotFoundError Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Schema definition for NotFoundError ```markdown ## Schema: NotFoundError Schema definition for NotFoundError **Type:** object - **status** (integer) (required): HTTP status code - **error** (string) (required): Error message - **code** (string) (required): Error code ``` -------------------------------- ### PATCH /v1/charge_intents/{id} Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Update a specific charge intent ```markdown ### Parameters - **id** (string, path, required): Charge intent ID - **amount** (integer, query, optional): Amount to charge in cents - **description** (string, query, optional): Description of the charge - **payment_method** (string, query, optional): Payment method ID ### Responses #### 200 - Charge intent updated successfully Empty response body #### 401 - Unauthorized Unauthorized #### 404 - Charge intent not found Charge intent not found ### Example Usage ```bash curl -X PATCH "https://api.framepayments.com/v1/charge_intents/{id}?amount=0&description=string&payment_method=string" ``` ``` -------------------------------- ### PATCH /v1/customers/{id} Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Update a specific customer ```markdown ### Parameters - **id** (string, path, required): Customer ID - **name** (string, query, optional): Customer full name - **email** (string, query, optional): Customer email address - **phone** (string, query, optional): Customer phone number ### Responses #### 200 - Customer updated successfully Empty response body #### 401 - Unauthorized Unauthorized #### 404 - Customer not found Customer not found ### Example Usage ```bash curl -X PATCH "https://api.framepayments.com/v1/customers/{id}?name=string&email=string&phone=string" ``` ``` -------------------------------- ### PATCH /v1/payment_methods/{id} Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Update a specific payment method ```markdown ### Parameters - **id** (string, path, required): Payment method ID - **exp_month** (integer, query, optional): Expiration month (for card type) - **exp_year** (integer, query, optional): Expiration year (for card type) ### Responses #### 200 - Payment method updated successfully Empty response body #### 401 - Unauthorized Unauthorized #### 404 - Payment method not found Payment method not found ### Example Usage ```bash curl -X PATCH "https://api.framepayments.com/v1/payment_methods/{id}?exp_month=0&exp_year=0" ``` ``` -------------------------------- ### POST /v1/subscriptions/{id}/cancel Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Cancel a specific subscription ```markdown ### Parameters - **id** (string, path, required): Subscription ID - **cancel_at_period_end** (boolean, query, optional): Whether to cancel at the end of the current period - **reason** (string, query, optional): Reason for cancellation ### Responses #### 200 - Subscription cancelled successfully Empty response body #### 401 - Unauthorized Unauthorized #### 404 - Subscription not found Subscription not found ### Example Usage ```bash curl -X POST "https://api.framepayments.com/v1/subscriptions/{id}/cancel?cancel_at_period_end=true&reason=string" ``` ``` -------------------------------- ### PATCH /v1/subscriptions/{id} Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Update a specific subscription ```markdown ### Parameters - **id** (string, path, required): Subscription ID - **default_payment_method** (string, query, optional): Default payment method ID - **description** (string, query, optional): Subscription description ### Responses #### 200 - Subscription updated successfully Empty response body #### 401 - Unauthorized Unauthorized #### 404 - Subscription not found Subscription not found ### Example Usage ```bash curl -X PATCH "https://api.framepayments.com/v1/subscriptions/{id}?default_payment_method=string&description=string" ``` ``` -------------------------------- ### POST /v1/charge_intents/{id}/cancel Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Cancel a charge intent before it's captured ```markdown ### Parameters - **id** (string, path, required): Charge intent ID ### Responses #### 200 - Charge intent cancelled successfully Empty response body #### 400 - Bad request Bad request #### 401 - Unauthorized Unauthorized #### 404 - Charge intent not found Charge intent not found ### Example Usage ```bash curl -X POST "https://api.framepayments.com/v1/charge_intents/{id}/cancel" ``` ``` -------------------------------- ### Schema: ValidationError Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Schema definition for ValidationError ```markdown ## Schema: ValidationError Schema definition for ValidationError **Type:** object - **errors** (string) (required): Simple error message ``` -------------------------------- ### PATCH /v1/invoices/{id} Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Update a specific invoice ```markdown ### Parameters - **id** (string, path, required): Invoice ID - **due_date** (string, query, optional): Invoice due date - **description** (string, query, optional): Invoice description - **auto_advance** (boolean, query, optional): Whether to automatically advance the invoice ### Responses #### 200 - Invoice updated successfully Empty response body #### 401 - Unauthorized Unauthorized #### 404 - Invoice not found Invoice not found ### Example Usage ```bash curl -X PATCH "https://api.framepayments.com/v1/invoices/{id}?due_date=string&description=string&auto_advance=true" ``` ``` -------------------------------- ### POST /v1/payment_methods/{id}/detach Source: https://app.framepayments.com/api-docs/public/v1/openapi.yaml Detach a payment method from its current customer ```markdown ### Parameters - **id** (string, path, required): Payment method ID ### Responses #### 200 - Payment method detached successfully Empty response body #### 401 - Unauthorized Unauthorized #### 404 - Payment method not found Payment method not found ### Example Usage ```bash curl -X POST "https://api.framepayments.com/v1/payment_methods/{id}/detach" ``` ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.