Preview: SendMock has no stable release yet. These docs follow develop.
SendMock
DeeperPayments

Gateways in depth

Every control and text of Payments > Gateways and the gateway editor's tabs.

Every control and text this screen shows, in screen order. The list is read from the demo by a crawl, and CI fails when the screen changes without its entry here.

Payments > Gateways holds the payment providers SendMock emulates: their checkout, redirect and notifications.

The screen as a whole: Gateways.

Gateways, with a number on each control

The numbers match the entries below. The picture shows the first screenful; controls further down, and texts, have no marker.

On the screen

1. Gateways

Heading.

  • What it does: Names the open screen in the header.

2. Read the Gateways guide

Link.

  • What it does: Opens this screen's page in the user guide, in a new tab.
  • Links to: Gateways.

3. Payment gateways

Heading.

4. The providers SendMock emulates: what their checkout offers, what they send back to your app, and the notifications they post.

Text.

  • What it does: Explains the screen.

5. Add gateway

Button.

6. Gateway

Column.

  • What it does: The gateway's name.

7. Key

Column.

  • What it does: Its key: the provider value in the API and its /providers/<key>/ paths.

8. Methods offered

Column.

  • What it does: The payment methods its checkout offers.

9. Notifications to

Column.

  • What it does: The webhook endpoint its notifications go to.

10. Enabled

Column.

  • What it does: Whether it takes payments.

11. … enabled

Switch, in each row.

12. Edit …

Button, in each row.

Add a payment gateway dialog

13. Add a payment gateway

Heading.

  • What it does: The Add a payment gateway dialog.

14. Emulate a provider SendMock does not ship; you set its checkout, redirect and notification next.

Text.

15. Name

Field.

  • What it does: The gateway's name.

16. Key

Field.

  • What it does: Its key, fixed once added.

17. The provider value in the API; fixed once added.

Text.

  • What it does: Explains the key.

18. Start from

Drop-down.

  • What it does: Blank, or a built-in gateway to copy.

19. Cancel

Button.

  • What it does: Closes the dialog or editor without saving.

20. Add gateway

Button.

21. Close

Button.

  • What it does: Closes the dialog or editor without saving.

Gateway editor

22. Stripe

Heading.

  • What it does: The gateway open in the editor (here Stripe).

23. Built-in gateway, key stripe . # payments.

Text.

  • What it does: Whether it is built in, its key and how many payments it has.

24. General

Tab.

  • What it does: Name, key, colour and whether it is on.

25. Checkout

Tab.

  • What it does: The methods its checkout page offers, and a test checkout.

26. Merchant

Tab.

  • What it does: Its merchant credentials and where its notifications go.

27. Redirect

Tab.

  • What it does: How the customer is sent back to your app, and with which fields.

28. Notification

Tab.

  • What it does: The notification it posts to your app: format, event names, body and headers.

29. Name

Field.

  • What it does: The gateway's name.

30. Key

Field.

  • What it does: Its key, fixed once added.

31. The provider value in the API and in /providers/<key>/... paths; fixed once added.

Text.

  • What it does: Explains the key.

32. Accent colour

Field.

  • What it does: Picks the checkout page's colour.

33. Accent

Field.

  • What it does: The colour as a hex value.

34. Used on its checkout pages.

Text.

  • What it does: Explains the accent.

35. Enabled

Switch.

  • What it does: Whether the gateway takes payments.

36. Reset to default

Button.

37. Cancel

Button.

  • What it does: Closes the dialog or editor without saving.

38. Save gateway

Button.

39. Close

Button.

  • What it does: Closes the dialog or editor without saving.

Gateway editor, Checkout tab

40. Methods offered

Heading.

  • What it does: The methods its checkout page offers, in order.

41. One method shows its flow directly; several show a picker, in this order.

Text.

  • What it does: Explains how the checkout page shows the methods.

42. Move Card up

Button.

  • What it does: Shows the method earlier (here Card).

43. Move Card down

Button.

  • What it does: Shows the method later.

44. Remove Card

Button.

  • What it does: Stops offering the method.

45. Add a method

Drop-down.

  • What it does: Offers another method.
  • Links to: Methods.

46. Creates a test payment with this gateway and opens its checkout page.

Text.

  • What it does: Explains Open a test checkout.

47. Open a test checkout

Button.

Gateway editor, Merchant tab

48. Templates read them as merchant.<name> . Secrets stay masked; the preview masks them too.

Text.

  • What it does: Explains the merchant credentials.

49. Credential # name

Field.

  • What it does: A credential's name, such as secret_key.

50. Credential # value

Field.

  • What it does: Its value; a secret one is masked.

51. Secret

Checkbox.

  • What it does: Masks the value everywhere.

52. Reveal secret_key

Button.

53. Remove credential

Button.

  • What it does: Removes the credential.

54. Reveal webhook_secret

Button.

55. Add credential

Button.

  • What it does: Adds a credential.

56. Notification endpoint

Drop-down.

  • What it does: The webhook endpoint its notifications go to.
  • Links to: Endpoints.

57. Its IPN or webhook deliveries go to this webhook endpoint, with retries and replay.

Text.

  • What it does: Explains the notification endpoint.

Gateway editor, Redirect tab

58. GET The fields go in the query string (Stripe, PayPal).

Choice.

  • What it does: The customer returns with a GET, the fields in the query string.

59. POST The browser posts a form with the fields (SSLCommerz).

Choice.

  • What it does: The customer's browser posts a form back to your app.

60. Type {{ for suggestions; {{ redirect.status }} is this gateway's event name for the outcome.

Text.

  • What it does: Explains the redirect field templates.

61. Redirect field # name

Field.

  • What it does: A redirect field's name.

62. Redirect field # template

Field.

  • What it does: Its value template.

63. Redirect field # sent

Drop-down.

  • What it does: When it is sent: always, or only on success or failure.

64. Remove redirect field

Button.

  • What it does: Removes the field.

65. Add field

Button.

  • What it does: Adds a redirect field.

66. Preview

Tab.

  • What it does: Shows the redirect and notification as they would be sent.

67. Reference

Tab.

  • What it does: Lists every value the templates can read.

68. Preview payment

Drop-down.

  • What it does: The payment the preview uses.

69. Preview event

Drop-down.

  • What it does: The event the preview renders.

70. Preview redirect outcome

Drop-down.

71. Redirect

Heading.

  • What it does: The redirect as it would be sent.

72. GET http://localhost:#/checkout/success

Text.

  • What it does: The redirect's method and URL (here a GET to the demo app).

73. Notification

Heading.

  • What it does: The notification as it would be sent.

74. payment_intent.succeeded

Text.

  • What it does: The gateway's event name for the preview event (here Stripe's).

Gateway editor, Notification tab

75. JSON application/json (Stripe, PayPal, bKash).

Choice.

  • What it does: The notification body is JSON.

76. Form application/x-www-form-urlencoded; write the body as name=value&... (SSLCommerz IPN).

Choice.

  • What it does: The notification body is a form.

77. This gateway's name for each event, read as {{ event.name }} . Leave one blank and nothing is sent for it.

Text.

  • What it does: Explains the event names.

78. Event name for payment.created

Field.

  • What it does: The gateway's own name for payment.created; blank sends nothing for it.

79. Event name for payment.authorized

Field.

  • What it does: The gateway's own name for payment.authorized; blank sends nothing for it.

80. Event name for payment.succeeded

Field.

  • What it does: The gateway's own name for payment.succeeded; blank sends nothing for it.

81. Event name for payment.failed

Field.

  • What it does: The gateway's own name for payment.failed; blank sends nothing for it.

82. Event name for payment.canceled

Field.

  • What it does: The gateway's own name for payment.canceled; blank sends nothing for it.

83. Event name for payment.refunded

Field.

  • What it does: The gateway's own name for payment.refunded; blank sends nothing for it.

84. Event name for payment.partially_refunded

Field.

  • What it does: The gateway's own name for payment.partially_refunded; blank sends nothing for it.

85. Event name for payment.dispute_opened

Field.

  • What it does: The gateway's own name for payment.dispute_opened; blank sends nothing for it.

86. Event name for payment.dispute_updated

Field.

  • What it does: The gateway's own name for payment.dispute_updated; blank sends nothing for it.

87. Event name for payment.dispute_closed

Field.

  • What it does: The gateway's own name for payment.dispute_closed; blank sends nothing for it.

88. Event name for checkout.completed

Field.

  • What it does: The gateway's own name for checkout.completed; blank sends nothing for it.

89. Event name for checkout.expired

Field.

  • What it does: The gateway's own name for checkout.expired; blank sends nothing for it.

90. Notification body template

Field.

  • What it does: The notification body, in the template language.

91. Header # name

Field.

  • What it does: A notification header's name.

92. Header # value

Field.

  • What it does: Its value template, such as a signature.

93. Remove header

Button.

  • What it does: Removes the header.

94. Add header

Button.

  • What it does: Adds a header.

95. Preview

Tab.

  • What it does: Shows the redirect and notification as they would be sent.

96. Reference

Tab.

  • What it does: Lists every value the templates can read.

97. Preview payment

Drop-down.

  • What it does: The payment the preview uses.

98. Preview event

Drop-down.

  • What it does: The event the preview renders.

99. Preview redirect outcome

Drop-down.

100. Redirect

Heading.

  • What it does: The redirect as it would be sent.

101. GET http://localhost:#/checkout/success

Text.

  • What it does: The redirect's method and URL (here a GET to the demo app).

102. Notification

Heading.

  • What it does: The notification as it would be sent.

103. payment_intent.succeeded

Text.

  • What it does: The gateway's event name for the preview event (here Stripe's).

When the data cannot load

104. Could not load the gateways. Try again

Message.

  • What it does: Shown when the gateways could not be loaded.
  • Errors: Check SendMock is running, then press Try again.

105. Could not load the gateways.

Text.

  • What it does: The message inside the alert.

106. Try again

Button.

On this page

On the screen1. Gateways2. Read the Gateways guide3. Payment gateways4. The providers SendMock emulates: what their checkout offers, what they send back to your app, and the notifications they post.5. Add gateway6. Gateway7. Key8. Methods offered9. Notifications to10. Enabled11. … enabled12. Edit …Add a payment gateway dialog13. Add a payment gateway14. Emulate a provider SendMock does not ship; you set its checkout, redirect and notification next.15. Name16. Key17. The provider value in the API; fixed once added.18. Start from19. Cancel20. Add gateway21. CloseGateway editor22. Stripe23. Built-in gateway, key stripe . # payments.24. General25. Checkout26. Merchant27. Redirect28. Notification29. Name30. Key31. The provider value in the API and in /providers/<key>/... paths; fixed once added.32. Accent colour33. Accent34. Used on its checkout pages.35. Enabled36. Reset to default37. Cancel38. Save gateway39. CloseGateway editor, Checkout tab40. Methods offered41. One method shows its flow directly; several show a picker, in this order.42. Move Card up43. Move Card down44. Remove Card45. Add a method46. Creates a test payment with this gateway and opens its checkout page.47. Open a test checkoutGateway editor, Merchant tab48. Templates read them as merchant.<name> . Secrets stay masked; the preview masks them too.49. Credential # name50. Credential # value51. Secret52. Reveal secret_key53. Remove credential54. Reveal webhook_secret55. Add credential56. Notification endpoint57. Its IPN or webhook deliveries go to this webhook endpoint, with retries and replay.Gateway editor, Redirect tab58. GET The fields go in the query string (Stripe, PayPal).59. POST The browser posts a form with the fields (SSLCommerz).60. Type {{ for suggestions; {{ redirect.status }} is this gateway's event name for the outcome.61. Redirect field # name62. Redirect field # template63. Redirect field # sent64. Remove redirect field65. Add field66. Preview67. Reference68. Preview payment69. Preview event70. Preview redirect outcome71. Redirect72. GET http://localhost:#/checkout/success73. Notification74. payment_intent.succeededGateway editor, Notification tab75. JSON application/json (Stripe, PayPal, bKash).76. Form application/x-www-form-urlencoded; write the body as name=value&... (SSLCommerz IPN).77. This gateway's name for each event, read as {{ event.name }} . Leave one blank and nothing is sent for it.78. Event name for payment.created79. Event name for payment.authorized80. Event name for payment.succeeded81. Event name for payment.failed82. Event name for payment.canceled83. Event name for payment.refunded84. Event name for payment.partially_refunded85. Event name for payment.dispute_opened86. Event name for payment.dispute_updated87. Event name for payment.dispute_closed88. Event name for checkout.completed89. Event name for checkout.expired90. Notification body template91. Header # name92. Header # value93. Remove header94. Add header95. Preview96. Reference97. Preview payment98. Preview event99. Preview redirect outcome100. Redirect101. GET http://localhost:#/checkout/success102. Notification103. payment_intent.succeededWhen the data cannot load104. Could not load the gateways. Try again105. Could not load the gateways.106. Try again