diff --git a/contents/push-to-card.md b/contents/push-to-card.md
index 517a574..684116d 100644
--- a/contents/push-to-card.md
+++ b/contents/push-to-card.md
@@ -6,30 +6,15 @@ pageTitle: Push to Card
body_class: push-to-card
subtitle:
- heading: Send money to a customer’s checking account using their debit card number.
-
-launch:
- title: Private beta
- month: May
- day: 29
-
-what:
- bodyText: We’re launching in private beta after receiving overwhelming
- support for this feature on our
- crowdfunding campaign.
- Companies who backed the campaign receive early access. If you are
- interested in this feature, please submit your email to request an invite.
+ heading: Send money to your customers’ checking accounts using their U.S. debit card number.
introTextLeft:
title: Reduce friction
- body: Asking for a card number instead of sensitive bank account information
- makes it easier for a customer to sell on your marketplace.
+ body: Merchants will no longer have to look for sensitive bank account information. Asking for a card number makes it easier for them to sell on your marketplace.
introTextRight:
- title: Pay anyone easily
- body: Paying your sellers should be as simple as charging a card. Customers will
- no longer have to fish for their checkbooks and look for bank account
- information.
+ title: Pay merchants quickly
+ body: Funds are deposited to your merchant's bank account within 1–2 business days. You may pay up to $2,500 per Push to Card credit.
benefit:
title: Validate in real time
@@ -37,6 +22,13 @@ benefit:
about delayed payouts due to incorrect bank account and routing numbers.
cardNumber: 4342 5611 1111 1118
+bankStatementDescriptor:
+ title: Bank statement descriptor
+ body: Modify the bank statement soft descriptor on a per-transaction basis.
+ learnLink: "Learn more about setting the soft descriptor"
+ learnLinkUrl: https://docs.balancedpayments.com/current/overview#soft-descriptors
+ limit: "Max character length of bank statement soft descriptor: 14"
+
api:
title: Sample API call
body: Paying out to a debit card is super simple.
@@ -51,37 +43,4 @@ pricing:
image: pushtocard
cent: 25
-github:
- title: Monitor our progress on Github
- body: We’ll outline each task in our public repos and indicate the status
- of each issue. Once a task is complete, the corresponding issue will be
- closed.
-
-feedback:
- title: Got a question?
- body: "Send your comments to:"
- email: pushtocard@balancedpayments.com
- subscribe: "Request an invite for access"
-
-faqs:
- title: Frequently asked questions
- list:
- - q: How long do payouts take?
- a: Payouts are instant for 50% of bank accounts and take 1 – 2
- business for others. We're actively working on increasing the coverage
- for instant transfers.
- - q: Can I use previously tokenized debit cards?
- a: Yes, you can issue payouts to debit cards that were previously
- tokenized on your platform. Note that the cardholder's name is
- required for push to card.
- - q: Will you support international debit cards?
- a: Unfortunately not. This feature is only available for U.S. debit cards.
- - q: Is there soft descriptor control?
- a: Yes. Just like ACH payouts and charging a card, you can control the
- soft descriptor per transaction.
- - q: Is there a volume discount?
- a: Not right now, but the goal is to reduce the transaction fee for
- for everyone.
- - q: What are the transaction limits?
- a: The current limit is $2,500 per transaction.
---
diff --git a/static/js/balanced.js b/static/js/balanced.js
index 9e412d9..e3795b5 100644
--- a/static/js/balanced.js
+++ b/static/js/balanced.js
@@ -26,6 +26,127 @@
}
}
+ function githubIssues(labelName) {
+ // display github issues
+ var repos = {};
+ var repos_length = 0;
+ var count = 0;
+
+ var populateIssues = function(issues) {
+ count++;
+ var open_count = 0;
+ var closed_count = 0;
+
+ _.each(issues, function(issue) {
+ _.each(issue.labels, function(label) {
+ if (label.name === labelName) {
+ var repo_name = issue.html_url.split('/')[4];
+
+ if (!_.has(repos, repo_name)) {
+ repos[repo_name] = {};
+ }
+
+ if (!_.has(repos[repo_name], 'issues')) {
+ repos[repo_name]['issues'] = {};
+ }
+
+ if (!_.has(repos[repo_name]['issues'], issue.title)) {
+ repos[repo_name]['issues'][issue.title] = {};
+ }
+
+ if (issue.state === 'open') {
+ open_count++;
+ } else {
+ closed_count++;
+ }
+
+ var days_ago = moment(new Date(issue.created_at)).fromNow();
+
+ repos[repo_name]['issues'][issue.title] = {
+ title: issue.title,
+ html_url: issue.html_url,
+ author: issue.user.login,
+ created_at: days_ago,
+ status: issue.state
+ };
+ repos[repo_name]['repo_name'] = repo_name;
+ repos[repo_name]['open_count'] = open_count;
+ repos[repo_name]['closed_count'] = closed_count;
+ }
+ });
+ });
+
+ if (count === repos_length) {
+ $(".loading").fadeOut(200);
+
+ // sort repos by number of open & closed issues
+ repos = _.sortBy(repos, function(repo) {
+ return -(repo.open_count + repo.closed_count); // sort descending
+ });
+
+ _.each(repos, function(repo, repo_name) {
+ var $repoTemplate = $(".github table.items tr.repo-template").clone().removeClass('repo-template');
+ $repoTemplate.find(".repo-name span").text(repo.repo_name);
+ $repoTemplate.find(".completed span").text(repo.closed_count);
+ $repoTemplate.find(".remaining span").text(repo.open_count);
+ $repoTemplate.attr('data-repo', repo.repo_name);
+ $repoTemplate.appendTo('tbody').fadeIn(300);
+ $("tbody").append('
|
');
+
+ _.each(repo.issues, function(issue) {
+
+ var $issueTemplate = $(".github table.items div.issue-template").clone().removeClass('issue-template');
+ $issueTemplate.find("a.issue-name").attr("href", issue.html_url);
+ $issueTemplate.find("a.issue-name").text(issue.title);
+ $issueTemplate.find(".author").text(issue.author);
+ $issueTemplate.find(".created-at").text(issue.created_at);
+ $issueTemplate.find(".status").text(issue.status);
+ $issueTemplate.find(".status").addClass(issue.status);
+ $('tbody tr.issues[data-repo="' + repo.repo_name + '"] td').append($issueTemplate);
+ });
+ });
+
+ $(".issue-name").each(function() {
+ if ($(this).width() > 400) {
+ $(this).css({
+ width: "60%",
+ display: "inline-block",
+ float: "left",
+ marginRight: 0
+ });
+ }
+ });
+ }
+ }
+
+ // pull github issues
+ $.ajax({
+ url: 'https://api.github.com/orgs/balanced/repos?client_id=bda58293b5d9ede74ab7&client_secret=62cfb784097a180bcb5169d9528a23538340ecf0',
+ dataType: 'json',
+ success: function(response) {
+ var repos = response.sort(function(a, b) {
+ return b.watchers_count - a.watchers_count;
+ });
+ for (var i = 0, l = repos.length; i < l; i++) {
+ if (repos[i].fork) {
+ continue;
+ }
+ repos_length += 1;
+
+ var issues_url = repos[i].issues_url.split('{')[0]; // remove name from issues/{name}
+
+ $.ajax({
+ url: issues_url + '?labels=' + labelName + '&state=all&client_id=bda58293b5d9ede74ab7&client_secret=62cfb784097a180bcb5169d9528a23538340ecf0',
+ dataType: 'json',
+ timeout: 5000,
+ cache: false,
+ success: populateIssues
+ });
+ }
+ }
+ });
+ }
+
var balanced = ctx.balanced = {
menu: function() {
$(".toggle-child-menu, .sidebar-child-menu-left .icon-x").click(function(e) {
@@ -395,125 +516,8 @@
},
pushToCard: function() {
- // display github issues
- var repos = {};
- var repos_length = 0;
- var count = 0;
-
- var populateIssues = function(issues) {
- count++;
- var open_count = 0;
- var closed_count = 0;
-
- _.each(issues, function(issue) {
- _.each(issue.labels, function(label) {
- if (label.name === 'push to card') {
- var repo_name = issue.html_url.split('/')[4];
-
- if (!_.has(repos, repo_name)) {
- repos[repo_name] = {};
- }
-
- if (!_.has(repos[repo_name], 'issues')) {
- repos[repo_name]['issues'] = {};
- }
-
- if (!_.has(repos[repo_name]['issues'], issue.title)) {
- repos[repo_name]['issues'][issue.title] = {};
- }
-
- if (issue.state === 'open') {
- open_count++;
- } else {
- closed_count++;
- }
-
- var days_ago = moment(new Date(issue.created_at)).fromNow();
-
- repos[repo_name]['issues'][issue.title] = {
- title: issue.title,
- html_url: issue.html_url,
- author: issue.user.login,
- created_at: days_ago,
- status: issue.state
- };
- repos[repo_name]['repo_name'] = repo_name;
- repos[repo_name]['open_count'] = open_count;
- repos[repo_name]['closed_count'] = closed_count;
- }
- });
- });
-
- if (count === repos_length) {
- $(".loading").fadeOut(200);
-
- // sort repos by number of open & closed issues
- repos = _.sortBy(repos, function(repo) {
- return -(repo.open_count + repo.closed_count); // sort descending
- });
-
- _.each(repos, function(repo, repo_name) {
- var $repoTemplate = $(".github table.items tr.repo-template").clone().removeClass('repo-template');
- $repoTemplate.find(".repo-name span").text(repo.repo_name);
- $repoTemplate.find(".completed span").text(repo.closed_count);
- $repoTemplate.find(".remaining span").text(repo.open_count);
- $repoTemplate.attr('data-repo', repo.repo_name);
- $repoTemplate.appendTo('tbody').fadeIn(300);
- $("tbody").append(' |
');
-
- _.each(repo.issues, function(issue) {
-
- var $issueTemplate = $(".github table.items div.issue-template").clone().removeClass('issue-template');
- $issueTemplate.find("a.issue-name").attr("href", issue.html_url);
- $issueTemplate.find("a.issue-name").text(issue.title);
- $issueTemplate.find(".author").text(issue.author);
- $issueTemplate.find(".created-at").text(issue.created_at);
- $issueTemplate.find(".status").text(issue.status);
- $issueTemplate.find(".status").addClass(issue.status);
- $('tbody tr.issues[data-repo="' + repo.repo_name + '"] td').append($issueTemplate);
- });
- });
-
- $(".issue-name").each(function() {
- if ($(this).width() > 400) {
- $(this).css({
- width: "60%",
- display: "inline-block",
- float: "left",
- marginRight: 0
- });
- }
- });
- }
- };
-
- // pull github issues
- $.ajax({
- url: 'https://api.github.com/orgs/balanced/repos?client_id=bda58293b5d9ede74ab7&client_secret=62cfb784097a180bcb5169d9528a23538340ecf0',
- dataType: 'json',
- success: function(response) {
- var repos = response.sort(function(a, b) {
- return b.watchers_count - a.watchers_count;
- });
- for (var i = 0, l = repos.length; i < l; i++) {
- if (repos[i].fork) {
- continue;
- }
- repos_length += 1;
-
- var issues_url = repos[i].issues_url.split('{')[0]; // remove name from issues/{name}
-
- $.ajax({
- url: issues_url + '?labels=push+to+card&state=all&client_id=bda58293b5d9ede74ab7&client_secret=62cfb784097a180bcb5169d9528a23538340ecf0',
- dataType: 'json',
- timeout: 5000,
- cache: false,
- success: populateIssues
- });
- }
- }
- });
-
+ animateInView(".folded-box", "slide-up");
+ githubIssues();
// animation
animateInView(".benefit", "slide-up");
diff --git a/static/less/payouts.less b/static/less/payouts.less
index 32d4f69..5da782d 100644
--- a/static/less/payouts.less
+++ b/static/less/payouts.less
@@ -185,29 +185,6 @@ body.payouts {
}
}
- .bank-statement-descriptor {
- .card-info {
- .sl;
- padding: 10px 0 20px;
- }
-
- .amount {
- .sl-sb;
- line-height: 20px;
- color: @pineGreen80;
- text-align: right;
- }
-
- .amount-header {
- color: @white;
- text-align: right;
- }
-
- .sl-note {
- padding-top: 10px;
- }
- }
-
.graphic {
&.payout-status {
background-image: url(/images/payouts/payouts_status-2x.png);
diff --git a/static/less/push-to-card.less b/static/less/push-to-card.less
index 4776cba..a4c4e7a 100644
--- a/static/less/push-to-card.less
+++ b/static/less/push-to-card.less
@@ -103,6 +103,10 @@
.title-wrapper {
opacity: 0;
border-top: none;
+
+ p {
+ margin-top: 20px;
+ }
}
}
}
@@ -191,8 +195,12 @@
.api {
.api-title {
.sl-sb;
- padding-top: 56px;
padding-bottom: 10px;
+ padding-top: 56px;
+
+ &:first-of-type {
+ padding-top: 0;
+ }
}
}
diff --git a/static/less/root.less b/static/less/root.less
index 84c5f78..670df83 100644
--- a/static/less/root.less
+++ b/static/less/root.less
@@ -408,7 +408,6 @@ section {
opacity: 0;
position: relative;
padding: 30px 50px 30px 30px;
- margin-top: 54px;
background: @gray1;
border-bottom: 2px solid @gray2;
@@ -425,6 +424,27 @@ section {
.title {
.sl-sb;
}
+
+ .card-info {
+ .sl;
+ padding: 10px 0 20px;
+ }
+
+ .amount {
+ .sl-sb;
+ line-height: 20px;
+ color: @pineGreen80;
+ text-align: right;
+ }
+
+ .amount-header {
+ color: @white;
+ text-align: right;
+ }
+
+ .sl-note {
+ padding-top: 10px;
+ }
}
.code-sample {
diff --git a/templates/push-to-card.html b/templates/push-to-card.html
index 5e77664..f71637b 100644
--- a/templates/push-to-card.html
+++ b/templates/push-to-card.html
@@ -16,36 +16,6 @@
{{ page.metadata.subtitle.heading }}
-
-
-
-
- {{ page.metadata.what.bodyText }}
-
-
-
-
-
-
{{page.metadata.feedback.subscribe}}
-
-
-
-
-
@@ -77,89 +47,141 @@
-
+
{{page.metadata.benefit.title}}
-
{{page.metadata.benefit.body}}
-
-
-
Debit card
-
- {{page.metadata.benefit.cardNumber}}
-
+
+
+
{{page.metadata.benefit.body}}
+
+
+
+
Debit card
+
+ {{page.metadata.benefit.cardNumber}}
+
+
+
+
+
+
+ {{page.metadata.bankStatementDescriptor.title}}
+
+
+
+
+
Bank account statement
+
+
Jessica Lauren
+
xxxxxxx4685
+
+
+
+
+ Date |
+ Description |
+
+
+
+
+
+ Oct 22 |
+ ZUPPA 741486 ABaker |
+ $ 150.00 |
+
+
+ Oct 17 |
+ ZUPPA 741308 TWard |
+ $ 173.00 |
+
+
+ Oct 10 |
+ ZUPPA 741239 LMoore |
+ $ 128.00 |
+
+
+
+
{{page.metadata.bankStatementDescriptor.limit}}
+
+
+
-
+
-
-
Create card
-
+
+
+
Create card
+
+
Request
+
curl https://api.balancedpayments.com/cards \
- -u ak-test-2qEM0Znvd8LIVbZ01LbFHvHgab4fkNr3c: \
- -d name="Johannes Bach" \
- -d number=4342561111111118 \
- -d expiration_month=05 \
- -d expiration_year=2017
-
-
-
-
Response *
-
+ -u ak-test-2qEM0Znvd8LIVbZ01LbFHvHgab4fkNr3c: \
+ -d name="Johannes Bach" \
+ -d number=4342561111111118 \
+ -d expiration_month=05 \
+ -d expiration_year=2017
+
+
+
+
Response *
+
{
- "href": "/cards/CC4WPZcJIMRDncSIvm9Sh5u9",
- "can_credit": true,
- "bank_name": "WELLS FARGO BANK, N.A.",
- "type": "debit",
- ...
-}
-
* Some parts of the response have been omitted for brevity.
-
+
"href": "/cards/CC4WPZcJIMRDncSIvm9Sh5u9",
+
"can_credit": true,
+
"bank_name": "WELLS FARGO BANK, N.A.",
+
"type": "debit",
+
...
+
}
+
+
* Some parts of the response have been omitted for brevity.
+
-
Pay out to card
-
-
Request
-
+ Pay out to card
+
+
Request
+
curl https://api.balancedpayments.com/cards/CC4KpTthEazr1FUDa9DAj5d3/credits \
- -u ak-test-2qEM0Znvd8LIVbZ01LbFHvHgab4fkNr3c: \
- -d amount=10000 \
- -d order="/orders/OR6YQQbS9HquGwQaxvLy2a7S"
-
-
-
-
Response *
-
+ -u ak-test-2qEM0Znvd8LIVbZ01LbFHvHgab4fkNr3c: \
+ -d amount=10000 \
+ -d order="/orders/OR6YQQbS9HquGwQaxvLy2a7S"
+
+
+
+
Response *
+
{
- "href": "/credits/CR67ZUFRB0N34yVFJt7Ye6VL",
- "amount": "10000",
- "currency": "USD",
- "status": "pending",
- "links": {
- "order": "OR6YQQbS9HquGwQaxvLy2a7S",
- },
- ...
-}
-
* Some parts of the response have been omitted for brevity.
-
+ "href": "/credits/CR67ZUFRB0N34yVFJt7Ye6VL",
+ "amount": "10000",
+ "currency": "USD",
+ "status": "pending",
+ "links": {
+ "order": "OR6YQQbS9HquGwQaxvLy2a7S",
+ },
+ ...
+}
+
+
* Some parts of the response have been omitted for brevity.
@@ -196,83 +218,6 @@
{{page.metadata.pricing.linkText}}
-
-
-
-
-
-
{{page.metadata.github.title}}
-
{{page.metadata.github.body}}
-
-
-
-
-
Show all issues
-
-
-
- Repo |
- Completed tasks |
- Remaining tasks |
-
-
-
- |
- |
- |
-
-
-
-
- |
-
-
-
-
-
-
-
-
-
-
{{page.metadata.feedback.subscribe}}
-
-
-
-
-
-
-
{{page.metadata.faqs.title}}
-
- {% for faq in page.metadata.faqs.list %}
-
-
{{faq.q}}
-
{{faq.a}}
-
- {% endfor %}
-