Test a payment provider
Sends a signed describe request to a payment source's endpoint and returns the operations it implements.
Changes nothing. environment=test sends a test request to the endpoint test requests go to: the testEndpoint, or the endpoint of a source without one. By default a production request tests the endpoint; production requests never go to the testEndpoint. Only a payment source can be tested. The message says what to fix.
Guide: Payment providers
A project secret key: vh_sk_... for production, vh_sk_test_... for test. Keep it on your servers.
In: header
Path parameters
The project's id, proj_.... A secret key works only in the project it belongs to.
The id of the project's payment provider connection, pp_conf_....
Query parameters
Which endpoint to test: production, the default, tests endpoint; test tests testEndpoint, or endpoint when there is none.
Value in
- "production"
- "test"
Examples
curl -X POST "https://api.voidhash.com/api/v1/projects/proj_tz4a98xxat96iws9zmbrgj3a/payment-providers/pp_conf_m2c8v5n1x7z4q9w3e6r0t8y2/test?environment=production" \ -H "Authorization: Bearer vh_sk_..."{ "operations": [ "catalog.list", "history.list", "subscription.get" ], "sdk": { "name": "@voidhash/node", "version": "0.0.1-alpha.1" }}{ "error": { "type": "invalid_request", "code": "payment_source_required", "message": "Only a payment source reports its own purchases; a store's purchases come from the store.", "param": "paymentProviderId" }}{ "error": { "type": "unauthenticated", "code": "invalid_api_key", "message": "This secret key is not valid." }}{ "error": { "type": "permission_denied", "code": "permission_denied", "message": "Insufficient permissions." }}{ "error": { "type": "not_found", "code": "project_not_found", "message": "There is no project proj_tz4a98xxat96iws9zmbrgj3a, or this credential cannot use it.", "param": "projectId" }}{ "error": { "type": "conflict", "code": "payment_source_endpoint_not_configured", "message": "The payment source has no endpoint; add one to its settings" }}{ "error": { "type": "internal", "code": "internal_error", "message": "Something went wrong on our side. Try again, and contact support with the Request-Id header if it keeps failing." }}{ "error": { "type": "unavailable", "code": "payment_source_endpoint_unavailable", "message": "The endpoint answered 503" }}Response body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
Errors
| Status | type | code | When |
|---|---|---|---|
| 400 | invalid_request | payment_source_required | For a store. |
| 409 | conflict | payment_source_endpoint_not_configured | For a source without an endpoint for the environment. |
| 409 | conflict | payment_source_endpoint_rejected | When the endpoint refuses the request. |
| 503 | unavailable | payment_source_endpoint_unavailable | When it does not answer or answers outside the protocol. |
| 503 | unavailable | payment_source_endpoint_invalid_response | When it does not answer or answers outside the protocol. |
It can also fail with the errors every operation shares, such as unauthenticated; see Errors.
More in Payment providers
Something wrong or missing on this page? Tell us by email or on Discord.