UNPKG

magpie-mcp-server

Version:

Model Context Protocol server for Magpie Payment Platform APIs. Enables AI agents to process payments, create checkout sessions, manage payment requests, and handle payment links.

1,549 lines (1,548 loc) 50.5 kB
openapi: 3.0.2 info: title: Magpie Payments API Documentation description: "\n## Usage\n\nThe shortest path to accepting payments is to create\ \ a source and use that source to create a charge.\n\n### 1. Create a Source\n\ \n#### Source Request\n\n```json\n{\n \"currency\": \"php\",\n \"type\"\ : \"gcash\",\n \"redirect\": {\n \"success\": \"https://google.com?status=success\"\ ,\n \"fail\": \"https://google.com?status=fail\"\n }\n}\n```\n\n####\ \ Source Response\n\n```json\n{\n \"object\": \"source\",\n \"id\": \"src_017b24c08a007edc6433ceb2ea123c34\"\ ,\n \"type\": \"gcash\",\n \"card\": null,\n \"redirect\": {\n \ \ \"success\": \"https://google.com?status=success\",\n \"fail\": \"https://google.com?status=fail\"\ \n },\n \"vaulted\": false,\n \"used\": false,\n \"livemode\": false,\n\ \ \"created_at\": \"2021-08-08T15:53:23.227251+08:00\"\n}\n```\n\n### 2. Create\ \ a Charge\n\n#### Charge Request\n\n```json\n{\n \"amount\": 5000,\n \"\ currency\": \"php\",\n \"source\": \"src_017b24c08a007edc6433ceb2ea123c34\"\ ,\n \"description\": \"Board Rental\",\n \"statement_descriptor\": \"Surf\ \ Shack\",\n \"capture\": true\n}\n```\n\n#### Charge Response\n\n```json\n\ {\n \"object\": \"charge\",\n \"id\": \"ch_017b24c343a2c0e797a7a39bcb183f5d\"\ ,\n \"amount\": 5000,\n \"amount_refunded\": 0,\n \"captured\": false,\n\ \ \"currency\": \"php\",\n \"statement_descriptor\": \"Surf Shack\",\n \ \ \"description\": \"Board Rental\",\n \"source\": {\n \"object\"\ : \"source\",\n \"id\": \"src_017b24c08a007edc6433ceb2ea123c34\",\n \ \ \"type\": \"gcash\",\n \"card\": null,\n \"redirect\": {\n\ \ \"success\": \"https://google.com?status=success\",\n \ \ \"fail\": \"https://google.com?status=fail\"\n },\n \"vaulted\"\ : false,\n \"used\": true,\n \"livemode\": false,\n \"created_at\"\ : \"2021-08-08T15:53:23.227251+08:00\"\n },\n \"action\": {\n \"\ url\": \"https://payments.gcash.com/xxxxx/\",\n \"type\": \"redirect_to_url\"\ \n },\n \"refunds\": [],\n \"status\": \"pending\",\n \"livemode\"\ : false,\n \"created_at\": \"2021-08-08T15:56:21.827531+08:00\",\n \"updated_at\"\ : \"2021-08-08T15:56:21.827531+08:00\"\n}\n```\n\nRedirect your users to the `action.url`\ \ page for authentication. Whatever the outcome will be,\nit will redirect back\ \ to the `success` or `fail` URLs you defined during source creation.\nYou may\ \ execute some custom flow at this point.\n" version: 2.0.0 contact: name: Magpie Support email: support@magpie.im paths: /v2/sources/: post: tags: - Sources summary: Create Source description: 'Creates a single use source that wraps the details of a credit card, wallet or bank account. These sources can only be used once: by creating a new charge object, or attaching them to a customer.' operationId: Create_Source_v2_sources__post requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateSourceSerializer' examples: gcash: summary: GCash payment method description: Use this payload when you want to collect payment through GCash value: type: gcash redirect: success: https://yoursite.com/?status=success fail: https://yoursite.com/?status=fail notify: https://yoursite.com/notifications maya: summary: Maya payment method description: Use this payload when you want to collect payment through Maya value: type: paymaya redirect: success: https://yoursite.com/?status=success fail: https://yoursite.com/?status=fail notify: https://yoursite.com/notifications wechat: summary: Wechat payment method description: Use this payload when you want to collect payment through WeChat Pay value: type: wechat redirect: success: https://yoursite.com/?status=success fail: https://yoursite.com/?status=fail notify: https://yoursite.com/notifications card: summary: Maya payment method description: Use this payload when you want to collect payment through Maya value: type: card card: name: Gerry Isaac number: '4012001037141112' exp_month: '12' exp_year: '2025' cvc: '123' address_line1: string address_line2: string address_city: string address_state: string address_country: string address_zip: string redirect: success: https://yoursite.com/?status=success fail: https://yoursite.com/?status=fail notify: https://yoursite.com/notifications owner: billing: name: Gerry Isaac phone_number: '639175511222' email: client@example.com line1: '#123 JP Rizal St.' line2: Brgy. Aguinaldo city: Quezon City state: Metro Manila country: PH zip_code: '1100' shipping: name: Gerry Isaac phone_number: '639175511222' email: client@example.com line1: '#123 JP Rizal St.' line2: Brgy. Aguinaldo city: Quezon City state: Metro Manila country: PH zip_code: '1100' name: Gerry Isaac address_country: PH required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ReadSourceSerializer' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBasic: [] /v2/sources/{src_id}: get: tags: - Sources summary: Retrieve Source description: 'Retrieves an existing source object. Supply the unique source ID from a source creation request and will return the corresponding source object information.' operationId: Retrieve_Source_v2_sources__src_id__get parameters: - required: true schema: title: Src Id type: string name: src_id in: path responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ReadSourceSerializer' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBasic: [] /v2/charges/: get: tags: - Charges summary: List Charges description: Retrieves a list of charges operationId: List_Charges_v2_charges__get parameters: - description: A cursor for use in pagination. `start_after` is an object ID that defines your place in the list. required: false schema: title: Start After type: string description: A cursor for use in pagination. `start_after` is an object ID that defines your place in the list. default: '' name: start_after in: query responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListChargeSerializer' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBasic: [] post: tags: - Charges summary: Create Charge description: 'To charge a credit or debit card, wallet or bank account, you create a Charge object. You can retrieve and refund individual charges as well as list all charges. Charges are identified by a unique, random ID.' operationId: Create_Charge_v2_charges__post requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateChargeSerializer' required: true responses: '201': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ReadChargeSerializer' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBasic: [] /v2/charges/{ch_id}: get: tags: - Charges summary: Retrieve Charge description: 'Retrieves the details of a charge that has previously been created. Supply the unique charge ID that was returned from your previous request, and Magpie will return the corresponding charge information. The same information is returned when creating or refunding the charge.' operationId: Retrieve_Charge_v2_charges__ch_id__get parameters: - required: true schema: title: Ch Id type: string name: ch_id in: path responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ReadChargeSerializer' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBasic: [] /v2/charges/{ch_id}/capture: post: tags: - Charges summary: Capture Charge description: 'Capture the payment of an existing, uncaptured, charge. This is the second half of the two-step payment flow, where first you created a charge with the capture option set to false.' operationId: Capture_Charge_v2_charges__ch_id__capture_post parameters: - required: true schema: title: Ch Id type: string name: ch_id in: path requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateCaptureSerializer' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ReadChargeSerializer' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBasic: [] /v2/charges/{ch_id}/void: post: tags: - Charges summary: Void Charge description: 'Cancel an authorized transaction. Can also be used to cancel a captured/purchased transaction that has not yet settled at the merchant account.' operationId: Void_Charge_v2_charges__ch_id__void_post parameters: - required: true schema: title: Ch Id type: string name: ch_id in: path responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ReadChargeSerializer' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBasic: [] /v2/charges/{ch_id}/refund: post: tags: - Charges summary: Refund Charge description: Refund a specific charge. operationId: Refund_Charge_v2_charges__ch_id__refund_post parameters: - required: true schema: title: Ch Id type: string name: ch_id in: path requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateRefundSerializer' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ReadChargeSerializer' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBasic: [] /v2/charges/{ch_id}/verify: post: tags: - Charges summary: Verify Charge operationId: Verify_charge_v2_charges__ch_id__verify_post parameters: - required: true schema: title: Ch Id type: string name: ch_id in: path requestBody: content: application/json: schema: $ref: '#/components/schemas/VerifyChargeSerializer' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ReadChargeSerializer' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBasic: [] /v2/customers/: post: tags: - Customers summary: Create Customer description: Creates a customer operationId: Create_Customer_v2_customers__post requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateCustomerSerializer' required: true responses: '201': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ReadCustomerSerializer' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBasic: [] /v2/customers/{cus_id}: get: tags: - Customers summary: Retrieve Customer description: Retrieves the details of an existing customer. You need only supply the unique customer identifier that was returned upon customer creation. operationId: Retrieve_Customer_v2_customers__cus_id__get parameters: - required: true schema: title: Cus Id type: string name: cus_id in: path responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ReadCustomerSerializer' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBasic: [] put: tags: - Customers summary: Update Customer description: Update customer details operationId: Update_Customer_v2_customers__cus_id__put parameters: - required: true schema: title: Cus Id type: string name: cus_id in: path requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateCustomerSerializer' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ReadCustomerSerializer' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBasic: [] /v2/customers/by_email/{email}: get: tags: - Customers summary: Retrieve Customer By Email description: Retrieves the details of an existing customer using email. You need only supply the unique email identifier that was used upon customer creation. operationId: Retrieve_Customer_by_Email_v2_customers_by_email__email__get parameters: - required: true schema: title: Email type: string name: email in: path responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ReadCustomerSerializer' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBasic: [] /v2/customers/{cus_id}/sources: post: tags: - Customers summary: Attach Source description: Attach a source to a customer typically used for recurring charges without your customer's needing to complete the payment process again. operationId: Attach_Source_v2_customers__cus_id__sources_post parameters: - required: true schema: title: Cus Id type: string name: cus_id in: path requestBody: content: application/json: schema: $ref: '#/components/schemas/AttachSourceSerializer' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ReadCustomerSerializer' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBasic: [] /v2/customers/{cus_id}/sources/{src_id}: delete: tags: - Customers summary: Detach Source description: Detach a source from a customer. operationId: Detach_Source_v2_customers__cus_id__sources__src_id__delete parameters: - required: true schema: title: Cus Id type: string name: cus_id in: path - required: true schema: title: Src Id type: string name: src_id in: path responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ReadCustomerSerializer' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBasic: [] components: schemas: AddressSerializer: title: AddressSerializer required: - name type: object properties: name: title: Name maxLength: 50 minLength: 1 pattern: ^[A-Za-z0-9\s\'#_\.\-,]+$ type: string description: Full name of account holder example: Gerry Isaac phone_number: title: Phone Number maxLength: 50 minLength: 1 pattern: ^[A-Za-z0-9\s\'#_\.\-,]+$ type: string example: '639175511222' email: title: Email Address type: string format: email example: client@example.com line1: title: Line 1 maxLength: 255 minLength: 1 pattern: ^[A-Za-z0-9\s\'#_\.\-,]+$ type: string example: '#123 JP Rizal St.' line2: title: Line 2 maxLength: 255 minLength: 1 pattern: ^[A-Za-z0-9\s\'#_\.\-,]+$ type: string example: Brgy. Aguinaldo city: title: City maxLength: 100 minLength: 1 pattern: ^[A-Za-z0-9\s\'#_\.\-,]+$ type: string example: Quezon City state: title: State maxLength: 50 minLength: 1 pattern: ^[A-Za-z0-9\s\'#_\.\-,]+$ type: string example: Metro Manila country: title: Country maxLength: 50 minLength: 1 pattern: ^[A-Za-z0-9\s\'#_\.\-,]+$ type: string example: PH zip_code: title: Magpie Code maxLength: 50 minLength: 1 pattern: ^[A-Za-z0-9\s\'#_\.\-,]+$ type: string example: '1100' AttachSourceSerializer: title: AttachSourceSerializer required: - source type: object properties: source: title: Source maxLength: 255 minLength: 5 type: string description: The source ID you want to attach to a customer. example: src_017957321fc976151ca9934f3f5a7732 CreateCaptureSerializer: title: CreateCaptureSerializer required: - amount type: object properties: amount: title: Amount type: integer description: The amount to capture, must be equal or less than the authorized amount. A positive integer in the smallest currency unit, e.g. cents. For example, an amount of PHP18.89 would be entered as the integer 1889. example: 5000 CreateCardSerializer: title: CreateCardSerializer required: - name - number - exp_month - exp_year - cvc type: object properties: name: title: Name maxLength: 50 minLength: 1 pattern: ^[A-Za-z0-9\s\'#_\.\-,]+$ type: string description: Full name of cardholder example: Gerry Isaac number: title: Card Number type: string description: The 16-digit card number example: '4012001037141112' exp_month: title: Expiry month maxLength: 2 minLength: 1 type: string description: Expiration month of the card. example: '12' exp_year: title: Expiry year maxLength: 4 minLength: 4 type: string description: Four-digit number expiration year of the card. example: '2025' cvc: title: CVC maxLength: 4 minLength: 3 type: string description: "The card\u2019s security code." example: '123' address_line1: title: Address Line1 maxLength: 255 minLength: 1 pattern: ^[A-Za-z0-9\s\'#_\.\-,]+$ type: string address_line2: title: Address Line2 maxLength: 255 minLength: 1 pattern: ^[A-Za-z0-9\s\'#_\.\-,]+$ type: string address_city: title: Address City maxLength: 255 minLength: 1 pattern: ^[A-Za-z0-9\s\'#_\.\-,]+$ type: string address_state: title: Address State maxLength: 255 minLength: 1 pattern: ^[A-Za-z0-9\s\'#_\.\-,]+$ type: string address_country: title: Address Country maxLength: 255 minLength: 1 pattern: ^[A-Za-z0-9\s\'#_\.\-,]+$ type: string address_zip: title: Address Magpie maxLength: 50 minLength: 1 pattern: ^[A-Za-z0-9\s\'#_\.\-,]+$ type: string CreateChargeSerializer: title: CreateChargeSerializer required: - amount - currency - source - description - statement_descriptor - capture type: object properties: amount: title: Amount type: integer description: A positive integer in the smallest currency unit, e.g. cents. For example, an amount of PHP18.89 would be entered as the integer 1889. example: 5000 currency: title: Currency maxLength: 4 minLength: 2 pattern: ^[A-Za-z0-9\s\'#_\.\-,]+$ type: string description: 3-letter ISO-code for currency. If not provided, defaults to PHP. example: PHP source: title: Source maxLength: 255 minLength: 1 pattern: ^[A-Za-z0-9\s\'#_\.\-,]+$ type: string description: 'The ID of the payment source. ' example: src_0178c4a692d2384e33c29f5f10933be1 description: title: Description maxLength: 255 minLength: 1 type: string description: An arbitrary string which you can attach to a charge object. example: 1 hour surf lesson statement_descriptor: title: Statement Descriptor maxLength: 100 minLength: 3 pattern: ^[A-Za-z0-9\s\'#_\.\-,]+$ type: string description: "An arbitrary string to be displayed on your customer\u2019\ s credit card statement. Maximum 15 characters. If not provided, defaults\ \ to Magpie.IM Pte Ltd." example: Surf Rack capture: title: Capture type: boolean description: Whether or not to immediately capture the charge. When false, the charge needs to be captured later. Defaults to true. example: true cvc: title: CVC maxLength: 4 minLength: 3 type: string description: The card's security code example: '123' require_auth: title: Require Payer Authentication type: boolean description: When set to false, attempt to do 3D secure authentication for credit card is bypassed and charge is immediately executed. This has no effect for vaulted cards. default: true example: false redirect_url: title: Redirect url maxLength: 2083 minLength: 1 type: string description: Used for direct bank transactions format: uri example: https://mywebsite.com/callback metadata: title: Metadata type: object description: Any data you want to attach to this example: '{}' CreateCustomerSerializer: title: CreateCustomerSerializer required: - email - description type: object properties: email: title: Email type: string description: Customer's email format: email example: juandelacruz@pinoymail.com mobile_number: title: Mobile Number maxLength: 25 minLength: 5 type: string description: Customer's mobile number default: '' example: '+639171234567' description: title: Description maxLength: 255 minLength: 1 type: string description: Customer description. example: Juan dela Cruz (created by PayTerminal) metadata: title: Metadata type: object description: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. default: {} example: address: '#123 JP Rizal St., Quezon City' CreateRefundSerializer: title: CreateRefundSerializer type: object properties: amount: title: Amount type: integer description: The amount to refund, must be equal or less than the charge amount. A positive integer in the smallest currency unit, e.g. cents. For example, an amount of PHP18.89 would be entered as the integer 1889. example: 5000 CreateSourceSerializer: title: CreateSourceSerializer required: - type type: object properties: type: title: Source Type allOf: - $ref: '#/components/schemas/SourceType' description: The type of the source to create. example: card card: title: Card Details allOf: - $ref: '#/components/schemas/CreateCardSerializer' description: "**Optional**. If source type is `card`, this is a required field that contains user's card details" redirect: title: Redirect URLs allOf: - $ref: '#/components/schemas/RedirectSerializer' owner: title: Account holder details allOf: - $ref: '#/components/schemas/OwnerSerializer' HTTPValidationError: title: HTTPValidationError type: object properties: detail: title: Detail type: array items: $ref: '#/components/schemas/ValidationError' ListChargeSerializer: title: ListChargeSerializer required: - object - data type: object properties: object: title: Object type: string description: String representing the object's type. Objects of the same type share the same value. example: list next: title: Next Page type: string description: String representing the object's type. Objects of the same type share the same value. example: /v2/charges/?start_after=ch_0179ee1e0b12cb6430a04ee7ae103ee6 data: title: Data type: array items: $ref: '#/components/schemas/ReadChargeSerializer' description: List of charge objects OwnerSerializer: title: OwnerSerializer type: object properties: billing: title: Billing Address allOf: - $ref: '#/components/schemas/AddressSerializer' shipping: title: Shipping Address allOf: - $ref: '#/components/schemas/AddressSerializer' name: title: Name maxLength: 50 type: string description: Full name of account holder example: Gerry Isaac address_country: title: Country maxLength: 50 minLength: 1 pattern: ^[A-Za-z0-9\s\'#_\.\-,]+$ type: string example: PH ReadBankAccountSerializer: title: ReadBankAccountSerializer required: - reference_id - bank_type - bank_code - account_name - account_number - account_type - expires_at type: object properties: reference_id: title: Reference Id type: string description: Reference Id we used in connecting to debit api example: cus_123123123 bank_type: title: Bank Type type: string description: Token's bank type example: BPI bank_code: title: Bank Code type: string description: Specific bank's code example: magpiebpi account_name: title: Account name type: string example: '' account_number: title: Account number type: string example: '' account_type: title: Account type type: string example: '' expires_at: title: Expiration date type: string example: '' metadata: title: Metadata type: object example: {} ReadCardSerializer: title: ReadCardSerializer required: - object - id - name - last4 - exp_month - exp_year - brand - country - cvc_checked - funding - issuing_bank type: object properties: object: title: Object type: string description: String representing the object's type. Objects of the same type share the same value. example: source id: title: ID type: string description: A unique ID for this card, usually starts with `card_`, followed by an alphanumeric string. example: card_01786e96b17d197aacd0de4e1f01ac5f name: title: Name type: string description: Full name of cardholder example: Gerry Isaac last4: title: Card Number type: string description: The last 4 digits of the credit card number example: '1112' exp_month: title: Expiry month type: string description: Expiration month of the card. example: '12' exp_year: title: Expiry year type: string description: Four-digit number expiration year of the card. example: '2025' address_line1: title: Address Line1 type: string address_line2: title: Address Line2 type: string address_city: title: Address City type: string address_state: title: Address State type: string address_country: title: Address Country type: string address_zip: title: Address Magpie type: string brand: title: Brand type: string country: title: Country type: string cvc_checked: title: Cvc Checked type: string funding: title: Funding type: string issuing_bank: title: Issuing Bank type: string ReadChargeSerializer: title: ReadChargeSerializer required: - object - id - amount - amount_refunded - authorized - captured - currency - statement_descriptor - description - source - refunds - status - livemode - created_at - updated_at type: object properties: object: title: Object type: string description: The type of object, in this case charge example: charge id: title: ID type: string description: A unique ID for this charge. usually starts with 'ch_', followed by an alphanumeric string. example: ch_0179504c16bddfe6bb8444581af5ae05 amount: title: Amount type: integer description: The amount of the charge example: 5000 amount_refunded: title: Amount Refunded type: integer description: The amount refunded example: 0 authorized: title: Authorized type: boolean description: Whether an amount is authorized / held for future capturing. example: false captured: title: Captured type: boolean description: Whether an authorized amount has been captured or not example: true currency: title: Currency type: string description: 3-letter ISO-code for currency. example: PHP statement_descriptor: title: Statement Descriptor type: string description: The statement descriptor that will appear in the credit card statement example: Surf Rack description: title: Description type: string description: The description for this charge example: 1 hour surf lesson source: title: Source allOf: - $ref: '#/components/schemas/ReadSourceSerializer' description: Source used to execute the charge. require_auth: title: Require Payer Authentication type: boolean description: When set to false, attempt to do 3D secure authentication for credit card is bypassed and charge is immediately executed. This has no effect for vaulted cards. default: true example: false owner: title: Owner type: object description: Payment source owner details example: name: John Doe address_country: PH action: title: Next Action type: object description: Tells the next action the client needs to make. Generally used for credit card, bank or wallet authentication. example: type: redirect_to_url url: https://api.magpie.im/v2/charges/auth/ra_0179082b7bf0afce5b5f7e445907198d/ refunds: title: Refunds type: array items: $ref: '#/components/schemas/ReadRefundSerializer' description: A list of refunds, if applicable status: title: Status type: string description: The status of the charge example: succeeded livemode: title: Live Mode type: boolean description: Will be true if the secret key used was the live key, false if the test key was used example: true created_at: title: Created Date type: string description: Time at which the object was created in ISO 8601 format. example: '2021-04-12T13:55:54.194136+08:00' updated_at: title: Updated Date type: string description: Latest time at which the object was updated in ISO 8601 format. example: '2021-04-13T13:55:54.194136+08:00' metadata: title: Metadata type: object example: {} failure_data: title: Failure Data type: object description: A dictionary that contains error response from the provider. example: code: authentication_required reason: The card was declined as the transaction requires authentication. next_steps: The customer should try again and authenticate their card when prompted during the transaction. provider_response: {} ReadCustomerSerializer: title: ReadCustomerSerializer required: - sources - livemode type: object properties: object: title: Object type: string description: The type of object, in this case charge example: charge id: title: ID type: string description: A unique ID for this charge. usually starts with `cus_`, followed by an alphanumeric string. example: cus_01786de4d9d69ad1369bfd56b098ccd9 email: title: Email type: string description: Customer's email example: juandelacruz@pinoymail.com mobile_number: title: Mobile Number type: string description: Customer's mobile number example: '+639171234567' description: title: Description type: string description: Customer description. example: Juan dela Cruz (created by PayTerminal) sources: title: Sources type: array items: $ref: '#/components/schemas/ReadSourceSerializer' description: "The customer\u2019s payment sources, if any." livemode: title: Live Mode type: boolean description: Will be true if the secret key used was the live key, false if the test key was used example: true created_at: title: Created Date type: string description: Time at which the object was created in ISO 8601 format. example: '2021-04-12T13:55:54.194136+08:00' updated_at: title: Updated Date type: string description: Time at which the object was updated in ISO 8601 format. example: '2021-04-12T13:55:55.194136+08:00' metadata: title: Metadata type: object description: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. default: {} example: address: '#123 JP Rizal St., Quezon City' ReadRefundSerializer: title: ReadRefundSerializer required: - object - id - amount - currency - reason - status - created_at type: object properties: object: title: Object type: string description: The type of object, in this case refund example: refund id: title: ID type: string description: A unique ID for this refund. usually starts with 're_', followed by an alphanumeric string. example: re_0179ee1e0b12cb6430a04ee7ae103ee6 amount: title: Amount type: integer description: The amount of the charge example: 5000 currency: title: Currency type: string description: 3-letter ISO-code for currency. example: PHP reason: title: Reason type: string description: Reason for the refund example: Refund status: title: Status type: string description: The status of the refund example: succeeded created_at: title: Created Date type: string description: Time at which the object was created in ISO 8601 format. example: '2021-04-12T13:55:54.194136+08:00' updated_at: title: Updated Date type: string description: Time at which the object was updated in ISO 8601 format. example: '2021-04-12T13:55:54.194136+08:00' ReadSourceSerializer: title: ReadSourceSerializer required: - object - id - type - vaulted - used - livemode - created_at - updated_at type: object properties: object: title: Object type: string description: String representing the object's type. Objects of the same type share the same value. example: source id: title: ID type: string description: A unique ID for this source, usually starts with `src_`, followed by an alphanumeric string. example: src_01786de4d9d69ad1369bfd56b098ccd9 type: title: Source Type allOf: - $ref: '#/components/schemas/SourceType' description: The type of the source to create. example: card card: title: Card Details allOf: - $ref: '#/components/schemas/ReadCardSerializer' description: Card details of tokenized credit card. bank_account: title: Bank Account Details allOf: - $ref: '#/components/schemas/ReadBankAccountSerializer' description: Bank details of the tokenized account. redirect: title: Redirect allOf: - $ref: '#/components/schemas/RedirectSerializer' description: Information related to the redirect flow. Present if the source is authenticated by a redirect owner: title: Account holder details allOf: - $ref: '#/components/schemas/OwnerSerializer' vaulted: title: Vaulted type: boolean description: Whether this source has been securely saved for later reuse. example: false used: title: Used type: boolean description: Whether this source has already been used. example: false livemode: title: Live Mode type: boolean description: Has the value true if the object exists in live mode or the value false if the object exists in test mode. example: true created_at: title: Created Date type: string description: Time at which the object was created in ISO 8601 format. example: '2021-03-26T17:36:57.828847+08:00' updated_at: title: Updated Date type: string description: Time at which the object was updated in ISO 8601 format. example: '2021-03-26T17:36:57.828847+08:00' metadata: title: Metadata type: object example: {} RedirectSerializer: title: RedirectSerializer required: - success - fail type: object properties: success: title: Success URL maxLength: 2083 minLength: 1 type: string description: The URL where we redirect after successful payment. format: uri example: https://magpie.im/?status=success fail: title: Failure URL maxLength: 2083 minLength: 1 type: string description: The URL where we redirect after failed payment. format: uri example: https://magpie.im/?status=failed notify: title: Notification URL maxLength: 2083 minLength: 1 type: string description: The URL where we will call repeatedly, until a proper response was received. format: uri example: https://magpie.im/?status=notification SourceType: title: SourceType enum: - card - gcash - paymaya - wechat - alipay - unionpay - grabpay - instapay - qrph type: string description: An enumeration. UpdateCustomerSerializer: title: UpdateCustomerSerializer type: object properties: mobile_number: title: Mobile Number maxLength: 25 minLength: 5 type: string description: Customer's mobile number example: '+639171234567' description: title: Description maxLength: 255 minLength: 1 type: string description: Customer description. example: Juan dela Cruz (created by PayTerminal) metadata: title: Metadata type: object description: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. example: address: '#123 JP Rizal St., Quezon City' ValidationError: title: ValidationError required: - loc - msg - type type: object properties: loc: title: Location type: array items: anyOf: - type: string - type: integer msg: title: Message type: string type: title: Error Type type: string VerifyChargeSerializer: title: VerifyChargeSerializer required: - confirmation_id - otp type: object properties: confirmation_id: title: Confirmation Id maxLength: 255