fix(wire-contract): dropoff_latitude was serialized as dropoff_latitiude - #132
Draft
tomas-amaro wants to merge 1 commit into
Draft
fix(wire-contract): dropoff_latitude was serialized as dropoff_latitiude#132tomas-amaro wants to merge 1 commit into
tomas-amaro wants to merge 1 commit into
Conversation
`RideTicketLineItem.DropoffLatitude` carried
`[JsonProperty(PropertyName = "dropoff_latitiude")]` -- a transposition. Both
OpenAPI specs declare `dropoff_latitude`, with a description and an example, and
the transposed spelling appears in neither, nor anywhere else in the API
reference export.
Three things point the same way:
* the typo occurred exactly once in this repository, with no test covering it;
* `pickup_latitude` (:89) and `dropoff_longitude` (:104) in the same class are
spelled correctly, so the asymmetry has no rationale behind it;
* the Java, PHP and JavaScript SDKs all derive the correct spelling, so this
SDK was the only one in the fleet sending the wrong key.
Adds RideTicketLineItemTests covering the dropoff latitude specifically and all
four ride geolocation names together, asserted in both directions -- the
transposed key must be absent, not merely the correct one present. Verified to
fail against the previous attribute. Serialization settings mirror HttpUtils,
following WalletPaymentDetailsTests.
NOT VERIFIED: whether the platform accepts, or has been accepting, the
transposed key. See the PR description.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
DavidRibeiroRiskified
approved these changes
Aug 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this is
RideTicketLineItem.DropoffLatitudeserialized asdropoff_latitiude— a transposition — from the field's introduction until now. It should bedropoff_latitude.One line of production code, plus a regression test.
Why the correct spelling is
dropoff_latituderiskified_openapi_preauth.jsonandriskified_openapi_postauth.jsoneach definedropoff_latitudeon the ride line item, with a description ("The latitude part of the dropoff location coordinates.") and an example. The transposed spelling appears in neither, nor anywhere else in the API reference export. It is also what the public reference documents.pickup_latitude(:89) anddropoff_longitude(:104) in the same class are spelled correctly. There is no rationale that explains the asymmetry.Please confirm before merging
Whether the platform accepts, or has been accepting,
dropoff_latitiudeis not verified here. Nothing in this repo or the spec export answers it, and it decides how this ships:dropoff_latitude, then .NET's ride dropoff latitude has never arrived — every other field on the line item did, so this would have looked like merchants simply not sending it. Merging is a straight bug fix and needs no coordination.A single request per environment with both keys populated settles it.
Context
This came out of a wire-contract parity review across the SDK fleet. The corpus driving that review had concluded the opposite — that the transposition was the live wire name, because this SDK sends it — and three SDKs had draft PRs open to adopt the misspelling. That inference was circular: drawn from this attribute, then confirmed by re-reading it. Those PRs have been reverted and the corpus corrected:
Riskified/java_sdk#218Riskified/php_sdk#101Riskified/javascript_sdk#3Riskified/sdk-orchestrator(docs/flows/,docs/parity/FLEET.md)Tests
Riskified.SDK.Tests/Model/OrderElements/RideTicketLineItemTests.cs— the dropoff latitude specifically, and all four ride geolocation names together. Asserted in both directions: the transposed key must be absent, not merely the correct one present. Verified to fail against the previous attribute and pass with it. Serialization settings mirrorHttpUtils, following the existingWalletPaymentDetailsTests.Full suite: 47 passed, 0 failed.
🤖 Generated with Claude Code