Skip to content

add Payment Transaction and Payment Attempt field reference pages - #82

Open
suliman-ottu wants to merge 4 commits into
devfrom
task/154339
Open

add Payment Transaction and Payment Attempt field reference pages#82
suliman-ottu wants to merge 4 commits into
devfrom
task/154339

Conversation

@suliman-ottu

Copy link
Copy Markdown
Contributor
  • Add docs/business/payment-management/transaction-fields.md — full field reference for PaymentTransaction (identifiers, state, amounts with worked examples, gateway & routing, customer details, URLs, notifications, misc, relationships, and internal fields)
  • Add docs/business/payment-management/attempt-fields.md — full field reference for PaymentAttempt (identifiers, state, amounts, gateway interaction, webhook diagnostics, and internal fields)
  • Add both pages to the Payment Management sidebar in sidebars.ts

- Add docs/business/payment-management/transaction-fields.md — full field
reference for PaymentTransaction (identifiers, state, amounts with worked
examples, gateway & routing, customer details, URLs, notifications, misc,
relationships, and internal fields)
- Add docs/business/payment-management/attempt-fields.md — full field
reference for PaymentAttempt (identifiers, state, amounts, gateway
interaction, webhook diagnostics, and internal fields)
- Add both pages to the Payment Management sidebar in sidebars.ts
@jab3z

Copy link
Copy Markdown
Contributor

@claude review

@claude

claudeBot commented May 25, 2026

Copy link
Copy Markdown

Claude finished @jab3z's task in 3m 14s —— View job


PR Review — Payment Transaction & Attempt Field Reference Pages

  • Gather context and understand the request
  • Read the changed files
  • Review docs/business/payment-management/transaction-fields.md
  • Review docs/business/payment-management/attempt-fields.md
  • Review sidebars.ts changes
  • Post review findings

Overall the content is solid — the amounts section with nine worked examples is genuinely excellent, the cross-linking strategy is consistent, and the transaction/attempt split is well-explained. There are a handful of issues that need attention before merge.


Issues

1. Empty stub fields will render as blank headings (High — transaction-fields.md)

Several headings have no body text. They'll render as visible but empty sections in production — a noticeable quality gap on what's otherwise a polished page.

Field headingLineNotes
### minimal_amount340No description at all
### notification_set470No description at all
### bulk_transaction543No description at all
### booking_event545No description at all
### attempt_reference547No description at all
### in_es564Inside the <details> block but empty
### es_id578Inside the <details> block but empty
### parent_es_id580Inside the <details> block but empty
### unit_config582Inside the <details> block but empty

The four internal stubs (in_es, es_id, parent_es_id, unit_config) are at least hidden behind a <details> collapse, but they still appear as blank headings when expanded. Either add at least a one-line note (even "Internal Elasticsearch ID — not exposed to merchants") or omit the heading entirely for fields that have nothing to say yet.

Fix stubs in transaction-fields.md →

2. Empty stub fields will render as blank headings (High — attempt-fields.md)

Same issue in the attempt page:

Field headingLineNotes
### total58No description — likely "amount + fee for this attempt"
### settings73No description — looks like an important gateway-config field

settings in particular looks like it could hold significant data (gateway config, 3DS options, etc.) and an empty heading is worse than omitting it. Fix stubs in attempt-fields.md →

3. redirect_url description has a grammar error and is misleading (transaction-fields.md, line 440)

"Only used when the webhook delivery is success."

This is grammatically incorrect ("is success" → "succeeds"). More importantly, the phrasing "only used" implies the field itself is unused when webhook delivery fails. A clearer statement: "Ottu redirects the customer to this URL only when your webhook endpoint responds with HTTP 200."

Fix redirect_url description →

4. disclosure_url vs webhook_url naming gap (transaction-fields.md, line 444)

The description correctly says "The webhook URL where Ottu sends a POST request…" but the field is named disclosure_url on the model while merchants set it via the webhook_url parameter in the Checkout API. A reader who just came from the Checkout API docs expecting webhook_url won't connect the dots. Suggest adding a short note:

This is the model field. When creating a transaction via the Checkout API, set this value using the webhook_url request parameter.

Add webhook_url alias note →


Minor nits

  • type field, line 54: "The kind of transaction, this is set when…" — comma splice. Split into two sentences or use a semicolon.
  • customer_shipping_address, line 431: The description says "May be used for fraud prevention…" but doesn't say whether this is a structured object (with sub-fields like line1, city, etc.) or a flat string. Worth one sentence clarifying the format.
  • is_amount_editable vs minimal_amount: is_amount_editable (line 337) references the customer modifying the amount but there's no cross-link to minimal_amount right below it. Given minimal_amount is currently empty, this can wait — but the two fields are closely related and should cross-reference each other once minimal_amount is filled in.

Positives

  • The amounts section is outstanding: the quick-reference table + nine worked examples (purchase, refund, auth/capture, void, editable, save-card) is exactly the kind of concrete illustration that prevents support requests.
  • Sidebar placement is correct — plain string shorthand, consistent with the other Payment Management items, no mixing of Pattern A and Pattern B.
  • The webhook diagnostic fields section in attempt-fields.md (disclosed_to_merchant, disclosed_data, disclosed_states, disclosure_url_error) is very well-structured and clearly explains their purpose for debugging.
  • Strong cross-linking throughout — almost every concept links somewhere useful.

The main ask before merge is to resolve the empty stub fields (items 1 & 2 above). Items 3 and 4 are quick text fixes. The minor nits can be addressed in a follow-up if preferred.
|

- Fix grammar in `redirect_url` description and clarify when it is used
- Rename `disclosure_url` heading to `webhook_url` to match the API parameter name
- Clarify that `customer_shipping_address` is a structured object with sub-fields
- Split a comma splice in the `type` field description
- Pull internal & diagnostic fields out of the trailing list into their own section
@jab3z

Copy link
Copy Markdown
Contributor

@claude review

@claude

claudeBot commented May 25, 2026

Copy link
Copy Markdown

Claude finished @jab3z's task in 1m 42s —— View job


PR Review — Payment Transaction & Attempt Field Reference Pages (re-review after apply review notes commit)

  • Gather context and understand the request
  • Read the current state of changed files
  • Review docs/business/payment-management/transaction-fields.md
  • Review docs/business/payment-management/attempt-fields.md
  • Review sidebars.ts changes
  • Post updated review findings

What Was Fixed Since the Last Review ✅

The 14bd7b9 commit addressed several items from the previous review:

IssueStatus
redirect_url grammar ("is success" → "is successful")✅ Fixed
disclosure_url renamed to webhook_url to match Checkout API param✅ Fixed
type field comma splice✅ Fixed
customer_shipping_address — clarified as a structured object with sub-fields✅ Fixed

Remaining Issues

1. Empty stub fields still render as blank headings (High — transaction-fields.md)

The empty stubs from the first review were not addressed in the apply review notes commit. These will still render as visible but empty sections:

FieldLocationHidden behind <details>?
### minimal_amountLine 339No — visible immediately
### notification_setLine 469No — visible immediately
### bulk_transactionLine 541No — visible immediately
### booking_eventLine 543No — visible immediately
### attempt_referenceLine 545No — visible immediately
### in_esLine 566Yes (collapsed by default)
### es_idLine 580Yes (collapsed by default)
### parent_es_idLine 582Yes (collapsed by default)
### unit_configLine 584Yes (collapsed by default)

The five that are not hidden by <details> are the highest priority — a reader landing on the page will immediately see blank headings for minimal_amount, notification_set, bulk_transaction, booking_event, and attempt_reference. Either add a one-line note or remove the heading entirely.

Fix stubs in transaction-fields.md →

2. Empty stub fields still render as blank headings (High — attempt-fields.md)

Both empty stubs from the first review are still empty:

  • ### total (line 58) — heading with no body. Likely amount + fee for this attempt — a one-liner would suffice.
  • ### settings (line 73) — heading with no body. Given that gateway_response gets a description, settings is conspicuously blank. Either describe it (gateway config/3DS options passed to the gateway for this attempt) or remove the heading.

Fix stubs in attempt-fields.md →


Everything Else Looks Good

  • Sidebars — the two new entries are plain string shorthand, correctly placed inside the Payment Management items array, consistent with the other items in that section.
  • Webhook diagnostics section — well-structured, clear purpose, accurate field descriptions.
  • Amounts section — the quick-reference table and nine worked examples remain excellent.
  • Cross-linking — thorough throughout both pages.
  • All nits from the previous review were resolved.

The only blocker before merge is resolving the empty stub headings (items 1 & 2 above) — they are user-visible quality gaps on an otherwise polished pair of pages.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@suliman-ottu@jab3z
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
add Payment Transaction and Payment Attempt field reference pages by suliman-ottu · Pull Request #82 · ottuco/docs · GitHub
Skip to content

add Payment Transaction and Payment Attempt field reference pages - #82

Open
suliman-ottu wants to merge 4 commits into
devfrom
task/154339
Open

add Payment Transaction and Payment Attempt field reference pages#82
suliman-ottu wants to merge 4 commits into
devfrom
task/154339

Conversation

@suliman-ottu

Copy link
Copy Markdown
Contributor
  • Add docs/business/payment-management/transaction-fields.md — full field reference for PaymentTransaction (identifiers, state, amounts with worked examples, gateway & routing, customer details, URLs, notifications, misc, relationships, and internal fields)
  • Add docs/business/payment-management/attempt-fields.md — full field reference for PaymentAttempt (identifiers, state, amounts, gateway interaction, webhook diagnostics, and internal fields)
  • Add both pages to the Payment Management sidebar in sidebars.ts

- Add docs/business/payment-management/transaction-fields.md — full field
reference for PaymentTransaction (identifiers, state, amounts with worked
examples, gateway & routing, customer details, URLs, notifications, misc,
relationships, and internal fields)
- Add docs/business/payment-management/attempt-fields.md — full field
reference for PaymentAttempt (identifiers, state, amounts, gateway
interaction, webhook diagnostics, and internal fields)
- Add both pages to the Payment Management sidebar in sidebars.ts
@jab3z

Copy link
Copy Markdown
Contributor

@claude review

@claude

claudeBot commented May 25, 2026

Copy link
Copy Markdown

Claude finished @jab3z's task in 3m 14s —— View job


PR Review — Payment Transaction & Attempt Field Reference Pages

  • Gather context and understand the request
  • Read the changed files
  • Review docs/business/payment-management/transaction-fields.md
  • Review docs/business/payment-management/attempt-fields.md
  • Review sidebars.ts changes
  • Post review findings

Overall the content is solid — the amounts section with nine worked examples is genuinely excellent, the cross-linking strategy is consistent, and the transaction/attempt split is well-explained. There are a handful of issues that need attention before merge.


Issues

1. Empty stub fields will render as blank headings (High — transaction-fields.md)

Several headings have no body text. They'll render as visible but empty sections in production — a noticeable quality gap on what's otherwise a polished page.

Field headingLineNotes
### minimal_amount340No description at all
### notification_set470No description at all
### bulk_transaction543No description at all
### booking_event545No description at all
### attempt_reference547No description at all
### in_es564Inside the <details> block but empty
### es_id578Inside the <details> block but empty
### parent_es_id580Inside the <details> block but empty
### unit_config582Inside the <details> block but empty

The four internal stubs (in_es, es_id, parent_es_id, unit_config) are at least hidden behind a <details> collapse, but they still appear as blank headings when expanded. Either add at least a one-line note (even "Internal Elasticsearch ID — not exposed to merchants") or omit the heading entirely for fields that have nothing to say yet.

Fix stubs in transaction-fields.md →

2. Empty stub fields will render as blank headings (High — attempt-fields.md)

Same issue in the attempt page:

Field headingLineNotes
### total58No description — likely "amount + fee for this attempt"
### settings73No description — looks like an important gateway-config field

settings in particular looks like it could hold significant data (gateway config, 3DS options, etc.) and an empty heading is worse than omitting it. Fix stubs in attempt-fields.md →

3. redirect_url description has a grammar error and is misleading (transaction-fields.md, line 440)

"Only used when the webhook delivery is success."

This is grammatically incorrect ("is success" → "succeeds"). More importantly, the phrasing "only used" implies the field itself is unused when webhook delivery fails. A clearer statement: "Ottu redirects the customer to this URL only when your webhook endpoint responds with HTTP 200."

Fix redirect_url description →

4. disclosure_url vs webhook_url naming gap (transaction-fields.md, line 444)

The description correctly says "The webhook URL where Ottu sends a POST request…" but the field is named disclosure_url on the model while merchants set it via the webhook_url parameter in the Checkout API. A reader who just came from the Checkout API docs expecting webhook_url won't connect the dots. Suggest adding a short note:

This is the model field. When creating a transaction via the Checkout API, set this value using the webhook_url request parameter.

Add webhook_url alias note →


Minor nits

  • type field, line 54: "The kind of transaction, this is set when…" — comma splice. Split into two sentences or use a semicolon.
  • customer_shipping_address, line 431: The description says "May be used for fraud prevention…" but doesn't say whether this is a structured object (with sub-fields like line1, city, etc.) or a flat string. Worth one sentence clarifying the format.
  • is_amount_editable vs minimal_amount: is_amount_editable (line 337) references the customer modifying the amount but there's no cross-link to minimal_amount right below it. Given minimal_amount is currently empty, this can wait — but the two fields are closely related and should cross-reference each other once minimal_amount is filled in.

Positives

  • The amounts section is outstanding: the quick-reference table + nine worked examples (purchase, refund, auth/capture, void, editable, save-card) is exactly the kind of concrete illustration that prevents support requests.
  • Sidebar placement is correct — plain string shorthand, consistent with the other Payment Management items, no mixing of Pattern A and Pattern B.
  • The webhook diagnostic fields section in attempt-fields.md (disclosed_to_merchant, disclosed_data, disclosed_states, disclosure_url_error) is very well-structured and clearly explains their purpose for debugging.
  • Strong cross-linking throughout — almost every concept links somewhere useful.

The main ask before merge is to resolve the empty stub fields (items 1 & 2 above). Items 3 and 4 are quick text fixes. The minor nits can be addressed in a follow-up if preferred.
|

- Fix grammar in `redirect_url` description and clarify when it is used
- Rename `disclosure_url` heading to `webhook_url` to match the API parameter name
- Clarify that `customer_shipping_address` is a structured object with sub-fields
- Split a comma splice in the `type` field description
- Pull internal & diagnostic fields out of the trailing list into their own section
@jab3z

Copy link
Copy Markdown
Contributor

@claude review

@claude

claudeBot commented May 25, 2026

Copy link
Copy Markdown

Claude finished @jab3z's task in 1m 42s —— View job


PR Review — Payment Transaction & Attempt Field Reference Pages (re-review after apply review notes commit)

  • Gather context and understand the request
  • Read the current state of changed files
  • Review docs/business/payment-management/transaction-fields.md
  • Review docs/business/payment-management/attempt-fields.md
  • Review sidebars.ts changes
  • Post updated review findings

What Was Fixed Since the Last Review ✅

The 14bd7b9 commit addressed several items from the previous review:

IssueStatus
redirect_url grammar ("is success" → "is successful")✅ Fixed
disclosure_url renamed to webhook_url to match Checkout API param✅ Fixed
type field comma splice✅ Fixed
customer_shipping_address — clarified as a structured object with sub-fields✅ Fixed

Remaining Issues

1. Empty stub fields still render as blank headings (High — transaction-fields.md)

The empty stubs from the first review were not addressed in the apply review notes commit. These will still render as visible but empty sections:

FieldLocationHidden behind <details>?
### minimal_amountLine 339No — visible immediately
### notification_setLine 469No — visible immediately
### bulk_transactionLine 541No — visible immediately
### booking_eventLine 543No — visible immediately
### attempt_referenceLine 545No — visible immediately
### in_esLine 566Yes (collapsed by default)
### es_idLine 580Yes (collapsed by default)
### parent_es_idLine 582Yes (collapsed by default)
### unit_configLine 584Yes (collapsed by default)

The five that are not hidden by <details> are the highest priority — a reader landing on the page will immediately see blank headings for minimal_amount, notification_set, bulk_transaction, booking_event, and attempt_reference. Either add a one-line note or remove the heading entirely.

Fix stubs in transaction-fields.md →

2. Empty stub fields still render as blank headings (High — attempt-fields.md)

Both empty stubs from the first review are still empty:

  • ### total (line 58) — heading with no body. Likely amount + fee for this attempt — a one-liner would suffice.
  • ### settings (line 73) — heading with no body. Given that gateway_response gets a description, settings is conspicuously blank. Either describe it (gateway config/3DS options passed to the gateway for this attempt) or remove the heading.

Fix stubs in attempt-fields.md →


Everything Else Looks Good

  • Sidebars — the two new entries are plain string shorthand, correctly placed inside the Payment Management items array, consistent with the other items in that section.
  • Webhook diagnostics section — well-structured, clear purpose, accurate field descriptions.
  • Amounts section — the quick-reference table and nine worked examples remain excellent.
  • Cross-linking — thorough throughout both pages.
  • All nits from the previous review were resolved.

The only blocker before merge is resolving the empty stub headings (items 1 & 2 above) — they are user-visible quality gaps on an otherwise polished pair of pages.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@suliman-ottu@jab3z
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' add Payment Transaction and Payment Attempt field reference pages by suliman-ottu · Pull Request #82 · ottuco/docs · GitHub
Skip to content

add Payment Transaction and Payment Attempt field reference pages - #82

Open
suliman-ottu wants to merge 4 commits into
devfrom
task/154339
Open

add Payment Transaction and Payment Attempt field reference pages#82
suliman-ottu wants to merge 4 commits into
devfrom
task/154339

Conversation

@suliman-ottu

Copy link
Copy Markdown
Contributor
  • Add docs/business/payment-management/transaction-fields.md — full field reference for PaymentTransaction (identifiers, state, amounts with worked examples, gateway & routing, customer details, URLs, notifications, misc, relationships, and internal fields)
  • Add docs/business/payment-management/attempt-fields.md — full field reference for PaymentAttempt (identifiers, state, amounts, gateway interaction, webhook diagnostics, and internal fields)
  • Add both pages to the Payment Management sidebar in sidebars.ts

- Add docs/business/payment-management/transaction-fields.md — full field
reference for PaymentTransaction (identifiers, state, amounts with worked
examples, gateway & routing, customer details, URLs, notifications, misc,
relationships, and internal fields)
- Add docs/business/payment-management/attempt-fields.md — full field
reference for PaymentAttempt (identifiers, state, amounts, gateway
interaction, webhook diagnostics, and internal fields)
- Add both pages to the Payment Management sidebar in sidebars.ts
@jab3z

Copy link
Copy Markdown
Contributor

@claude review

@claude

claudeBot commented May 25, 2026

Copy link
Copy Markdown

Claude finished @jab3z's task in 3m 14s —— View job


PR Review — Payment Transaction & Attempt Field Reference Pages

  • Gather context and understand the request
  • Read the changed files
  • Review docs/business/payment-management/transaction-fields.md
  • Review docs/business/payment-management/attempt-fields.md
  • Review sidebars.ts changes
  • Post review findings

Overall the content is solid — the amounts section with nine worked examples is genuinely excellent, the cross-linking strategy is consistent, and the transaction/attempt split is well-explained. There are a handful of issues that need attention before merge.


Issues

1. Empty stub fields will render as blank headings (High — transaction-fields.md)

Several headings have no body text. They'll render as visible but empty sections in production — a noticeable quality gap on what's otherwise a polished page.

Field headingLineNotes
### minimal_amount340No description at all
### notification_set470No description at all
### bulk_transaction543No description at all
### booking_event545No description at all
### attempt_reference547No description at all
### in_es564Inside the <details> block but empty
### es_id578Inside the <details> block but empty
### parent_es_id580Inside the <details> block but empty
### unit_config582Inside the <details> block but empty

The four internal stubs (in_es, es_id, parent_es_id, unit_config) are at least hidden behind a <details> collapse, but they still appear as blank headings when expanded. Either add at least a one-line note (even "Internal Elasticsearch ID — not exposed to merchants") or omit the heading entirely for fields that have nothing to say yet.

Fix stubs in transaction-fields.md →

2. Empty stub fields will render as blank headings (High — attempt-fields.md)

Same issue in the attempt page:

Field headingLineNotes
### total58No description — likely "amount + fee for this attempt"
### settings73No description — looks like an important gateway-config field

settings in particular looks like it could hold significant data (gateway config, 3DS options, etc.) and an empty heading is worse than omitting it. Fix stubs in attempt-fields.md →

3. redirect_url description has a grammar error and is misleading (transaction-fields.md, line 440)

"Only used when the webhook delivery is success."

This is grammatically incorrect ("is success" → "succeeds"). More importantly, the phrasing "only used" implies the field itself is unused when webhook delivery fails. A clearer statement: "Ottu redirects the customer to this URL only when your webhook endpoint responds with HTTP 200."

Fix redirect_url description →

4. disclosure_url vs webhook_url naming gap (transaction-fields.md, line 444)

The description correctly says "The webhook URL where Ottu sends a POST request…" but the field is named disclosure_url on the model while merchants set it via the webhook_url parameter in the Checkout API. A reader who just came from the Checkout API docs expecting webhook_url won't connect the dots. Suggest adding a short note:

This is the model field. When creating a transaction via the Checkout API, set this value using the webhook_url request parameter.

Add webhook_url alias note →


Minor nits

  • type field, line 54: "The kind of transaction, this is set when…" — comma splice. Split into two sentences or use a semicolon.
  • customer_shipping_address, line 431: The description says "May be used for fraud prevention…" but doesn't say whether this is a structured object (with sub-fields like line1, city, etc.) or a flat string. Worth one sentence clarifying the format.
  • is_amount_editable vs minimal_amount: is_amount_editable (line 337) references the customer modifying the amount but there's no cross-link to minimal_amount right below it. Given minimal_amount is currently empty, this can wait — but the two fields are closely related and should cross-reference each other once minimal_amount is filled in.

Positives

  • The amounts section is outstanding: the quick-reference table + nine worked examples (purchase, refund, auth/capture, void, editable, save-card) is exactly the kind of concrete illustration that prevents support requests.
  • Sidebar placement is correct — plain string shorthand, consistent with the other Payment Management items, no mixing of Pattern A and Pattern B.
  • The webhook diagnostic fields section in attempt-fields.md (disclosed_to_merchant, disclosed_data, disclosed_states, disclosure_url_error) is very well-structured and clearly explains their purpose for debugging.
  • Strong cross-linking throughout — almost every concept links somewhere useful.

The main ask before merge is to resolve the empty stub fields (items 1 & 2 above). Items 3 and 4 are quick text fixes. The minor nits can be addressed in a follow-up if preferred.
|

- Fix grammar in `redirect_url` description and clarify when it is used
- Rename `disclosure_url` heading to `webhook_url` to match the API parameter name
- Clarify that `customer_shipping_address` is a structured object with sub-fields
- Split a comma splice in the `type` field description
- Pull internal & diagnostic fields out of the trailing list into their own section
@jab3z

Copy link
Copy Markdown
Contributor

@claude review

@claude

claudeBot commented May 25, 2026

Copy link
Copy Markdown

Claude finished @jab3z's task in 1m 42s —— View job


PR Review — Payment Transaction & Attempt Field Reference Pages (re-review after apply review notes commit)

  • Gather context and understand the request
  • Read the current state of changed files
  • Review docs/business/payment-management/transaction-fields.md
  • Review docs/business/payment-management/attempt-fields.md
  • Review sidebars.ts changes
  • Post updated review findings

What Was Fixed Since the Last Review ✅

The 14bd7b9 commit addressed several items from the previous review:

IssueStatus
redirect_url grammar ("is success" → "is successful")✅ Fixed
disclosure_url renamed to webhook_url to match Checkout API param✅ Fixed
type field comma splice✅ Fixed
customer_shipping_address — clarified as a structured object with sub-fields✅ Fixed

Remaining Issues

1. Empty stub fields still render as blank headings (High — transaction-fields.md)

The empty stubs from the first review were not addressed in the apply review notes commit. These will still render as visible but empty sections:

FieldLocationHidden behind <details>?
### minimal_amountLine 339No — visible immediately
### notification_setLine 469No — visible immediately
### bulk_transactionLine 541No — visible immediately
### booking_eventLine 543No — visible immediately
### attempt_referenceLine 545No — visible immediately
### in_esLine 566Yes (collapsed by default)
### es_idLine 580Yes (collapsed by default)
### parent_es_idLine 582Yes (collapsed by default)
### unit_configLine 584Yes (collapsed by default)

The five that are not hidden by <details> are the highest priority — a reader landing on the page will immediately see blank headings for minimal_amount, notification_set, bulk_transaction, booking_event, and attempt_reference. Either add a one-line note or remove the heading entirely.

Fix stubs in transaction-fields.md →

2. Empty stub fields still render as blank headings (High — attempt-fields.md)

Both empty stubs from the first review are still empty:

  • ### total (line 58) — heading with no body. Likely amount + fee for this attempt — a one-liner would suffice.
  • ### settings (line 73) — heading with no body. Given that gateway_response gets a description, settings is conspicuously blank. Either describe it (gateway config/3DS options passed to the gateway for this attempt) or remove the heading.

Fix stubs in attempt-fields.md →


Everything Else Looks Good

  • Sidebars — the two new entries are plain string shorthand, correctly placed inside the Payment Management items array, consistent with the other items in that section.
  • Webhook diagnostics section — well-structured, clear purpose, accurate field descriptions.
  • Amounts section — the quick-reference table and nine worked examples remain excellent.
  • Cross-linking — thorough throughout both pages.
  • All nits from the previous review were resolved.

The only blocker before merge is resolving the empty stub headings (items 1 & 2 above) — they are user-visible quality gaps on an otherwise polished pair of pages.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@suliman-ottu@jab3z
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' add Payment Transaction and Payment Attempt field reference pages by suliman-ottu · Pull Request #82 · ottuco/docs · GitHub
Skip to content

add Payment Transaction and Payment Attempt field reference pages - #82

Open
suliman-ottu wants to merge 4 commits into
devfrom
task/154339
Open

add Payment Transaction and Payment Attempt field reference pages#82
suliman-ottu wants to merge 4 commits into
devfrom
task/154339

Conversation

@suliman-ottu

Copy link
Copy Markdown
Contributor
  • Add docs/business/payment-management/transaction-fields.md — full field reference for PaymentTransaction (identifiers, state, amounts with worked examples, gateway & routing, customer details, URLs, notifications, misc, relationships, and internal fields)
  • Add docs/business/payment-management/attempt-fields.md — full field reference for PaymentAttempt (identifiers, state, amounts, gateway interaction, webhook diagnostics, and internal fields)
  • Add both pages to the Payment Management sidebar in sidebars.ts

- Add docs/business/payment-management/transaction-fields.md — full field
reference for PaymentTransaction (identifiers, state, amounts with worked
examples, gateway & routing, customer details, URLs, notifications, misc,
relationships, and internal fields)
- Add docs/business/payment-management/attempt-fields.md — full field
reference for PaymentAttempt (identifiers, state, amounts, gateway
interaction, webhook diagnostics, and internal fields)
- Add both pages to the Payment Management sidebar in sidebars.ts
@jab3z

Copy link
Copy Markdown
Contributor

@claude review

@claude

claudeBot commented May 25, 2026

Copy link
Copy Markdown

Claude finished @jab3z's task in 3m 14s —— View job


PR Review — Payment Transaction & Attempt Field Reference Pages

  • Gather context and understand the request
  • Read the changed files
  • Review docs/business/payment-management/transaction-fields.md
  • Review docs/business/payment-management/attempt-fields.md
  • Review sidebars.ts changes
  • Post review findings

Overall the content is solid — the amounts section with nine worked examples is genuinely excellent, the cross-linking strategy is consistent, and the transaction/attempt split is well-explained. There are a handful of issues that need attention before merge.


Issues

1. Empty stub fields will render as blank headings (High — transaction-fields.md)

Several headings have no body text. They'll render as visible but empty sections in production — a noticeable quality gap on what's otherwise a polished page.

Field headingLineNotes
### minimal_amount340No description at all
### notification_set470No description at all
### bulk_transaction543No description at all
### booking_event545No description at all
### attempt_reference547No description at all
### in_es564Inside the <details> block but empty
### es_id578Inside the <details> block but empty
### parent_es_id580Inside the <details> block but empty
### unit_config582Inside the <details> block but empty

The four internal stubs (in_es, es_id, parent_es_id, unit_config) are at least hidden behind a <details> collapse, but they still appear as blank headings when expanded. Either add at least a one-line note (even "Internal Elasticsearch ID — not exposed to merchants") or omit the heading entirely for fields that have nothing to say yet.

Fix stubs in transaction-fields.md →

2. Empty stub fields will render as blank headings (High — attempt-fields.md)

Same issue in the attempt page:

Field headingLineNotes
### total58No description — likely "amount + fee for this attempt"
### settings73No description — looks like an important gateway-config field

settings in particular looks like it could hold significant data (gateway config, 3DS options, etc.) and an empty heading is worse than omitting it. Fix stubs in attempt-fields.md →

3. redirect_url description has a grammar error and is misleading (transaction-fields.md, line 440)

"Only used when the webhook delivery is success."

This is grammatically incorrect ("is success" → "succeeds"). More importantly, the phrasing "only used" implies the field itself is unused when webhook delivery fails. A clearer statement: "Ottu redirects the customer to this URL only when your webhook endpoint responds with HTTP 200."

Fix redirect_url description →

4. disclosure_url vs webhook_url naming gap (transaction-fields.md, line 444)

The description correctly says "The webhook URL where Ottu sends a POST request…" but the field is named disclosure_url on the model while merchants set it via the webhook_url parameter in the Checkout API. A reader who just came from the Checkout API docs expecting webhook_url won't connect the dots. Suggest adding a short note:

This is the model field. When creating a transaction via the Checkout API, set this value using the webhook_url request parameter.

Add webhook_url alias note →


Minor nits

  • type field, line 54: "The kind of transaction, this is set when…" — comma splice. Split into two sentences or use a semicolon.
  • customer_shipping_address, line 431: The description says "May be used for fraud prevention…" but doesn't say whether this is a structured object (with sub-fields like line1, city, etc.) or a flat string. Worth one sentence clarifying the format.
  • is_amount_editable vs minimal_amount: is_amount_editable (line 337) references the customer modifying the amount but there's no cross-link to minimal_amount right below it. Given minimal_amount is currently empty, this can wait — but the two fields are closely related and should cross-reference each other once minimal_amount is filled in.

Positives

  • The amounts section is outstanding: the quick-reference table + nine worked examples (purchase, refund, auth/capture, void, editable, save-card) is exactly the kind of concrete illustration that prevents support requests.
  • Sidebar placement is correct — plain string shorthand, consistent with the other Payment Management items, no mixing of Pattern A and Pattern B.
  • The webhook diagnostic fields section in attempt-fields.md (disclosed_to_merchant, disclosed_data, disclosed_states, disclosure_url_error) is very well-structured and clearly explains their purpose for debugging.
  • Strong cross-linking throughout — almost every concept links somewhere useful.

The main ask before merge is to resolve the empty stub fields (items 1 & 2 above). Items 3 and 4 are quick text fixes. The minor nits can be addressed in a follow-up if preferred.
|

- Fix grammar in `redirect_url` description and clarify when it is used
- Rename `disclosure_url` heading to `webhook_url` to match the API parameter name
- Clarify that `customer_shipping_address` is a structured object with sub-fields
- Split a comma splice in the `type` field description
- Pull internal & diagnostic fields out of the trailing list into their own section
@jab3z

Copy link
Copy Markdown
Contributor

@claude review

@claude

claudeBot commented May 25, 2026

Copy link
Copy Markdown

Claude finished @jab3z's task in 1m 42s —— View job


PR Review — Payment Transaction & Attempt Field Reference Pages (re-review after apply review notes commit)

  • Gather context and understand the request
  • Read the current state of changed files
  • Review docs/business/payment-management/transaction-fields.md
  • Review docs/business/payment-management/attempt-fields.md
  • Review sidebars.ts changes
  • Post updated review findings

What Was Fixed Since the Last Review ✅

The 14bd7b9 commit addressed several items from the previous review:

IssueStatus
redirect_url grammar ("is success" → "is successful")✅ Fixed
disclosure_url renamed to webhook_url to match Checkout API param✅ Fixed
type field comma splice✅ Fixed
customer_shipping_address — clarified as a structured object with sub-fields✅ Fixed

Remaining Issues

1. Empty stub fields still render as blank headings (High — transaction-fields.md)

The empty stubs from the first review were not addressed in the apply review notes commit. These will still render as visible but empty sections:

FieldLocationHidden behind <details>?
### minimal_amountLine 339No — visible immediately
### notification_setLine 469No — visible immediately
### bulk_transactionLine 541No — visible immediately
### booking_eventLine 543No — visible immediately
### attempt_referenceLine 545No — visible immediately
### in_esLine 566Yes (collapsed by default)
### es_idLine 580Yes (collapsed by default)
### parent_es_idLine 582Yes (collapsed by default)
### unit_configLine 584Yes (collapsed by default)

The five that are not hidden by <details> are the highest priority — a reader landing on the page will immediately see blank headings for minimal_amount, notification_set, bulk_transaction, booking_event, and attempt_reference. Either add a one-line note or remove the heading entirely.

Fix stubs in transaction-fields.md →

2. Empty stub fields still render as blank headings (High — attempt-fields.md)

Both empty stubs from the first review are still empty:

  • ### total (line 58) — heading with no body. Likely amount + fee for this attempt — a one-liner would suffice.
  • ### settings (line 73) — heading with no body. Given that gateway_response gets a description, settings is conspicuously blank. Either describe it (gateway config/3DS options passed to the gateway for this attempt) or remove the heading.

Fix stubs in attempt-fields.md →


Everything Else Looks Good

  • Sidebars — the two new entries are plain string shorthand, correctly placed inside the Payment Management items array, consistent with the other items in that section.
  • Webhook diagnostics section — well-structured, clear purpose, accurate field descriptions.
  • Amounts section — the quick-reference table and nine worked examples remain excellent.
  • Cross-linking — thorough throughout both pages.
  • All nits from the previous review were resolved.

The only blocker before merge is resolving the empty stub headings (items 1 & 2 above) — they are user-visible quality gaps on an otherwise polished pair of pages.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@suliman-ottu@jab3z
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' add Payment Transaction and Payment Attempt field reference pages by suliman-ottu · Pull Request #82 · ottuco/docs · GitHub
Skip to content

add Payment Transaction and Payment Attempt field reference pages - #82

Open
suliman-ottu wants to merge 4 commits into
devfrom
task/154339
Open

add Payment Transaction and Payment Attempt field reference pages#82
suliman-ottu wants to merge 4 commits into
devfrom
task/154339

Conversation

@suliman-ottu

Copy link
Copy Markdown
Contributor
  • Add docs/business/payment-management/transaction-fields.md — full field reference for PaymentTransaction (identifiers, state, amounts with worked examples, gateway & routing, customer details, URLs, notifications, misc, relationships, and internal fields)
  • Add docs/business/payment-management/attempt-fields.md — full field reference for PaymentAttempt (identifiers, state, amounts, gateway interaction, webhook diagnostics, and internal fields)
  • Add both pages to the Payment Management sidebar in sidebars.ts

- Add docs/business/payment-management/transaction-fields.md — full field
reference for PaymentTransaction (identifiers, state, amounts with worked
examples, gateway & routing, customer details, URLs, notifications, misc,
relationships, and internal fields)
- Add docs/business/payment-management/attempt-fields.md — full field
reference for PaymentAttempt (identifiers, state, amounts, gateway
interaction, webhook diagnostics, and internal fields)
- Add both pages to the Payment Management sidebar in sidebars.ts
@jab3z

Copy link
Copy Markdown
Contributor

@claude review

@claude

claudeBot commented May 25, 2026

Copy link
Copy Markdown

Claude finished @jab3z's task in 3m 14s —— View job


PR Review — Payment Transaction & Attempt Field Reference Pages

  • Gather context and understand the request
  • Read the changed files
  • Review docs/business/payment-management/transaction-fields.md
  • Review docs/business/payment-management/attempt-fields.md
  • Review sidebars.ts changes
  • Post review findings

Overall the content is solid — the amounts section with nine worked examples is genuinely excellent, the cross-linking strategy is consistent, and the transaction/attempt split is well-explained. There are a handful of issues that need attention before merge.


Issues

1. Empty stub fields will render as blank headings (High — transaction-fields.md)

Several headings have no body text. They'll render as visible but empty sections in production — a noticeable quality gap on what's otherwise a polished page.

Field headingLineNotes
### minimal_amount340No description at all
### notification_set470No description at all
### bulk_transaction543No description at all
### booking_event545No description at all
### attempt_reference547No description at all
### in_es564Inside the <details> block but empty
### es_id578Inside the <details> block but empty
### parent_es_id580Inside the <details> block but empty
### unit_config582Inside the <details> block but empty

The four internal stubs (in_es, es_id, parent_es_id, unit_config) are at least hidden behind a <details> collapse, but they still appear as blank headings when expanded. Either add at least a one-line note (even "Internal Elasticsearch ID — not exposed to merchants") or omit the heading entirely for fields that have nothing to say yet.

Fix stubs in transaction-fields.md →

2. Empty stub fields will render as blank headings (High — attempt-fields.md)

Same issue in the attempt page:

Field headingLineNotes
### total58No description — likely "amount + fee for this attempt"
### settings73No description — looks like an important gateway-config field

settings in particular looks like it could hold significant data (gateway config, 3DS options, etc.) and an empty heading is worse than omitting it. Fix stubs in attempt-fields.md →

3. redirect_url description has a grammar error and is misleading (transaction-fields.md, line 440)

"Only used when the webhook delivery is success."

This is grammatically incorrect ("is success" → "succeeds"). More importantly, the phrasing "only used" implies the field itself is unused when webhook delivery fails. A clearer statement: "Ottu redirects the customer to this URL only when your webhook endpoint responds with HTTP 200."

Fix redirect_url description →

4. disclosure_url vs webhook_url naming gap (transaction-fields.md, line 444)

The description correctly says "The webhook URL where Ottu sends a POST request…" but the field is named disclosure_url on the model while merchants set it via the webhook_url parameter in the Checkout API. A reader who just came from the Checkout API docs expecting webhook_url won't connect the dots. Suggest adding a short note:

This is the model field. When creating a transaction via the Checkout API, set this value using the webhook_url request parameter.

Add webhook_url alias note →


Minor nits

  • type field, line 54: "The kind of transaction, this is set when…" — comma splice. Split into two sentences or use a semicolon.
  • customer_shipping_address, line 431: The description says "May be used for fraud prevention…" but doesn't say whether this is a structured object (with sub-fields like line1, city, etc.) or a flat string. Worth one sentence clarifying the format.
  • is_amount_editable vs minimal_amount: is_amount_editable (line 337) references the customer modifying the amount but there's no cross-link to minimal_amount right below it. Given minimal_amount is currently empty, this can wait — but the two fields are closely related and should cross-reference each other once minimal_amount is filled in.

Positives

  • The amounts section is outstanding: the quick-reference table + nine worked examples (purchase, refund, auth/capture, void, editable, save-card) is exactly the kind of concrete illustration that prevents support requests.
  • Sidebar placement is correct — plain string shorthand, consistent with the other Payment Management items, no mixing of Pattern A and Pattern B.
  • The webhook diagnostic fields section in attempt-fields.md (disclosed_to_merchant, disclosed_data, disclosed_states, disclosure_url_error) is very well-structured and clearly explains their purpose for debugging.
  • Strong cross-linking throughout — almost every concept links somewhere useful.

The main ask before merge is to resolve the empty stub fields (items 1 & 2 above). Items 3 and 4 are quick text fixes. The minor nits can be addressed in a follow-up if preferred.
|

- Fix grammar in `redirect_url` description and clarify when it is used
- Rename `disclosure_url` heading to `webhook_url` to match the API parameter name
- Clarify that `customer_shipping_address` is a structured object with sub-fields
- Split a comma splice in the `type` field description
- Pull internal & diagnostic fields out of the trailing list into their own section
@jab3z

Copy link
Copy Markdown
Contributor

@claude review

@claude

claudeBot commented May 25, 2026

Copy link
Copy Markdown

Claude finished @jab3z's task in 1m 42s —— View job


PR Review — Payment Transaction & Attempt Field Reference Pages (re-review after apply review notes commit)

  • Gather context and understand the request
  • Read the current state of changed files
  • Review docs/business/payment-management/transaction-fields.md
  • Review docs/business/payment-management/attempt-fields.md
  • Review sidebars.ts changes
  • Post updated review findings

What Was Fixed Since the Last Review ✅

The 14bd7b9 commit addressed several items from the previous review:

IssueStatus
redirect_url grammar ("is success" → "is successful")✅ Fixed
disclosure_url renamed to webhook_url to match Checkout API param✅ Fixed
type field comma splice✅ Fixed
customer_shipping_address — clarified as a structured object with sub-fields✅ Fixed

Remaining Issues

1. Empty stub fields still render as blank headings (High — transaction-fields.md)

The empty stubs from the first review were not addressed in the apply review notes commit. These will still render as visible but empty sections:

FieldLocationHidden behind <details>?
### minimal_amountLine 339No — visible immediately
### notification_setLine 469No — visible immediately
### bulk_transactionLine 541No — visible immediately
### booking_eventLine 543No — visible immediately
### attempt_referenceLine 545No — visible immediately
### in_esLine 566Yes (collapsed by default)
### es_idLine 580Yes (collapsed by default)
### parent_es_idLine 582Yes (collapsed by default)
### unit_configLine 584Yes (collapsed by default)

The five that are not hidden by <details> are the highest priority — a reader landing on the page will immediately see blank headings for minimal_amount, notification_set, bulk_transaction, booking_event, and attempt_reference. Either add a one-line note or remove the heading entirely.

Fix stubs in transaction-fields.md →

2. Empty stub fields still render as blank headings (High — attempt-fields.md)

Both empty stubs from the first review are still empty:

  • ### total (line 58) — heading with no body. Likely amount + fee for this attempt — a one-liner would suffice.
  • ### settings (line 73) — heading with no body. Given that gateway_response gets a description, settings is conspicuously blank. Either describe it (gateway config/3DS options passed to the gateway for this attempt) or remove the heading.

Fix stubs in attempt-fields.md →


Everything Else Looks Good

  • Sidebars — the two new entries are plain string shorthand, correctly placed inside the Payment Management items array, consistent with the other items in that section.
  • Webhook diagnostics section — well-structured, clear purpose, accurate field descriptions.
  • Amounts section — the quick-reference table and nine worked examples remain excellent.
  • Cross-linking — thorough throughout both pages.
  • All nits from the previous review were resolved.

The only blocker before merge is resolving the empty stub headings (items 1 & 2 above) — they are user-visible quality gaps on an otherwise polished pair of pages.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@suliman-ottu@jab3z
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' add Payment Transaction and Payment Attempt field reference pages by suliman-ottu · Pull Request #82 · ottuco/docs · GitHub
Skip to content

add Payment Transaction and Payment Attempt field reference pages - #82

Open
suliman-ottu wants to merge 4 commits into
devfrom
task/154339
Open

add Payment Transaction and Payment Attempt field reference pages#82
suliman-ottu wants to merge 4 commits into
devfrom
task/154339

Conversation

@suliman-ottu

Copy link
Copy Markdown
Contributor
  • Add docs/business/payment-management/transaction-fields.md — full field reference for PaymentTransaction (identifiers, state, amounts with worked examples, gateway & routing, customer details, URLs, notifications, misc, relationships, and internal fields)
  • Add docs/business/payment-management/attempt-fields.md — full field reference for PaymentAttempt (identifiers, state, amounts, gateway interaction, webhook diagnostics, and internal fields)
  • Add both pages to the Payment Management sidebar in sidebars.ts

- Add docs/business/payment-management/transaction-fields.md — full field
reference for PaymentTransaction (identifiers, state, amounts with worked
examples, gateway & routing, customer details, URLs, notifications, misc,
relationships, and internal fields)
- Add docs/business/payment-management/attempt-fields.md — full field
reference for PaymentAttempt (identifiers, state, amounts, gateway
interaction, webhook diagnostics, and internal fields)
- Add both pages to the Payment Management sidebar in sidebars.ts
@jab3z

Copy link
Copy Markdown
Contributor

@claude review

@claude

claudeBot commented May 25, 2026

Copy link
Copy Markdown

Claude finished @jab3z's task in 3m 14s —— View job


PR Review — Payment Transaction & Attempt Field Reference Pages

  • Gather context and understand the request
  • Read the changed files
  • Review docs/business/payment-management/transaction-fields.md
  • Review docs/business/payment-management/attempt-fields.md
  • Review sidebars.ts changes
  • Post review findings

Overall the content is solid — the amounts section with nine worked examples is genuinely excellent, the cross-linking strategy is consistent, and the transaction/attempt split is well-explained. There are a handful of issues that need attention before merge.


Issues

1. Empty stub fields will render as blank headings (High — transaction-fields.md)

Several headings have no body text. They'll render as visible but empty sections in production — a noticeable quality gap on what's otherwise a polished page.

Field headingLineNotes
### minimal_amount340No description at all
### notification_set470No description at all
### bulk_transaction543No description at all
### booking_event545No description at all
### attempt_reference547No description at all
### in_es564Inside the <details> block but empty
### es_id578Inside the <details> block but empty
### parent_es_id580Inside the <details> block but empty
### unit_config582Inside the <details> block but empty

The four internal stubs (in_es, es_id, parent_es_id, unit_config) are at least hidden behind a <details> collapse, but they still appear as blank headings when expanded. Either add at least a one-line note (even "Internal Elasticsearch ID — not exposed to merchants") or omit the heading entirely for fields that have nothing to say yet.

Fix stubs in transaction-fields.md →

2. Empty stub fields will render as blank headings (High — attempt-fields.md)

Same issue in the attempt page:

Field headingLineNotes
### total58No description — likely "amount + fee for this attempt"
### settings73No description — looks like an important gateway-config field

settings in particular looks like it could hold significant data (gateway config, 3DS options, etc.) and an empty heading is worse than omitting it. Fix stubs in attempt-fields.md →

3. redirect_url description has a grammar error and is misleading (transaction-fields.md, line 440)

"Only used when the webhook delivery is success."

This is grammatically incorrect ("is success" → "succeeds"). More importantly, the phrasing "only used" implies the field itself is unused when webhook delivery fails. A clearer statement: "Ottu redirects the customer to this URL only when your webhook endpoint responds with HTTP 200."

Fix redirect_url description →

4. disclosure_url vs webhook_url naming gap (transaction-fields.md, line 444)

The description correctly says "The webhook URL where Ottu sends a POST request…" but the field is named disclosure_url on the model while merchants set it via the webhook_url parameter in the Checkout API. A reader who just came from the Checkout API docs expecting webhook_url won't connect the dots. Suggest adding a short note:

This is the model field. When creating a transaction via the Checkout API, set this value using the webhook_url request parameter.

Add webhook_url alias note →


Minor nits

  • type field, line 54: "The kind of transaction, this is set when…" — comma splice. Split into two sentences or use a semicolon.
  • customer_shipping_address, line 431: The description says "May be used for fraud prevention…" but doesn't say whether this is a structured object (with sub-fields like line1, city, etc.) or a flat string. Worth one sentence clarifying the format.
  • is_amount_editable vs minimal_amount: is_amount_editable (line 337) references the customer modifying the amount but there's no cross-link to minimal_amount right below it. Given minimal_amount is currently empty, this can wait — but the two fields are closely related and should cross-reference each other once minimal_amount is filled in.

Positives

  • The amounts section is outstanding: the quick-reference table + nine worked examples (purchase, refund, auth/capture, void, editable, save-card) is exactly the kind of concrete illustration that prevents support requests.
  • Sidebar placement is correct — plain string shorthand, consistent with the other Payment Management items, no mixing of Pattern A and Pattern B.
  • The webhook diagnostic fields section in attempt-fields.md (disclosed_to_merchant, disclosed_data, disclosed_states, disclosure_url_error) is very well-structured and clearly explains their purpose for debugging.
  • Strong cross-linking throughout — almost every concept links somewhere useful.

The main ask before merge is to resolve the empty stub fields (items 1 & 2 above). Items 3 and 4 are quick text fixes. The minor nits can be addressed in a follow-up if preferred.
|

- Fix grammar in `redirect_url` description and clarify when it is used
- Rename `disclosure_url` heading to `webhook_url` to match the API parameter name
- Clarify that `customer_shipping_address` is a structured object with sub-fields
- Split a comma splice in the `type` field description
- Pull internal & diagnostic fields out of the trailing list into their own section
@jab3z

Copy link
Copy Markdown
Contributor

@claude review

@claude

claudeBot commented May 25, 2026

Copy link
Copy Markdown

Claude finished @jab3z's task in 1m 42s —— View job


PR Review — Payment Transaction & Attempt Field Reference Pages (re-review after apply review notes commit)

  • Gather context and understand the request
  • Read the current state of changed files
  • Review docs/business/payment-management/transaction-fields.md
  • Review docs/business/payment-management/attempt-fields.md
  • Review sidebars.ts changes
  • Post updated review findings

What Was Fixed Since the Last Review ✅

The 14bd7b9 commit addressed several items from the previous review:

IssueStatus
redirect_url grammar ("is success" → "is successful")✅ Fixed
disclosure_url renamed to webhook_url to match Checkout API param✅ Fixed
type field comma splice✅ Fixed
customer_shipping_address — clarified as a structured object with sub-fields✅ Fixed

Remaining Issues

1. Empty stub fields still render as blank headings (High — transaction-fields.md)

The empty stubs from the first review were not addressed in the apply review notes commit. These will still render as visible but empty sections:

FieldLocationHidden behind <details>?
### minimal_amountLine 339No — visible immediately
### notification_setLine 469No — visible immediately
### bulk_transactionLine 541No — visible immediately
### booking_eventLine 543No — visible immediately
### attempt_referenceLine 545No — visible immediately
### in_esLine 566Yes (collapsed by default)
### es_idLine 580Yes (collapsed by default)
### parent_es_idLine 582Yes (collapsed by default)
### unit_configLine 584Yes (collapsed by default)

The five that are not hidden by <details> are the highest priority — a reader landing on the page will immediately see blank headings for minimal_amount, notification_set, bulk_transaction, booking_event, and attempt_reference. Either add a one-line note or remove the heading entirely.

Fix stubs in transaction-fields.md →

2. Empty stub fields still render as blank headings (High — attempt-fields.md)

Both empty stubs from the first review are still empty:

  • ### total (line 58) — heading with no body. Likely amount + fee for this attempt — a one-liner would suffice.
  • ### settings (line 73) — heading with no body. Given that gateway_response gets a description, settings is conspicuously blank. Either describe it (gateway config/3DS options passed to the gateway for this attempt) or remove the heading.

Fix stubs in attempt-fields.md →


Everything Else Looks Good

  • Sidebars — the two new entries are plain string shorthand, correctly placed inside the Payment Management items array, consistent with the other items in that section.
  • Webhook diagnostics section — well-structured, clear purpose, accurate field descriptions.
  • Amounts section — the quick-reference table and nine worked examples remain excellent.
  • Cross-linking — thorough throughout both pages.
  • All nits from the previous review were resolved.

The only blocker before merge is resolving the empty stub headings (items 1 & 2 above) — they are user-visible quality gaps on an otherwise polished pair of pages.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@suliman-ottu@jab3z
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' add Payment Transaction and Payment Attempt field reference pages by suliman-ottu · Pull Request #82 · ottuco/docs · GitHub
Skip to content

add Payment Transaction and Payment Attempt field reference pages - #82

Open
suliman-ottu wants to merge 4 commits into
devfrom
task/154339
Open

add Payment Transaction and Payment Attempt field reference pages#82
suliman-ottu wants to merge 4 commits into
devfrom
task/154339

Conversation

@suliman-ottu

Copy link
Copy Markdown
Contributor
  • Add docs/business/payment-management/transaction-fields.md — full field reference for PaymentTransaction (identifiers, state, amounts with worked examples, gateway & routing, customer details, URLs, notifications, misc, relationships, and internal fields)
  • Add docs/business/payment-management/attempt-fields.md — full field reference for PaymentAttempt (identifiers, state, amounts, gateway interaction, webhook diagnostics, and internal fields)
  • Add both pages to the Payment Management sidebar in sidebars.ts

- Add docs/business/payment-management/transaction-fields.md — full field
reference for PaymentTransaction (identifiers, state, amounts with worked
examples, gateway & routing, customer details, URLs, notifications, misc,
relationships, and internal fields)
- Add docs/business/payment-management/attempt-fields.md — full field
reference for PaymentAttempt (identifiers, state, amounts, gateway
interaction, webhook diagnostics, and internal fields)
- Add both pages to the Payment Management sidebar in sidebars.ts
@jab3z

Copy link
Copy Markdown
Contributor

@claude review

@claude

claudeBot commented May 25, 2026

Copy link
Copy Markdown

Claude finished @jab3z's task in 3m 14s —— View job


PR Review — Payment Transaction & Attempt Field Reference Pages

  • Gather context and understand the request
  • Read the changed files
  • Review docs/business/payment-management/transaction-fields.md
  • Review docs/business/payment-management/attempt-fields.md
  • Review sidebars.ts changes
  • Post review findings

Overall the content is solid — the amounts section with nine worked examples is genuinely excellent, the cross-linking strategy is consistent, and the transaction/attempt split is well-explained. There are a handful of issues that need attention before merge.


Issues

1. Empty stub fields will render as blank headings (High — transaction-fields.md)

Several headings have no body text. They'll render as visible but empty sections in production — a noticeable quality gap on what's otherwise a polished page.

Field headingLineNotes
### minimal_amount340No description at all
### notification_set470No description at all
### bulk_transaction543No description at all
### booking_event545No description at all
### attempt_reference547No description at all
### in_es564Inside the <details> block but empty
### es_id578Inside the <details> block but empty
### parent_es_id580Inside the <details> block but empty
### unit_config582Inside the <details> block but empty

The four internal stubs (in_es, es_id, parent_es_id, unit_config) are at least hidden behind a <details> collapse, but they still appear as blank headings when expanded. Either add at least a one-line note (even "Internal Elasticsearch ID — not exposed to merchants") or omit the heading entirely for fields that have nothing to say yet.

Fix stubs in transaction-fields.md →

2. Empty stub fields will render as blank headings (High — attempt-fields.md)

Same issue in the attempt page:

Field headingLineNotes
### total58No description — likely "amount + fee for this attempt"
### settings73No description — looks like an important gateway-config field

settings in particular looks like it could hold significant data (gateway config, 3DS options, etc.) and an empty heading is worse than omitting it. Fix stubs in attempt-fields.md →

3. redirect_url description has a grammar error and is misleading (transaction-fields.md, line 440)

"Only used when the webhook delivery is success."

This is grammatically incorrect ("is success" → "succeeds"). More importantly, the phrasing "only used" implies the field itself is unused when webhook delivery fails. A clearer statement: "Ottu redirects the customer to this URL only when your webhook endpoint responds with HTTP 200."

Fix redirect_url description →

4. disclosure_url vs webhook_url naming gap (transaction-fields.md, line 444)

The description correctly says "The webhook URL where Ottu sends a POST request…" but the field is named disclosure_url on the model while merchants set it via the webhook_url parameter in the Checkout API. A reader who just came from the Checkout API docs expecting webhook_url won't connect the dots. Suggest adding a short note:

This is the model field. When creating a transaction via the Checkout API, set this value using the webhook_url request parameter.

Add webhook_url alias note →


Minor nits

  • type field, line 54: "The kind of transaction, this is set when…" — comma splice. Split into two sentences or use a semicolon.
  • customer_shipping_address, line 431: The description says "May be used for fraud prevention…" but doesn't say whether this is a structured object (with sub-fields like line1, city, etc.) or a flat string. Worth one sentence clarifying the format.
  • is_amount_editable vs minimal_amount: is_amount_editable (line 337) references the customer modifying the amount but there's no cross-link to minimal_amount right below it. Given minimal_amount is currently empty, this can wait — but the two fields are closely related and should cross-reference each other once minimal_amount is filled in.

Positives

  • The amounts section is outstanding: the quick-reference table + nine worked examples (purchase, refund, auth/capture, void, editable, save-card) is exactly the kind of concrete illustration that prevents support requests.
  • Sidebar placement is correct — plain string shorthand, consistent with the other Payment Management items, no mixing of Pattern A and Pattern B.
  • The webhook diagnostic fields section in attempt-fields.md (disclosed_to_merchant, disclosed_data, disclosed_states, disclosure_url_error) is very well-structured and clearly explains their purpose for debugging.
  • Strong cross-linking throughout — almost every concept links somewhere useful.

The main ask before merge is to resolve the empty stub fields (items 1 & 2 above). Items 3 and 4 are quick text fixes. The minor nits can be addressed in a follow-up if preferred.
|

- Fix grammar in `redirect_url` description and clarify when it is used
- Rename `disclosure_url` heading to `webhook_url` to match the API parameter name
- Clarify that `customer_shipping_address` is a structured object with sub-fields
- Split a comma splice in the `type` field description
- Pull internal & diagnostic fields out of the trailing list into their own section
@jab3z

Copy link
Copy Markdown
Contributor

@claude review

@claude

claudeBot commented May 25, 2026

Copy link
Copy Markdown

Claude finished @jab3z's task in 1m 42s —— View job


PR Review — Payment Transaction & Attempt Field Reference Pages (re-review after apply review notes commit)

  • Gather context and understand the request
  • Read the current state of changed files
  • Review docs/business/payment-management/transaction-fields.md
  • Review docs/business/payment-management/attempt-fields.md
  • Review sidebars.ts changes
  • Post updated review findings

What Was Fixed Since the Last Review ✅

The 14bd7b9 commit addressed several items from the previous review:

IssueStatus
redirect_url grammar ("is success" → "is successful")✅ Fixed
disclosure_url renamed to webhook_url to match Checkout API param✅ Fixed
type field comma splice✅ Fixed
customer_shipping_address — clarified as a structured object with sub-fields✅ Fixed

Remaining Issues

1. Empty stub fields still render as blank headings (High — transaction-fields.md)

The empty stubs from the first review were not addressed in the apply review notes commit. These will still render as visible but empty sections:

FieldLocationHidden behind <details>?
### minimal_amountLine 339No — visible immediately
### notification_setLine 469No — visible immediately
### bulk_transactionLine 541No — visible immediately
### booking_eventLine 543No — visible immediately
### attempt_referenceLine 545No — visible immediately
### in_esLine 566Yes (collapsed by default)
### es_idLine 580Yes (collapsed by default)
### parent_es_idLine 582Yes (collapsed by default)
### unit_configLine 584Yes (collapsed by default)

The five that are not hidden by <details> are the highest priority — a reader landing on the page will immediately see blank headings for minimal_amount, notification_set, bulk_transaction, booking_event, and attempt_reference. Either add a one-line note or remove the heading entirely.

Fix stubs in transaction-fields.md →

2. Empty stub fields still render as blank headings (High — attempt-fields.md)

Both empty stubs from the first review are still empty:

  • ### total (line 58) — heading with no body. Likely amount + fee for this attempt — a one-liner would suffice.
  • ### settings (line 73) — heading with no body. Given that gateway_response gets a description, settings is conspicuously blank. Either describe it (gateway config/3DS options passed to the gateway for this attempt) or remove the heading.

Fix stubs in attempt-fields.md →


Everything Else Looks Good

  • Sidebars — the two new entries are plain string shorthand, correctly placed inside the Payment Management items array, consistent with the other items in that section.
  • Webhook diagnostics section — well-structured, clear purpose, accurate field descriptions.
  • Amounts section — the quick-reference table and nine worked examples remain excellent.
  • Cross-linking — thorough throughout both pages.
  • All nits from the previous review were resolved.

The only blocker before merge is resolving the empty stub headings (items 1 & 2 above) — they are user-visible quality gaps on an otherwise polished pair of pages.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@suliman-ottu@jab3z
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); add Payment Transaction and Payment Attempt field reference pages by suliman-ottu · Pull Request #82 · ottuco/docs · GitHub
Skip to content

add Payment Transaction and Payment Attempt field reference pages - #82

Open
suliman-ottu wants to merge 4 commits into
devfrom
task/154339
Open

add Payment Transaction and Payment Attempt field reference pages#82
suliman-ottu wants to merge 4 commits into
devfrom
task/154339

Conversation

@suliman-ottu

Copy link
Copy Markdown
Contributor
  • Add docs/business/payment-management/transaction-fields.md — full field reference for PaymentTransaction (identifiers, state, amounts with worked examples, gateway & routing, customer details, URLs, notifications, misc, relationships, and internal fields)
  • Add docs/business/payment-management/attempt-fields.md — full field reference for PaymentAttempt (identifiers, state, amounts, gateway interaction, webhook diagnostics, and internal fields)
  • Add both pages to the Payment Management sidebar in sidebars.ts

- Add docs/business/payment-management/transaction-fields.md — full field
reference for PaymentTransaction (identifiers, state, amounts with worked
examples, gateway & routing, customer details, URLs, notifications, misc,
relationships, and internal fields)
- Add docs/business/payment-management/attempt-fields.md — full field
reference for PaymentAttempt (identifiers, state, amounts, gateway
interaction, webhook diagnostics, and internal fields)
- Add both pages to the Payment Management sidebar in sidebars.ts
@jab3z

Copy link
Copy Markdown
Contributor

@claude review

@claude

claudeBot commented May 25, 2026

Copy link
Copy Markdown

Claude finished @jab3z's task in 3m 14s —— View job


PR Review — Payment Transaction & Attempt Field Reference Pages

  • Gather context and understand the request
  • Read the changed files
  • Review docs/business/payment-management/transaction-fields.md
  • Review docs/business/payment-management/attempt-fields.md
  • Review sidebars.ts changes
  • Post review findings

Overall the content is solid — the amounts section with nine worked examples is genuinely excellent, the cross-linking strategy is consistent, and the transaction/attempt split is well-explained. There are a handful of issues that need attention before merge.


Issues

1. Empty stub fields will render as blank headings (High — transaction-fields.md)

Several headings have no body text. They'll render as visible but empty sections in production — a noticeable quality gap on what's otherwise a polished page.

Field headingLineNotes
### minimal_amount340No description at all
### notification_set470No description at all
### bulk_transaction543No description at all
### booking_event545No description at all
### attempt_reference547No description at all
### in_es564Inside the <details> block but empty
### es_id578Inside the <details> block but empty
### parent_es_id580Inside the <details> block but empty
### unit_config582Inside the <details> block but empty

The four internal stubs (in_es, es_id, parent_es_id, unit_config) are at least hidden behind a <details> collapse, but they still appear as blank headings when expanded. Either add at least a one-line note (even "Internal Elasticsearch ID — not exposed to merchants") or omit the heading entirely for fields that have nothing to say yet.

Fix stubs in transaction-fields.md →

2. Empty stub fields will render as blank headings (High — attempt-fields.md)

Same issue in the attempt page:

Field headingLineNotes
### total58No description — likely "amount + fee for this attempt"
### settings73No description — looks like an important gateway-config field

settings in particular looks like it could hold significant data (gateway config, 3DS options, etc.) and an empty heading is worse than omitting it. Fix stubs in attempt-fields.md →

3. redirect_url description has a grammar error and is misleading (transaction-fields.md, line 440)

"Only used when the webhook delivery is success."

This is grammatically incorrect ("is success" → "succeeds"). More importantly, the phrasing "only used" implies the field itself is unused when webhook delivery fails. A clearer statement: "Ottu redirects the customer to this URL only when your webhook endpoint responds with HTTP 200."

Fix redirect_url description →

4. disclosure_url vs webhook_url naming gap (transaction-fields.md, line 444)

The description correctly says "The webhook URL where Ottu sends a POST request…" but the field is named disclosure_url on the model while merchants set it via the webhook_url parameter in the Checkout API. A reader who just came from the Checkout API docs expecting webhook_url won't connect the dots. Suggest adding a short note:

This is the model field. When creating a transaction via the Checkout API, set this value using the webhook_url request parameter.

Add webhook_url alias note →


Minor nits

  • type field, line 54: "The kind of transaction, this is set when…" — comma splice. Split into two sentences or use a semicolon.
  • customer_shipping_address, line 431: The description says "May be used for fraud prevention…" but doesn't say whether this is a structured object (with sub-fields like line1, city, etc.) or a flat string. Worth one sentence clarifying the format.
  • is_amount_editable vs minimal_amount: is_amount_editable (line 337) references the customer modifying the amount but there's no cross-link to minimal_amount right below it. Given minimal_amount is currently empty, this can wait — but the two fields are closely related and should cross-reference each other once minimal_amount is filled in.

Positives

  • The amounts section is outstanding: the quick-reference table + nine worked examples (purchase, refund, auth/capture, void, editable, save-card) is exactly the kind of concrete illustration that prevents support requests.
  • Sidebar placement is correct — plain string shorthand, consistent with the other Payment Management items, no mixing of Pattern A and Pattern B.
  • The webhook diagnostic fields section in attempt-fields.md (disclosed_to_merchant, disclosed_data, disclosed_states, disclosure_url_error) is very well-structured and clearly explains their purpose for debugging.
  • Strong cross-linking throughout — almost every concept links somewhere useful.

The main ask before merge is to resolve the empty stub fields (items 1 & 2 above). Items 3 and 4 are quick text fixes. The minor nits can be addressed in a follow-up if preferred.
|

- Fix grammar in `redirect_url` description and clarify when it is used
- Rename `disclosure_url` heading to `webhook_url` to match the API parameter name
- Clarify that `customer_shipping_address` is a structured object with sub-fields
- Split a comma splice in the `type` field description
- Pull internal & diagnostic fields out of the trailing list into their own section
@jab3z

Copy link
Copy Markdown
Contributor

@claude review

@claude

claudeBot commented May 25, 2026

Copy link
Copy Markdown

Claude finished @jab3z's task in 1m 42s —— View job


PR Review — Payment Transaction & Attempt Field Reference Pages (re-review after apply review notes commit)

  • Gather context and understand the request
  • Read the current state of changed files
  • Review docs/business/payment-management/transaction-fields.md
  • Review docs/business/payment-management/attempt-fields.md
  • Review sidebars.ts changes
  • Post updated review findings

What Was Fixed Since the Last Review ✅

The 14bd7b9 commit addressed several items from the previous review:

IssueStatus
redirect_url grammar ("is success" → "is successful")✅ Fixed
disclosure_url renamed to webhook_url to match Checkout API param✅ Fixed
type field comma splice✅ Fixed
customer_shipping_address — clarified as a structured object with sub-fields✅ Fixed

Remaining Issues

1. Empty stub fields still render as blank headings (High — transaction-fields.md)

The empty stubs from the first review were not addressed in the apply review notes commit. These will still render as visible but empty sections:

FieldLocationHidden behind <details>?
### minimal_amountLine 339No — visible immediately
### notification_setLine 469No — visible immediately
### bulk_transactionLine 541No — visible immediately
### booking_eventLine 543No — visible immediately
### attempt_referenceLine 545No — visible immediately
### in_esLine 566Yes (collapsed by default)
### es_idLine 580Yes (collapsed by default)
### parent_es_idLine 582Yes (collapsed by default)
### unit_configLine 584Yes (collapsed by default)

The five that are not hidden by <details> are the highest priority — a reader landing on the page will immediately see blank headings for minimal_amount, notification_set, bulk_transaction, booking_event, and attempt_reference. Either add a one-line note or remove the heading entirely.

Fix stubs in transaction-fields.md →

2. Empty stub fields still render as blank headings (High — attempt-fields.md)

Both empty stubs from the first review are still empty:

  • ### total (line 58) — heading with no body. Likely amount + fee for this attempt — a one-liner would suffice.
  • ### settings (line 73) — heading with no body. Given that gateway_response gets a description, settings is conspicuously blank. Either describe it (gateway config/3DS options passed to the gateway for this attempt) or remove the heading.

Fix stubs in attempt-fields.md →


Everything Else Looks Good

  • Sidebars — the two new entries are plain string shorthand, correctly placed inside the Payment Management items array, consistent with the other items in that section.
  • Webhook diagnostics section — well-structured, clear purpose, accurate field descriptions.
  • Amounts section — the quick-reference table and nine worked examples remain excellent.
  • Cross-linking — thorough throughout both pages.
  • All nits from the previous review were resolved.

The only blocker before merge is resolving the empty stub headings (items 1 & 2 above) — they are user-visible quality gaps on an otherwise polished pair of pages.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@suliman-ottu@jab3z