### GET /processor/api/v1/batchpayout/{payout_uuid} Source: https://api.grailpay.com/docs **This Endpoint is Sunsetting and you should use the stable endpoint. Sunsetting APIs that are still supported but scheduled for deprecation.** ```markdown ### Parameters - **payout_uuid** (string (uuid), path, required): Payout UUID (example: "9bd53fe1-ac74-4e81-b6f2-be88b7c86a68") ### Responses #### 200 - Batch payout details retrieved successfully **BatchPayoutResponse** - **status** (boolean) (example: true) - **message** (string) (example: "") - **data** (object) - **total** (integer) (example: 4400) - **direction** (string) (example: "credit") - **modality** (object) - **payment_rail** (string) (example: "fednow") - **speed** (string) (example: "instant") - **payee_id** (array (object)) Array items: - **payee_id** (string (uuid)) (example: "0cda5458-660f-4f12-9447-e432da2f959c") - **total** (integer) (example: 4400) - **transactions** (array (object)) Array items: - **transaction_id** (string (uuid)) (example: "9ccf5706-dff0-46c7-bf74-4e34dc998485") - **client_reference_id** (string) (example: "typesetting") - **amount** (integer) (example: 4400) - **errors** (string) (example: null) - **error_code** (string) (example: null) #### 401 - Unauthorized - **status** (boolean) (example: false) - **message** (string) (example: "Invalid Token") - **data** (string) (example: null) - **errors** (string) (example: null) - **error_code** (string) (example: null) #### 404 - Batch payout not found - **status** (boolean) (example: false) - **message** (string) (example: "Batch payout not found.") - **data** (object) (example: null) - **errors** (object) (example: null) - **error_code** (string) (example: null) ### Example Usage ```bash curl -X GET "https://api.grailpay.com/processor/api/v1/batchpayout/{payout_uuid}" ``` ``` -------------------------------- ### GET /api/v3/businesses Source: https://api.grailpay.com/docs This endpoint provides a comprehensive list of all registered businesses, including essential details. Pagination options are available to efficiently manage large datasets. ```markdown ### Parameters - **filter[uuid]** (string (uuid), query, optional): Filter by business UUID (example: "7c41f6a2-a4b9-4df8-9225-2c1b7312042e") - **filter[name]** (string, query, optional): Filter by business name (example: "John Inc") - **sort** (string, query, optional): Sort by field (created_at, name). Prefix with '-' for descending order (example: "-created_at") - **page** (integer, query, optional): Page number for pagination (example: 1) - **per_page** (integer, query, optional): Number of records per page (example: 15) ### Responses #### 200 - The response returned from a successful call to listing businesses. - **status** (boolean) (example: true) - **message** (string) (example: "") - **data** (object) - **businesses** (array (object)) Array items: - **business** (object) - **uuid** (string) (example: "a77dbb10-3686-4caf-9acd-52b3cc455db2") - **business_type** (string) (example: "business") - **name** (string) (example: "Acme Inc.") - **trading_name** (string) (example: "Acme Corp") - **payout_type** (string) (example: "batch") - **client_reference_id** (string) (example: "reference_12345") - **address** (object) - **line_1** (string) (example: "10554 W Quarles Ave") - **line_2** (string) (example: "Suite 123") - **city** (string) (example: "Littleton") - **state** (string) (example: "CO") - **zip** (string) (example: "80127") - **timestamps** (object) - **created_at** (string) (example: "2024-06-25 13:57:03") - **bank_accounts** (array (V3BankAccountResponse)) Array items: - **aggregator_type** (string) (example: "manual") - **uuid** (string (uuid)) (example: "9b97f121-a449-4b52-9f36-6c55f18394d6") - **is_default** (boolean) (example: true) - **account_number** (string) (example: "********1234") - **routing_number** (string) (example: "*****6789") - **account_name** (string) (example: "John Doe") - **account_type** (string) (example: "checking") - **timestamps** (object) - **relations** (object) - **person** (object) - **uuid** (string) (example: "7c41f6a2-a4b9-4df8-9225-2c1b7312042e") - **errors** (object) (example: null) - **request_id** (string (uuid)) (example: "2d6a4c39-8fcf-4d80-9189-b4764eac31f2") - **meta** (object) - **current_page** (number) (example: 1) - **from** (number) (example: 1) - **last_page** (number) (example: 25) - **links** (array (object)) - **per_page** (number) (example: 15) - **to** (number) (example: 15) - **total** (number) (example: 370) #### 400 - 400 - Bad Request - **status** (boolean) (example: false) - **message** (string) (example: "Invalid Parameters Received") - **data** (string) (example: null) - **errors** (string) (example: null) - **request_id** (string (uuid)) (example: "2d6a4c39-8fcf-4d80-9189-b4764eac31f2") #### 401 - 401 - Unauthorized - **status** (boolean) (example: false) - **message** (string) (example: "Invalid token.") - **data** (object) (example: null) - **errors** (object) (example: null) - **request_id** (string (uuid)) (example: "2d6a4c39-8fcf-4d80-9189-b4764eac31f2") #### 422 - 422 - Unprocessable Entity - **status** (boolean) (example: false) - **message** (string) (example: "The given data was invalid.") - **data** (object) (example: null) - **errors** (object) - **filter.uuid** (object) (example: ["The business UUID must be a valid UUID."]) - **filter.name** (object) (example: ["The business name must be a string.","The business name may not be greater than 255 characters."]) - **sort** (object) (example: ["The sort option must be one of the followings: created_at, -created_at, name, -name"]) - **per_page** (object) (example: ["The per page may not be greater than 200.","The per page must be at least 1.","The per page must be an integer."]) - **page** (object) (example: ["The page must be an integer.","The page must be at least 1."]) - **request_id** (string (uuid)) (example: "2d6a4c39-8fcf-4d80-9189-b4764eac31f2") #### 500 - Internal Server Error - **status** (boolean) (example: false) - **message** (string) (example: "Something went wrong on our side. Please contact support.") - **data** (object) (example: null) - **errors** (object) (example: null) - **request_id** (string (uuid)) (example: "2d6a4c39-8fcf-4d80-9189-b4764eac31f2") ### Example Usage ```bash curl -X GET "https://api.grailpay.com/api/v3/businesses?filter[uuid]=7c41f6a2-a4b9-4df8-9225-2c1b7312042e&filter[name]=John Inc&sort=-created_at&page=1&per_page=15" ``` ``` -------------------------------- ### GET /3p/api/v2/users Source: https://api.grailpay.com/docs **This Endpoint is Sunsetting and you should use the stable endpoint. Sunsetting APIs that are still supported but scheduled for deprecation.** ```markdown ### Parameters - **role** (string, query, optional): Filter users by role - **start_date** (string (date), query, optional): Filter users created after this date (YYYY-MM-DD) - **end_date** (string (date), query, optional): Filter users created before this date (YYYY-MM-DD) - **sort_order** (string (asc|desc), query, optional): Sort order (asc or desc) - **page** (integer, query, optional): Page number for pagination - **per_page** (integer, query, optional): Number of users per page ### Responses #### 200 - Users retrieved successfully - **data** (array (union)) Array items: - **client_reference_id** (string) (example: "company_45458") - **uuid** (string) (example: "9d264b4a-006c-4d01-acd0-730e27784c59") - **first_name** (string) (example: "John") - **last_name** (string) (example: "Dew") - **email** (string) (example: "john.dew@example.com") - **phone** (string) (example: "2457856490") - **business** (object) - **name** (string) (example: "John Incorporation") - **tin** (string) (example: "922454715") - **address_type** (string) (example: "Registered") - **address** (object) - **street_address** (string) (example: "10554 W Quarles Ave") - **city** (string) (example: "Littleton") - **state** (string) (example: "CO") - **country** (string) (example: "US") - **zip** (string) (example: "80127") - **trading_name** (string) (example: "John Incorporation") - **entity_type** (string) (example: "Sole Trader") - **incorporation_date** (string (date)) (example: "2024-02-02") - **incorporation_state** (string) (example: "CO") - **industry** (string) (example: "Nature of business") - **industry_classification** (object) - **code_type** (string) (example: "SIC") - **codes** (array (string)) (example: ["NAICS 42","NAICS 45"]) - **description** (string) (example: "NAICS") - **source_of_wealth** (string) (example: "2344") - **source_of_funds** (string) (example: "Industry") - **first_transaction_completed_at** (string (date-time)) (example: "2024-05-02 16:14:25") - **product_type** (string) (example: "financial") - **registered_as_inactive** (boolean) (example: false) - **transaction_fee_percent** (number (float)) (example: 25) - **transaction_fee_fixed** (integer) (example: 500) - **maximum_transaction_fee** (integer) (example: 500) - **user_status** (string) (example: "APPROVED") - **kyb_status** (string) (example: "APPROVED") - **kyb_rejected_reason** (string) (example: null) - **financing_credit_balance** (number (float)) (example: null) - **payout_type** (string) (example: "batch") - **role** (string) (example: "business") - **vendor_name** (string) (example: "Fintech") - **business_owners** (array (object)) Array items: - **first_name** (string) (example: "John") - **last_name** (string) (example: "Dew") - **dob** (string (date)) (example: "2023-04-11") - **ssn9** (string) (example: "123456789") - **address_line_1** (string) (example: "10554 W Quarles Ave") - **city** (string) (example: "Littleton") - **state** (string) (example: "CO") - **zip** (string) (example: "80127") - **is_beneficial_owner** (boolean) (example: true) - **is_director** (boolean) (example: false) - **is_account_owner** (boolean) (example: false) - **is_share_holder** (boolean) (example: false) - **is_significant_control_person** (boolean) (example: false) - **ownership_percentage** (number (float)) (example: 25) - **email** (string) (example: "john.dew@example.com") - **phone** (string) (example: "2457856490") - **nationality** (string) (example: "US") - **occupation** (string) (example: "Co-founder") - **first_transaction_completed_at** (string (date-time)) (example: "2024-05-02 16:14:25") - **product_type** (string) (example: "financial") - **created_at** (string (date-time)) (example: "2024-10-02 14:06:14") - **updated_at** (string (date-time)) (example: "2024-10-02 14:06:17") - **pagination** (object) - **current_page** (integer) (example: 1) - **total_pages** (integer) (example: 5) - **total_items** (integer) (example: 50) - **per_page** (integer) (example: 10) #### 400 - Invalid request parameters - **status** (boolean) (example: false) - **message** (string) (example: "Unknown parameters: per_page, role") - **data** (object) (example: null) - **errors** (object) - **error_code** (string) (example: null) #### 401 - Unauthorized - **status** (boolean) (example: false) - **message** (string) (example: "Invalid Token") - **data** (string) (example: null) - **errors** (string) (example: null) - **error_code** (string) (example: null) ### Example Usage ```bash curl -X GET "https://api.grailpay.com/3p/api/v2/users?role=string&start_date=2023-01-01&end_date=2023-01-01&sort_order=asc&page=0&per_page=0" ``` ``` -------------------------------- ### API Overview: GrailPay ACH API Source: https://api.grailpay.com/docs API Documentation for moving funds via ACH using the GrailPay ACH API ```yaml # GrailPay ACH API # Version: 2025.12.19.2 API Documentation for moving funds via ACH using the GrailPay ACH API # Base URL: https://api.grailpay.com ``` -------------------------------- ### GET /3p/api/v1/transaction/list Source: https://api.grailpay.com/docs Get a list of transactions. **This Endpoint is Sunsetting and you should use the stable endpoint. Sunsetting APIs that are still supported but scheduled for deprecation.** ```markdown ### Parameters - **startDate** (string (date), query, optional): Filter transactions created after this date (YYYY-MM-DD) - **endDate** (string (date), query, optional): Filter transactions created before this date (YYYY-MM-DD) - **page** (integer, query, optional): Page number for pagination - **pageSize** (integer, query, optional): Number of transactions per page ### Responses #### 200 - Successful response - **status** (boolean) (example: false) - **message** (string) (example: "") - **data** (object) - **transactions** (array (V1TransactionResponse)) Array items: - **uuid** (string) (example: "9c330a70-84de-46c3-a380-70b34799b1d3") - **payer_uuid** (string) (example: "7d021f9a-b5f4-4668-8d78-0f448f55f984") - **payee_uuid** (string) (example: "ec82930a-b59e-4ed2-83dd-0f041bfa5baa") - **transaction_status** (string) (example: "PAYOUT_COMPLETE") - **currency** (string) (example: "USD") - **amount** (integer) (example: 57163) - **transaction_fee** (integer) (example: 0) - **client_reference_id** (string) (example: "stageN5@123") - **payout_delay_days** (integer) (example: 0) - **company_name** (string) (example: "a-z, A-Z, 12-'3.") - **description** (string) (example: null) - **addenda** (string) (example: null) - **type** (string) (example: "api") - **spped** (string) (example: "sameday") - **processor_mid** (string) (example: "123131123") - **batch_payout_id** (string) (example: "78e84f6a-c36e-4c9e-86bf-6ff4a492be90") - **capture_status** (string) (example: "CAPTURE_COMPLETE") - **payout_status** (string) (example: "PAYOUT_COMPLETE") - **clawback_status** (string) (example: null) - **reverse_payout_status** (string) (example: null) - **failure_code** (string) (example: null) - **failure_reason** (string) (example: null) - **cancel_reason** (string) (example: null) - **payer_bank_account** (object) - **uuid** (string) (example: "9c3306a6-743f-4f8f-9a33-dcd081a06204") - **aggregator_type** (string) (example: "bank_link") - **payee_bank_account** (object) - **payout_ach_return_code** (string (date-time)) (example: "R01") - **payout_failure_reason** (string (date-time)) (example: "Insufficient funds") - **trace_ids** (object) - **capture_trace_id** (string) (example: "ach_92lhg3vbf76qxzp") - **payout_trace_id** (string) (example: "ach_57ytkdw84mncxvq") - **reverse_payout_trace_id** (string) (example: "") - **refunds** (array (object)) Array items: - **refund_uuid** (string) (example: "") - **refund_capture_trace_id** (string) (example: "") - **refund_payout_trace_id** (string) (example: "") - **created_at** (string (date-time)) (example: "2024-06-03 15:58:44") - **updated_at** (string (date-time)) (example: "2024-06-04 18:30:30") - **pagination** (object) - **totalItems** (integer) (example: 53) - **pageSize** (integer) (example: 10) - **currentPage** (integer) (example: 6) - **totalPages** (integer) (example: 6) - **errors** (string) (example: null) - **error_code** (string) (example: null) #### 401 - Unauthorized - **status** (boolean) (example: false) - **message** (string) (example: "Invalid Token") - **data** (string) (example: null) - **errors** (string) (example: null) - **error_code** (string) (example: null) #### 403 - Forbidden - **status** (boolean) (example: false) - **message** (string) (example: "Forbidden") - **data** (object) (example: null) - **errors** (string) (example: null) - **error_code** (string) (example: null) #### 404 - Transaction not found - **status** (boolean) (example: false) - **message** (string) (example: "Transaction not found") - **data** (object) (example: null) - **errors** (string) (example: null) - **error_code** (string) (example: null) ### Example Usage ```bash curl -X GET "https://api.grailpay.com/3p/api/v1/transaction/list?startDate=2023-01-01&endDate=2023-01-01&page=0&pageSize=0" ``` ``` -------------------------------- ### GET /3p/api/v1/webhook Source: https://api.grailpay.com/docs Retrieve a list of registered webhooks for the authenticated user. ```markdown ### Responses #### 200 - Successful response - **status** (boolean) (example: true) - **message** (string) (example: "") - **data** (array (object)) (example: [{"event_name":"TransactionStarted","webhook_url":"https://example.com/webhook","created_at":"2023-08-01 11:32:28","updated_at":"2023-08-01 11:32:28"},{"event_name":"TransactionCompleted","webhook_url":"https://example.com/webhook","created_at":"2023-08-01 11:32:28","updated_at":"2023-08-01 11:32:28"}]) Array items: - **event_name** (string) (example: "TransactionStarted") - **webhook_url** (string) (example: "https://example.com/webhook") - **created_at** (string (date-time)) (example: "2023-08-01 11:32:28") - **updated_at** (string (date-time)) (example: "2023-08-01 11:32:28") - **errors** (string) (example: null) - **error_code** (string) (example: null) #### 401 - Unauthorized - **status** (boolean) (example: false) - **message** (string) (example: "Invalid Token") - **data** (string) (example: null) - **errors** (string) (example: null) - **error_code** (string) (example: null) #### 403 - Forbidden **Error403ForbiddenResponse** - **status** (boolean) (example: false) - **message** (string) (example: "Access denied. Please use a secure (HTTPS) connection.") - **data** (string) (example: null) - **errors** (string) (example: null) - **error_code** (string) (example: null) ### Example Usage ```bash curl -X GET "https://api.grailpay.com/3p/api/v1/webhook" ``` ``` -------------------------------- ### POST /api/v3/businesses Source: https://api.grailpay.com/docs This endpoint allows for adding a new Business to the GrailPay ACH API Ecosystem. The only item that is required is the Bank Account object, but we strongly encourage that you supply as much information as possible. When including the bank account, you can pass either Plaid information or account and routing information. You should never pass both. ```markdown ### Request Body **Content-Type:** application/json - **client_reference_id** (string) (example: "reference_12345") - **billing_merchant_uuid** (string (uuid)) (example: "6a8fc154-1a50-483b-a690-fd1dfaf9408b") - **billing_processor_mid** (string) (example: "12345678") - **payout_type** (string (batch|individual)) (example: "batch") ("batch"|"individual") - **person** (object): Schema for a person request object - **first_name** (string) (example: "John") - **last_name** (string) (example: "Doe") - **email** (string (email)) (example: "john.doe@example.com") - **phone** (string) (example: "2457856490") - **address** (object) - **line_1** (string) (example: "10554 W Quarles Ave") - **line_2** (string) (example: "Suite 123") - **city** (string) (example: "Littleton") - **state** (string) (example: "CO") - **zip** (string) (example: "80127") - **business** (object): Schema for a business request object - **name** (string) (example: "Acme Inc.") - **trading_name** (string) (example: "Acme Corp") - **address** (object) - **bank_account** (object) - **plaid_account_id** (string) - **plaid_access_token** (string) - **account_number** (string) (example: "9876543210") - **routing_number** (string) (example: "021000021") - **account_name** (string) (example: "John Doe") - **account_type** (string (checking|savings)) (example: "checking") ("checking"|"savings") - **actions** (object) - **account_intelligence** (object) - **version** (string (v1|v2|v3)) (required) (example: "v3") ("v1"|"v2"|"v3") - **name_match** (boolean) (example: true) ### Responses #### 201 - The response returned from a successful call to onboard a business. - **status** (boolean) (example: true) - **message** (string) (example: "This business was onboarded successfully.") - **data** (object) - **business** (object) - **uuid** (string) (example: "a77dbb10-3686-4caf-9acd-52b3cc455db2") - **business_type** (string) (example: "business") - **name** (string) (example: "Acme Inc.") - **trading_name** (string) (example: "Acme Corp") - **payout_type** (string) (example: "batch") - **client_reference_id** (string) (example: "reference_12345") - **address** (object) - **line_1** (string) (example: "10554 W Quarles Ave") - **line_2** (string) (example: "Suite 123") - **city** (string) (example: "Littleton") - **state** (string) (example: "CO") - **zip** (string) (example: "80127") - **timestamps** (object) - **created_at** (string) (example: "2024-06-25 13:57:03") - **relations** (object) - **person** (object) - **uuid** (string (uuid)) (example: "7c41f6a2-a4b9-4df8-9225-2c1b7312042e") - **account_intelligence** (object) - **confidence_score** (number (float)) (example: 0.81) - **decisioning_insights** (object) - **account_duplicate** (boolean) (example: false) - **days_since_first_seen** (integer) (example: -1) - **days_since_last_transaction** (integer) (example: -1) - **has_negative_transactions** (boolean) (example: false) - **has_paid_transactions** (boolean) (example: false) - **has_positive_transactions** (boolean) (example: true) - **name_match** (string) (example: "yes") - **phone_number_present** (boolean) (example: false) - **valid_routing_number** (boolean) (example: true) - **version** (string) (example: "v3") - **errors** (object) (example: null) - **request_id** (string (uuid)) (example: "2d6a4c39-8fcf-4d80-9189-b4764eac31f2") #### 400 - 400 - Bad Request - **status** (boolean) (example: false) - **message** (string) (example: "Invalid Parameters Received") - **data** (string) (example: null) - **errors** (string) (example: null) - **request_id** (string (uuid)) (example: "2d6a4c39-8fcf-4d80-9189-b4764eac31f2") #### 401 - 401 - Unauthorized - **status** (boolean) (example: false) - **message** (string) (example: "Invalid token.") - **data** (object) (example: null) - **errors** (object) (example: null) - **request_id** (string (uuid)) (example: "2d6a4c39-8fcf-4d80-9189-b4764eac31f2") #### 409 - Conflict **V3ErrorIdempotency409** - **status** (boolean) (example: false) - **message** (string) (example: "The request cannot be executed due to a detected conflict with a duplicate request.") - **data** (object) (example: null) - **errors** (object) (example: null) - **request_id** (string (uuid)) (example: "2d6a4c39-8fcf-4d80-9189-b4764eac31f2") #### 422 - 422 - Unprocessable Entity - **status** (boolean) (example: false) - **message** (string) (example: "The given data was invalid.") - **data** (object) (example: null) - **errors** (object) - **client_reference_id** (object) (example: ["The client reference ID must be a string.","The client reference ID may not be greater than 255 characters."]) - **billing_merchant_uuid** (object) (example: ["The billing merchant UUID must be a valid UUID.","The billing merchant UUID does not exist.","The billing merchant UUID is deleted and cannot be used for billing purposes."]) - **billing_processor_mid** (object) (example: ["The billing processor MID must be a string.","The billing processor MID does not exist.","The billing processor MID is deleted and cannot be used for billing purposes."]) - **payout_type** (object) (example: ["The payout type must be a string.","The payout type must be one of the followings: individual, batch"]) - **bank_account** (object) (example: ["You cannot provide both plaid details and manual bank account fields.","This person did not meet the confidence score threshold of 0.5 and has been rejected.","Invalid plaid account ID or access token.","The bank routing number is not valid."]) - **bank_account.plaid_account_id** (object) (example: ["The plaid account ID is required when plaid account details is present.","The plaid account ID must be a string."]) - **bank_account.plaid_access_token** (object) (example: ["The plaid access token is required when plaid account details is present.","The plaid access token must be a string."]) - **bank_account.account_number** (object) (example: ["The bank account number is required when any manual bank account field is provided.","The bank account number must be a string.","The bank account number may not be greater than 17 characters."]) - **bank_account.routing_number** (object) (example: ["The bank routing number is required when any manual bank account field is provided.","The bank routing number must be 9 digits."]) - **bank_account.account_name** (object) (example: ["The bank account name is required when any manual bank account field is provided.","The bank account name must be a string.","The bank account name may not be greater than 255 characters."]) - **bank_account.account_type** (object) (example: ["The bank account type is required when any manual bank account field is provided.","The bank account type must be one of the followings: savings, checking"]) - **actions.account_intelligence** (object) (example: ["The person first and last name are required when name match is true.","Name Match is only available when using Account Intelligence Version 3. Please update your request and try again."]) - **actions.account_intelligence.version** (object) (example: ["The version is required when account intelligence is present.","The version must be a string.","The version must be one of the followings: v1, v2, v3"]) - **actions.account_intelligence.name_match** (object) (example: ["The name match field must be true or false."]) - **person.first_name** (object) (example: ["The first name must be a string.","The first name may not be greater than 56 characters."]) - **person.last_name** (object) (example: ["The last name must be a string.","The last name may not be greater than 56 characters."]) - **person.email** (object) (example: ["The email must be a valid email address."]) - **person.phone** (object) (example: ["The phone must be a string.","Phone numbers should consist of 10 digits and should not contain the +1 prefix or any special characters."]) - **person.address.line_1** (object) (example: ["The address line 1 is required when address is present.","The address line 1 must be a string.","The address line 1 may not be greater than 255 characters."]) - **person.address.line_2** (object) (example: ["The address line 2 must be a string.","The address line 2 may not be greater than 255 characters."]) - **person.address.city** (object) (example: ["The city name is required when address is present.","The city name must be a string.","The city name may not be greater than 56 characters.","The city name field only accepts letters (a-z, A-Z), numbers (0-9), hyphens (-), periods (.), apostrophes ('), and spaces."]) - **person.address.state** (object) (example: ["The state is required when address is present.","The state must be a string.","The state may not be greater than 2 characters.","The state must be valid US state."]) - **person.address.zip** (object) (example: ["The zip code is required when address is present.","The zip code must be a string.","The zip code must consist of 5 digit."]) - **business.name** (object) (example: ["The name must be a string.","The name may not be greater than 255 characters."]) - **business.trading_name** (object) (example: ["The trading name must be a string.","The trading name may not be greater than 255 characters."]) - **business.address.line_1** (object) (example: ["The address line 1 is required when address is present.","The address line 1 must be a string.","The address line 1 may not be greater than 255 characters."]) - **business.address.line_2** (object) (example: ["The address line 2 must be a string.","The address line 2 may not be greater than 255 characters."]) - **business.address.city** (object) (example: ["The city name is required when address is present.","The city name must be a string.","The city name may not be greater than 56 characters.","The city name field only accepts letters (a-z, A-Z), numbers (0-9), hyphens (-), periods (.), apostrophes ('), and spaces."]) - **business.address.state** (object) (example: ["The state is required when address is present.","The state must be a string.","The state may not be greater than 2 characters.","The state must be valid US state."]) - **business.address.zip** (object) (example: ["The zip code is required when address is present.","The zip code must be a string.","The zip code must consist of 5 digit."]) - **request_id** (string (uuid)) (example: "2d6a4c39-8fcf-4d80-9189-b4764eac31f2") #### 500 - Internal Server Error - **status** (boolean) (example: false) - **message** (string) (example: "There was a problem on the server and the action could not be completed. Please try again.") - **data** (object) (example: null) - **errors** (object) (example: null) - **request_id** (string (uuid)) (example: "2d6a4c39-8fcf-4d80-9189-b4764eac31f2") ### Example Usage ```bash curl -X POST "https://api.grailpay.com/api/v3/businesses" \ -H "Content-Type: application/json" \ -d '{ "client_reference_id": "reference_12345", "billing_merchant_uuid": "6a8fc154-1a50-483b-a690-fd1dfaf9408b", "billing_processor_mid": "12345678", "payout_type": "batch", "person": "value", "business": "value", "bank_account": "value", "actions": { "account_intelligence": "value" } }' ``` ``` -------------------------------- ### GET /3p/api/v1/refunds/{refund_uuid} Source: https://api.grailpay.com/docs This API returns the details of a refund request. ```markdown ### Parameters - **refund_uuid** (string (uuid), path, required): Refund UUID ### Responses #### 200 - Refund details retrieved successfully - **status** (boolean) (example: true) - **message** (string) - **data** (object) - **transaction_uuid** (string (uuid)) (example: "9c2af585-9fea-4c47-ac12-e00f42943cd8") - **refund_uuid** (string (uuid)) (example: "9c2b3589-160b-45a6-bbad-2694fdd8aeae") - **amount** (number (float)) (example: 10) - **status** (string) (example: "REFUND_COMPLETE") - **client_reference_id** (string) (example: "infiniRefundW@12") - **payer_uuid** (string (uuid)) (example: "4a9d2b92-55e6-4234-8732-a4296f73ee21") - **payee_uuid** (string (uuid)) (example: "7a70d56c-ee4d-43f1-9021-fc060fb4c460") - **capture_delay_days** (integer) (example: 2) - **payout_delay_days** (integer) (example: 5) - **created_at** (string (datetime)) (example: "2024-03-13T12:00:00Z") - **updated_at** (string (datetime)) (example: "2024-03-14T12:00:00Z") - **failure_code** (string) (example: "R01") - **failure_reason** (string) (example: "Insufficient Funds") - **errors** (string) (example: null) - **error_code** (string) (example: null) #### 401 - Unauthorized - **status** (boolean) (example: false) - **message** (string) (example: "Invalid Token") - **data** (string) (example: null) - **errors** (string) (example: null) - **error_code** (string) (example: null) #### 404 - Refund not found - **status** (boolean) (example: false) - **message** (string) (example: "Refund not found.") - **data** (object) (example: null) - **errors** (array (string)) (example: null) - **error_code** (string) (example: null) ### Example Usage ```bash curl -X GET "https://api.grailpay.com/3p/api/v1/refunds/{refund_uuid}" ``` ``` -------------------------------- ### Schema: BalanceWithApproval Source: https://api.grailpay.com/docs Schema definition for BalanceWithApproval ```markdown ## Schema: BalanceWithApproval Schema definition for BalanceWithApproval **Type:** object - **approval** (boolean) (example: true) ```